(List (= scope= flags=0 words=[] bindings=[('CURRENT_DIR', {[DQ [ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]]}) (Com {[LIT_CHARS pwd]}) )]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS source]} {[DQ [VarSub CURRENT_DIR][LIT_CHARS /../integration_test_setup.sh]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "integration_test_setup.sh not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (FunctionDef set_up [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS pkg]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS pkg]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS a/b]} {[LIT_CHARS c/d]} {[LIT_CHARS e/f/g]} {[LIT_CHARS x/y]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS py.py]} {[LIT_CHARS a/b/no_module.py]} {[LIT_CHARS c/d/one_module.py]} {[LIT_CHARS c/__init__.py]} {[LIT_CHARS e/f/g/ignored.py]} {[LIT_CHARS x/y/z.sh]}) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS x/y/z.sh]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS ..]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS __init__.py]}) ) ) (FunctionDef test_hidden [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "py_binary(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS py][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [ "][RIGHT_D_QUOTE "\""][LIT_CHARS py.py][RIGHT_D_QUOTE "\""][LIT_CHARS " ],\n"][LIT_CHARS " data = [ "][RIGHT_D_QUOTE "\""][LIT_CHARS e/f][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS e/f/g/hidden.py][RIGHT_D_QUOTE "\""][LIT_CHARS " ])\n"][LIT_CHARS "genrule(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS hidden][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = [ "][RIGHT_D_QUOTE "\""][LIT_CHARS e/f/g/hidden.py][RIGHT_D_QUOTE "\""][LIT_CHARS " ],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "touch "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS py]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS expect_log_once]} {[DQ [LIT_CHARS "/genfiles/pkg/e/f/g/hidden.py obscured by pkg/e/f "]]}) ) ) (FunctionDef test_foo_runfiles [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "py_library(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS root][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS __init__.py][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "sh_binary(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [ "][RIGHT_D_QUOTE "\""][LIT_CHARS x/y/z.sh][RIGHT_D_QUOTE "\""][LIT_CHARS " ],\n"][LIT_CHARS " data = [ "][RIGHT_D_QUOTE "\""][LIT_CHARS ":py"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS e/f][RIGHT_D_QUOTE "\""][LIT_CHARS " ])\n"][LIT_CHARS "py_binary(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS py][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [ "][RIGHT_D_QUOTE "\""][LIT_CHARS py.py][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS a/b/no_module.py][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS c/d/one_module.py][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS c/__init__.py][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS e/f/g/ignored.py][RIGHT_D_QUOTE "\""][LIT_CHARS " ],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//:root"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS foo]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS cd]} {[VarSub PRODUCT_NAME] [LIT_CHARS -bin/pkg/foo.runfiles]}) (Com {[LIT_CHARS touch]} {[VarSub TEST_TMPDIR] [LIT_CHARS /__fail]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[LIT_CHARS MANIFEST]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -s]} {[LIT_CHARS MANIFEST]}) (Com {[LIT_CHARS cd]} {[VarSub WORKSPACE_NAME]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS pkg]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS pkg]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS pkg]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS a]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS a]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS a/b]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS a/b]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS c]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS c]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS c/d]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS c/d]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS e]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS e]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS x]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS x]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS x/y]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS x/y]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -L]} {[LIT_CHARS foo]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -L]} {[LIT_CHARS x/y/z.sh]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -L]} {[LIT_CHARS a/b/no_module.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -L]} {[LIT_CHARS c/d/one_module.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -L]} {[LIT_CHARS c/__init__.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -L]} {[LIT_CHARS e/f]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -d]} {[LIT_CHARS e/f]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS a/__init__.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[LIT_CHARS a/__init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -s]} {[LIT_CHARS a/__init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS a/b/__init__.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[LIT_CHARS a/b/__init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -s]} {[LIT_CHARS a/b/__init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS c/d/__init__.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[LIT_CHARS c/d/__init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -s]} {[LIT_CHARS c/d/__init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -L]} {[LIT_CHARS __init__.py]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[LIT_CHARS __init__.py]}) (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -s]} {[LIT_CHARS __init__.py]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS ../..]}) (Com {[LIT_CHARS assert_equals]} {[LIT_CHARS 9]} {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[VarSub WORKSPACE_NAME]} {[LIT_CHARS -type]} {[LIT_CHARS l]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) (Com {[LIT_CHARS assert_equals]} {[LIT_CHARS 4]} {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[VarSub WORKSPACE_NAME]} {[LIT_CHARS -type]} {[LIT_CHARS f]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) (Com {[LIT_CHARS assert_equals]} {[LIT_CHARS 9]} {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[VarSub WORKSPACE_NAME]} {[LIT_CHARS -type]} {[LIT_CHARS d]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) (Com {[LIT_CHARS assert_equals]} {[LIT_CHARS 22]} {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[VarSub WORKSPACE_NAME]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) (Com {[LIT_CHARS assert_equals]} {[LIT_CHARS 13]} {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS MANIFEST]} 0)]{[LIT_CHARS wc]} {[LIT_CHARS -l]})]}) (For i [{[ComSub (Com {[LIT_CHARS find]} {[VarSub WORKSPACE_NAME]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -type]} {[LIT_CHARS d]})]}]) (Com {[LIT_CHARS echo]} {[DQ [VarSub i][LIT_CHARS " "][ComSub (Com {[LIT_CHARS readlink]} {[DQ [VarSub i]]})]]}) ) (Com {[LIT_CHARS diff]} {[LIT_CHARS -u]} {[ComSub (Com {[LIT_CHARS sort]} {[LIT_CHARS MANIFEST]})]} {[ComSub (Com {[LIT_CHARS sort]} {[LIT_CHARS MANIFEST2]})]}) ) ) (FunctionDef test_workspace_name_change [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "workspace(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS foo][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cc_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS thing][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS thing.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " data = ["][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS thing.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int main() { return 0; }\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS thing]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) (AndOr OP_OR_IF (DBracket {B1 UNARY_FILE_d {[VarSub PRODUCT_NAME] [LIT_CHARS -bin/thing.runfiles/foo]}}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "foo not found"]]}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "workspace(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS thing]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) (AndOr OP_OR_IF (DBracket {B1 UNARY_FILE_d {[VarSub PRODUCT_NAME] [LIT_CHARS -bin/thing.runfiles/bar]}}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bar not found"]]}) ) (AndOr OP_OR_IF (DBracket {B! {B1 UNARY_FILE_d {[VarSub PRODUCT_NAME] [LIT_CHARS -bin/thing.runfiles/foo]}}}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Old foo still found"]]}) ) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS runfiles]]}) )