(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]}) ) ) (FunctionDef test_external_location [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "bind(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " actual = "][RIGHT_D_QUOTE "\""][LIT_CHARS "//bar:baz"][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS baz-rule][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS baz][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo 'hello' > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS use-loc][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:foo"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS loc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "cat "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(location //external:foo) > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //bar] [LIT_OTHER ":"] [LIT_CHARS loc]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Referencing external genrule didn't build"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS hello]]} {[LIT_CHARS bazel-genfiles/bar/loc]}) ) ) (FunctionDef test_external_location_tool [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "bind(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " actual = "][RIGHT_D_QUOTE "\""][LIT_CHARS "//bar:baz"][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS baz-rule][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS baz][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo '#!/bin/echo hello' > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS use-loc][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " tools = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:foo"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS loc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(location //external:foo) > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //bar] [LIT_OTHER ":"] [LIT_CHARS loc]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Referencing external genrule in tools didn't build"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS hello]]} {[LIT_CHARS bazel-genfiles/bar/loc]}) ) ) (FunctionDef test_location_trim [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS baz-rule][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS baz][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo helloworld > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS loc-rule][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS ":baz-rule"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS loc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(location :baz-rule ) > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //bar] [LIT_OTHER ":"] [LIT_CHARS loc]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Label was not trimmed before lookup"]]}) ) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "location tests"]]}) )