(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_glob_local_repository_dangling_symlink [] (List (Com {[LIT_CHARS create_new_workspace]}) (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "filegroup(name='fg', srcs=glob(["][RIGHT_D_QUOTE "\""][LIT_CHARS "fg/**"][RIGHT_D_QUOTE "\""][LIT_CHARS "]), visibility=["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /fg]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS /doesnotexist]} {[VarSub r] [LIT_CHARS /fg/symlink]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /fg/file]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ", path="][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"][LIT_CHARS "bind(name="][RIGHT_D_QUOTE "\""][LIT_CHARS e][RIGHT_D_QUOTE "\""][LIT_CHARS ", actual="][RIGHT_D_QUOTE "\""][LIT_CHARS "@r//:fg"][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 "filegroup(name="][RIGHT_D_QUOTE "\""][LIT_CHARS mfg][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs=["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:e"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS mfg]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building //:mfg failed"]]}) ) ) ) (FunctionDef test_globbing_external_directory [] (List (Com {[LIT_CHARS create_new_workspace]}) (= scope= flags=0 words=[] bindings=[('repo2', {[VarSub new_workspace_dir]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS red]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS red/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "filegroup(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS panda][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = glob(['*-panda']),\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS rawr]]} < (FilenameRedirectNode filename={[LIT_CHARS red/baby-panda]} "> 1), > ) (Com {[LIT_CHARS cd]} {[VarSub WORKSPACE_DIR]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_LBRACE "{"] [LIT_CHARS zoo] [LIT_COMMA ","] [LIT_CHARS red] [LIT_RBRACE "}"]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name = 'pandas', path = '"][VarSub repo2][LIT_CHARS "')\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "sh_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS dumper][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS dumper.sh][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " data = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@pandas//red:panda"][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS "//red:keepers"][RIGHT_D_QUOTE "\""][LIT_CHARS "]\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/dumper.sh]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/bash\n"][LIT_CHARS "cat ../pandas/red/baby-panda\n"][LIT_CHARS "cat red/day-keeper\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS zoo/dumper.sh]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS red/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "filegroup(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS keepers][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = glob(['*-keeper']),\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "feed bamboo"]]} < (FilenameRedirectNode filename={[LIT_CHARS red/day-keeper]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS dumper]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS dumper]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failed to build/run zoo"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS rawr]]} {[DQ [LIT_CHARS "//external runfile not cat-ed"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "feed bamboo"]]} {[DQ [LIT_CHARS "runfile in the same package as //external runfiles not cat-ed"]]}) ) ) (FunctionDef test_local_repository_java [] (List (Com {[LIT_CHARS create_new_workspace]}) (= scope= flags=0 words=[] bindings=[('repo2', {[VarSub new_workspace_dir]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS carnivore]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS carnivore/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS mongoose][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS Mongoose.java][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"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS carnivore/Mongoose.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package carnivore;\n"][LIT_CHARS "public class Mongoose {\n"][LIT_CHARS " public static void frolic() {\n"][LIT_CHARS " System.out.println("][RIGHT_D_QUOTE "\""][LIT_CHARS "Tra-la!"][RIGHT_D_QUOTE "\""][LIT_CHARS ");\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cd]} {[VarSub WORKSPACE_DIR]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name = 'endangered', path = '"][VarSub repo2][LIT_CHARS "')\n"]]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS zoo]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS ball-pit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " main_class = "][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@endangered//carnivore:mongoose"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BallPit.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "import carnivore.Mongoose;\n"][LIT_CHARS "\n"][LIT_CHARS "public class BallPit {\n"][LIT_CHARS " public static void main(String args[]) {\n"][LIT_CHARS " Mongoose.frolic();\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS endangered//carnivore] [LIT_OTHER ":"] [LIT_CHARS mongoose]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected build to succeed"]]}) ) (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Tra-la!"]]}) ) ) (FunctionDef test_non_existent_external_ref [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS zoo]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS zoo/BallPit.java]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS ball-pit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " main_class = "][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@common//carnivore:mongoose"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected build to fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package '@common//carnivore'"]]}) ) ) (FunctionDef test_new_local_repository_with_build_file [] (Com {[LIT_CHARS do_new_local_repository_test]} {[DQ [LIT_CHARS build_file]]}) ) (FunctionDef test_new_local_repository_with_labeled_build_file [] (Com {[LIT_CHARS do_new_local_repository_test]} {[DQ [LIT_CHARS "build_file+label"]]}) ) (FunctionDef test_new_local_repository_with_build_file_content [] (Com {[LIT_CHARS do_new_local_repository_test]} {[DQ [LIT_CHARS build_file_content]]}) ) (FunctionDef do_new_local_repository_test [] (List (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (= scope= flags=0 words=[] bindings=[('project_dir', {[VarSub TEST_TMPDIR] [LIT_CHARS /project]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub project_dir]}) (= scope= flags=0 words=[] bindings=[('outside_dir', {[VarSub TEST_TMPDIR] [LIT_CHARS /outside]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub outside_dir]}) (= scope= flags=0 words=[] bindings=[('package_dir', {[VarSub project_dir] [LIT_CHARS /carnivore]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub package_dir]}) (Com {[LIT_CHARS mkdir]} {[VarSub package_dir]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[VarSub outside_dir] [LIT_CHARS /Mongoose.java]} {[VarSub package_dir] [LIT_CHARS /Mongoose.java]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub package_dir] [LIT_CHARS /Mongoose.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package carnivore;\n"][LIT_CHARS "public class Mongoose {\n"][LIT_CHARS " public static void frolic() {\n"][LIT_CHARS " System.out.println("][RIGHT_D_QUOTE "\""][LIT_CHARS "Tra-la!"][RIGHT_D_QUOTE "\""][LIT_CHARS ");\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub 1]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS build_file]]} {[LIT_CHARS -o]} {[DQ [VarSub 1]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS "build_file+label"]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('build_file', {[LIT_CHARS BUILD.carnivore]})]) (= scope= flags=0 words=[] bindings=[('build_file_str', {[DQ [VarSub build_file]]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub 1]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS "build_file+label"]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('build_file_str', {[DQ [LIT_CHARS "//:"][VarSub build_file]]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} "> 1), > ) ) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = 'endangered',\n"][LIT_CHARS " path = '"][VarSub project_dir][LIT_CHARS "',\n"][LIT_CHARS " build_file = '"][VarSub build_file][LIT_CHARS "',\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub build_file]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS mongoose][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS carnivore/Mongoose.java][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"]]} 0), > ) ) (ElseTrue) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = 'endangered',\n"][LIT_CHARS " path = '"][VarSub project_dir][LIT_CHARS "',\n"][LIT_CHARS " build_file_content = "][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "java_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS mongoose][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS carnivore/Mongoose.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS zoo]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS ball-pit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " main_class = "][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@endangered//:mongoose"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BallPit.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "import carnivore.Mongoose;\n"][LIT_CHARS "\n"][LIT_CHARS "public class BallPit {\n"][LIT_CHARS " public static void main(String args[]) {\n"][LIT_CHARS " Mongoose.frolic();\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failed to build/run zoo"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Tra-la!"]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub package_dir] [LIT_CHARS /Mongoose.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package carnivore;\n"][LIT_CHARS "public class Mongoose {\n"][LIT_CHARS " public static void frolic() {\n"][LIT_CHARS " System.out.println("][RIGHT_D_QUOTE "\""][LIT_CHARS "Growl!"][RIGHT_D_QUOTE "\""][LIT_CHARS ");\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failed to build/run zoo"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "Tra-la!"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Growl!"]]}) ) ) (FunctionDef test_default_ws [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //external] [LIT_OTHER ":"] [LIT_CHARS java]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //external] [LIT_OTHER ":"] [LIT_CHARS java]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failed to build java"]]}) ) ) ) (FunctionDef test_external_hdrs [] (List (= scope= flags=0 words=[] bindings=[('external_ws', {[VarSub TEST_TMPDIR] [LIT_CHARS /path/to/my/lib]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub external_ws]}) (Com {[LIT_CHARS touch]} {[VarSub external_ws] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub external_ws] [LIT_CHARS /greet_lib.h]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "void greet();\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub external_ws] [LIT_CHARS /greet_lib.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#include \n"][LIT_CHARS "void greet() {\n"][LIT_CHARS " printf("][RIGHT_D_QUOTE "\""][LIT_CHARS Hello][RIGHT_D_QUOTE "\""][LIT_CHARS ");\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub external_ws] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cc_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS greet_lib][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS greet_lib.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " hdrs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS greet_lib.h][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " includes = [\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS .][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " ],\n"][LIT_CHARS " visibility = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS greeter.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#include "][RIGHT_D_QUOTE "\""][LIT_CHARS greet_lib.h][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "int main() {\n"][LIT_CHARS " greet();\n"][LIT_CHARS " return 0;\n"][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 greeter][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS greeter.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@greet_ws//:greet_lib"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS greet_ws][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub external_ws][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS greeter]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS greeter]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failed to run greeter"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS Hello]]}) ) ) (FunctionDef test_indirect_dep_message [] (List (= scope= flags=0 words=[] bindings=[('external_dir', {[VarSub TEST_TMPDIR] [LIT_CHARS /ext-dir]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS a]} {[LIT_CHARS b]} {[VarSub external_dir] [LIT_CHARS /x]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS a/A.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package a;\n"][LIT_CHARS "\n"][LIT_CHARS "import x.X;\n"][LIT_CHARS "\n"][LIT_CHARS "public class A {\n"][LIT_CHARS " public static void main(String args[]) {\n"][LIT_CHARS " X.print();\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS a/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS a][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " main_class = "][RIGHT_D_QUOTE "\""][LIT_CHARS a.A][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS A.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS //b][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS b/B.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package b;\n"][LIT_CHARS "\n"][LIT_CHARS "public class B {\n"][LIT_CHARS " public static void print() {\n"][LIT_CHARS " System.out.println("][RIGHT_D_QUOTE "\""][LIT_CHARS B][RIGHT_D_QUOTE "\""][LIT_CHARS ");\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS b/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS b][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS B.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@x_repo//x"][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"]]} 0), > ) (Com {[LIT_CHARS cp]} {[LIT_CHARS -r]} {[LIT_CHARS a]} {[LIT_CHARS b]} {[VarSub external_dir]}) (Com {[LIT_CHARS touch]} {[VarSub external_dir] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub external_dir] [LIT_CHARS /x/X.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package x;\n"][LIT_CHARS "\n"][LIT_CHARS "public class X {\n"][LIT_CHARS " public static void print() {\n"][LIT_CHARS " System.out.println("][RIGHT_D_QUOTE "\""][LIT_CHARS X][RIGHT_D_QUOTE "\""][LIT_CHARS ");\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub external_dir] [LIT_CHARS /x/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS X.java][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"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS x_repo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub external_dir][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //a] [LIT_OTHER ":"] [LIT_CHARS a]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building //a:a should error out"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "** Please add the following dependencies:"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@x_repo//x to //a"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //a]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building //a should error out"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "** Please add the following dependencies:"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@x_repo//x to //a"]]}) ) ) (FunctionDef test_external_includes [] (List (= scope= flags=0 words=[] bindings=[('clib', {[VarSub TEST_TMPDIR] [LIT_CHARS /clib]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub clib] [LIT_CHARS /include]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub clib] [LIT_CHARS /include/clib.h]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int x();\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub clib] [LIT_CHARS /clib.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#include "][RIGHT_D_QUOTE "\""][LIT_CHARS clib.h][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "int x() {\n"][LIT_CHARS " return 3;\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub clib] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cc_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS clib][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS clib.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " hdrs = glob(["][RIGHT_D_QUOTE "\""][LIT_CHARS "**/*.h"][RIGHT_D_QUOTE "\""][LIT_CHARS "]),\n"][LIT_CHARS " includes = ["][RIGHT_D_QUOTE "\""][LIT_CHARS include][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"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS clib_repo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub clib][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][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 printer][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS printer.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@clib_repo//:clib"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS printer.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#include \n"][LIT_CHARS "\n"][LIT_CHARS "#include "][RIGHT_D_QUOTE "\""][LIT_CHARS clib.h][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "int main() {\n"][LIT_CHARS " printf("][RIGHT_D_QUOTE "\""][LIT_CHARS "My number is %d"][\ LIT_ESCAPED_CHAR "\\n"][RIGHT_D_QUOTE "\""][LIT_CHARS ", x());\n"][LIT_CHARS " return 0;\n"][LIT_CHARS "}\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS printer]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS clib_repo//] [LIT_OTHER ":"] [LIT_CHARS clib]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building @clib_repo//:clib failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS printer]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Running //:printer failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "My number is 3"]]}) ) ) (FunctionDef test_external_query [] (List (= scope= flags=0 words=[] bindings=[('external_dir', {[VarSub TEST_TMPDIR] [LIT_CHARS /x]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub external_dir]}) (Com {[LIT_CHARS touch]} {[VarSub external_dir] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS my_repo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub external_dir][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //external] [LIT_OTHER ":"] [LIT_CHARS my_repo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[SQ ]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "//external:my_repo"]]}) ) ) (FunctionDef test_warning [] (List (= scope= flags=0 words=[] bindings=[('bar', {[VarSub TEST_TMPDIR] [LIT_CHARS /bar]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub bar]]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub bar]]}) (Com {[LIT_CHARS touch]} {[DQ [VarSub bar][LIT_CHARS /WORKSPACE]]} {[DQ [VarSub bar][LIT_CHARS /BUILD]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[LIT_CHARS BUILD]}) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS bar//...]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "Workspace name in .* does not match the name given in the repository's definition (@bar); this will cause a build error in future versions."]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub bar][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), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS bar//...]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Workspace name in .* does not match the name given in the repository's definition (@bar); this will cause a build error in future versions."]]}) ) ) (FunctionDef test_override_workspace_file [] (List (= scope= flags=0 words=[] bindings=[('bar', {[VarSub TEST_TMPDIR] [LIT_CHARS /bar]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub bar]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub bar][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 WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file = "][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[LIT_CHARS BUILD]}) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS bar//...]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "Workspace name in .* does not match the name given in the repository's definition (@bar); this will cause a build error in future versions."]]}) ) ) (FunctionDef test_overlaid_build_file [] (List (= scope= flags=0 words=[] bindings=[('mutant', {[VarSub TEST_TMPDIR] [LIT_CHARS /mutant]})]) (Com {[LIT_CHARS mkdir]} {[VarSub mutant]}) (Com {[LIT_CHARS touch]} {[VarSub mutant] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS mutant][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub mutant][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file = "][RIGHT_D_QUOTE "\""][LIT_CHARS mutant.BUILD][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "bind(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS best-turtle][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " actual = "][RIGHT_D_QUOTE "\""][LIT_CHARS "@mutant//:turtle"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS mutant.BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS turtle][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS tmnt][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo 'Leonardo' > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][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"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //external] [LIT_OTHER ":"] [LIT_CHARS best-turtle]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //external] [LIT_OTHER ":"] [LIT_CHARS best-turtle]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "First build failed"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS Leonardo]]} {[LIT_CHARS bazel-genfiles/external/mutant/tmnt]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS mutant.BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS turtle][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS tmnt][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo 'Donatello' > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][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"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //external] [LIT_OTHER ":"] [LIT_CHARS best-turtle]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Second build failed"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS Donatello]]} {[LIT_CHARS bazel-genfiles/external/mutant/tmnt]}) ) ) (FunctionDef test_external_deps_in_remote_repo [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "bind(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS e][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " actual = "][RIGHT_D_QUOTE "\""][LIT_CHARS "@r//:g"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:e"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS r.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "cp "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "< "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS g][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS g.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo GOLF > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][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"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS r]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS GOLF]]} {[LIT_CHARS bazel-genfiles/external/r/r.out]}) ) ) (FunctionDef test_local_deps [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /a]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name = \"a\",\n"] [LIT_CHARS " srcs = [\"//b:b\"],\n"] [LIT_CHARS " outs = [\"a.out\"],\n"] [LIT_CHARS " cmd = \"cp $< $@\",\n"] [LIT_CHARS ")\n"]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /b]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /b/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name = \"b\",\n"] [LIT_CHARS " srcs = [],\n"] [LIT_CHARS " outs = [\"b.out\"],\n"] [LIT_CHARS " cmd = \"echo SHOUT > $@\",\n"] [LIT_CHARS " visibility = [\"//visibility:public\"],\n"] [LIT_CHARS ")\n"]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//a]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) ) ) (FunctionDef test_globs [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "filegroup(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS fg][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = glob(["][RIGHT_D_QUOTE "\""][LIT_CHARS "**"][RIGHT_D_QUOTE "\""][LIT_CHARS "]),\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /a]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /b]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /b/] [LIT_LBRACE "{"] [LIT_CHARS BUILD] [LIT_COMMA ","] [LIT_CHARS b] [LIT_RBRACE "}"]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS fg]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) ) ) (FunctionDef test_cc_binary_in_local_repository [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[VarSub r]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [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 bin][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS bin.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /bin.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int main() { return 0; };\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS bin]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) ) ) (FunctionDef test_output_file_in_local_repository [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[VarSub r]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name=\"r\",\n"] [LIT_CHARS " srcs=[],\n"] [LIT_CHARS " outs=[\"r.out\"],\n"] [LIT_CHARS " cmd=\"touch $@\",\n"] [LIT_CHARS " visibility=[\"//visibility:public\"])\n"]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ", path="][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(name=\"m\", srcs=[\"@r//:r.out\"], outs=[\"m.out\"], cmd=\"touch $@\")\n"]} 0), > ) (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS m]}) ) ) (FunctionDef test_remote_pkg_boundaries [] (List (= scope= flags=0 words=[] bindings=[('other_ws', {[VarSub TEST_TMPDIR] [LIT_CHARS /ws]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub other_ws] [LIT_CHARS /a]}) (Com {[LIT_CHARS touch]} {[VarSub other_ws] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub other_ws] [LIT_CHARS /a/b]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "abcxyz\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub other_ws] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "exports_files(["][RIGHT_D_QUOTE "\""][LIT_CHARS a/b][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS other][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub other_ws][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][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 "load('/sample', 'sample_bin')\n"][LIT_CHARS "\n"][LIT_CHARS "sample_bin(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS sample.bzl]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "def impl(ctx):\n"][LIT_CHARS " ctx.action(\n"][LIT_CHARS " command = "][RIGHT_D_QUOTE "\""][LIT_CHARS "cat %s > %s"][RIGHT_D_QUOTE "\""][LIT_CHARS " % (ctx.file._dep.path, ctx.outputs.sh.path),\n"][LIT_CHARS " inputs = [ctx.file._dep],\n"][LIT_CHARS " outputs = [ctx.outputs.sh]\n"][LIT_CHARS " )\n"][LIT_CHARS "\n"][LIT_CHARS "sample_bin = rule(\n"][LIT_CHARS " attrs = {\n"][LIT_CHARS " '_dep': attr.label(\n"][LIT_CHARS " default=Label("][RIGHT_D_QUOTE "\""][LIT_CHARS "@other//:a/b"][RIGHT_D_QUOTE "\""][LIT_CHARS "),\n"][LIT_CHARS " executable=True,\n"][LIT_CHARS " cfg="][RIGHT_D_QUOTE "\""][LIT_CHARS host][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " allow_files=True,\n"][LIT_CHARS " single_file=True)\n"][LIT_CHARS " },\n"][LIT_CHARS " outputs = {'sh': "][RIGHT_D_QUOTE "\""][LIT_CHARS "%{name}.sh"][RIGHT_D_QUOTE "\""][LIT_CHARS "},\n"][LIT_CHARS " implementation = impl,\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS -s]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS x]}) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS abcxyz]]} {[LIT_CHARS bazel-bin/x.sh]}) ) ) (FunctionDef test_visibility_through_bind [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS public][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS public.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "cp "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "< "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS private][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:private"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS private.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "cp "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "< "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "bind(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS public][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " actual = "][RIGHT_D_QUOTE "\""][LIT_CHARS "//:public"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "bind(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS private][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " actual = "][RIGHT_D_QUOTE "\""][LIT_CHARS "//:private"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][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 "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS public][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS public.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo PUBLIC > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][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 private][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS private.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo PRIVATE > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS public]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "failed to build public target"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS private]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "could build private target"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Target '//:private' is not visible from target '@r//:private'"]]}) ) ) (FunctionDef test_load_in_remote_repository [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package(default_visibility=["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"][LIT_CHARS "load("][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS r_filegroup][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"][LIT_CHARS "r_filegroup(name="][RIGHT_D_QUOTE "\""][LIT_CHARS rfg][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs=["][RIGHT_D_QUOTE "\""][LIT_CHARS rfgf][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /r.bzl]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "def r_filegroup(name, srcs):\n"][LIT_CHARS " native.filegroup(name=name, srcs=srcs)\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /rfgf]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ", path="][RIGHT_D_QUOTE "\""][VarSub r][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 "filegroup(name="][RIGHT_D_QUOTE "\""][LIT_CHARS fg][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs=["][RIGHT_D_QUOTE "\""][LIT_CHARS "@r//:rfg"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS fg]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "failed to build target"]]}) ) ) ) (FunctionDef test_python_in_remote_repository [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /bin]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /bin/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package(default_visibility=["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"][LIT_CHARS "py_binary(name="][RIGHT_D_QUOTE "\""][LIT_CHARS bin][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs=["][RIGHT_D_QUOTE "\""][LIT_CHARS bin.py][RIGHT_D_QUOTE "\""][LIT_CHARS "], deps=["][RIGHT_D_QUOTE "\""][LIT_CHARS "//lib:lib"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /bin/bin.py]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "import lib.lib\n"][LIT_CHARS "\n"][LIT_CHARS "print "][RIGHT_D_QUOTE "\""][LIT_CHARS "Hello "][RIGHT_D_QUOTE "\""][LIT_CHARS " + lib.lib.User()\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[VarSub r] [LIT_CHARS /bin/bin.py]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /lib]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /lib/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "package(default_visibility=["][RIGHT_D_QUOTE "\""][LIT_CHARS "//visibility:public"][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"][LIT_CHARS "py_library(name="][RIGHT_D_QUOTE "\""][LIT_CHARS lib][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs=["][RIGHT_D_QUOTE "\""][LIT_CHARS lib.py][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /lib/lib.py]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "def User():\n"][LIT_CHARS " return "][RIGHT_D_QUOTE "\""][LIT_CHARS User][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ", path="][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_OTHER "@"] [LIT_CHARS r//bin] [LIT_OTHER ":"] [LIT_CHARS bin]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Hello User"]]}) ) ) (FunctionDef test_package_wildcard_in_remote_repository [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /a]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /] [LIT_LBRACE "{"] [LIT_CHARS x] [LIT_COMMA ","] [LIT_CHARS y] [LIT_COMMA ","] [LIT_CHARS a/g] [LIT_COMMA ","] [LIT_CHARS a/h] [LIT_RBRACE "}"]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "exports_files(["][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS y][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "exports_files(["][RIGHT_D_QUOTE "\""][LIT_CHARS g][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS h][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ", path="][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS all-targets]} {[LIT_OTHER "+"]} {[LIT_OTHER "@"] [LIT_CHARS r//a] [LIT_OTHER ":"] [LIT_CHARS all-targets]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//:x"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//:y"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a:g"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a:h"]]}) ) ) (FunctionDef test_recursive_wildcard_in_remote_repository [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /a/] [LIT_LBRACE "{"] [LIT_CHARS x] [LIT_COMMA ","] [LIT_CHARS y/z] [LIT_RBRACE "}"]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /a/] [LIT_LBRACE "{"] [LIT_CHARS x] [LIT_COMMA ","] [LIT_CHARS y/z] [LIT_RBRACE "}"] [LIT_CHARS /] [LIT_LBRACE "{"] [LIT_CHARS m] [LIT_COMMA ","] [LIT_CHARS n] [LIT_RBRACE "}"]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/x/BUILD]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/y/z/BUILD]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "local_repository(name='r', path='"][VarSub r][LIT_CHARS "')"]]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS r//...] [LIT_OTHER ":"] [LIT_CHARS all-targets]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a/x:m"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a/x:n"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a/y/z:m"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a/y/z:n"]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS r//a/x] [LIT_OTHER ":"] [LIT_CHARS all-targets]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a/x:m"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r//a/x:n"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "@r//a/y/z:m"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "@r//a/y/z:n"]]}) ) ) (FunctionDef test_package_name_constants [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /a]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name = 'b',\n"] [LIT_CHARS " srcs = [],\n"] [LIT_CHARS " outs = ['bo'],\n"] [LIT_CHARS " cmd = 'echo ' + REPOSITORY_NAME + ' ' + PACKAGE_NAME + ' > $@')\n"]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(name='r', path='"][VarSub r][LIT_CHARS "')\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//a] [LIT_OTHER ":"] [LIT_CHARS b]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS cat]} {[LIT_CHARS bazel-genfiles/external/r/a/bo]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "@r a"]]}) ) ) (FunctionDef test_slash_in_repo_name [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r] [LIT_CHARS /a]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /a/WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/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 bin][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS bin.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a/bin.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int main() { return 0; };\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r/a][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub r][LIT_CHARS /a][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r/a//] [LIT_OTHER ":"] [LIT_CHARS bin]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "expected build failure, but succeeded"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "workspace names may contain only A-Z, a-z, 0-9, '-', '_' and '.'"]]}) ) ) (FunctionDef test_remote_includes [] (List (= scope= flags=0 words=[] bindings=[('remote', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub remote]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub remote] [LIT_CHARS /inc]}) (Com {[LIT_CHARS touch]} {[VarSub remote] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub remote] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cc_library(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS bar.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " hdrs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS inc/bar.h][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"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub remote] [LIT_CHARS /bar.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#include "][RIGHT_D_QUOTE "\""][LIT_CHARS inc/bar.h][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "int getNum() {\n"][LIT_CHARS " return 42;\n"][LIT_CHARS "}\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub remote] [LIT_CHARS /inc/bar.h]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int getNum();\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub remote][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][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 foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS foo.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@r//:bar"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS foo.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#include \n"][LIT_CHARS "#include "][RIGHT_D_QUOTE "\""][LIT_CHARS inc/bar.h][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "int main() { printf("][RIGHT_D_QUOTE "\""][LIT_CHARS "%d"][\ LIT_ESCAPED_CHAR "\\n"][RIGHT_D_QUOTE "\""][LIT_CHARS ", getNum()); return 0; };\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_OTHER ":"] [LIT_CHARS foo]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS 42]]}) ) ) (FunctionDef test_change_new_repository_build_file [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /a.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int a() { return 42; }\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /b.cc]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "int b() { return 42; }\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path="][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file="][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD.r][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD.r]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cc_library(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS a][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS a.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS a]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD.r]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cc_library(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS a][RIGHT_D_QUOTE "\""][LIT_CHARS ", srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS a.cc][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS b.cc][RIGHT_D_QUOTE "\""][LIT_CHARS "])\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS a]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) ) ) (FunctionDef test_build_all [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name = \"dummy1\",\n"] [LIT_CHARS " outs = [\"dummy.txt\"],\n"] [LIT_CHARS " cmd = \"echo 1 >$@\",\n"] [LIT_CHARS " visibility = [\"//visibility:public\"],\n"] [LIT_CHARS ")\n"]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "local_repository(\n"][LIT_CHARS " name="][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path="][RIGHT_D_QUOTE "\""][VarSub r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name = \"dummy2\",\n"] [LIT_CHARS " srcs = [\"@r//:dummy1\"],\n"] [LIT_CHARS " outs = [\"dummy.txt\"],\n"] [LIT_CHARS " cmd = \"cat $(SRCS) > $@\",\n"] [LIT_CHARS ")\n"]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER ":"] [LIT_OTHER "*"]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) ) ) (FunctionDef test_overwrite_build_file [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub r]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub r]}) (Com {[LIT_CHARS touch]} {[VarSub r] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub r] [LIT_CHARS /BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "genrule(\n"] [LIT_CHARS " name = \"orig\"\n"] [LIT_CHARS " cmd = \"echo foo > $@\",\n"] [LIT_CHARS " outs = [\"orig.out\"],\n"] [LIT_CHARS ")\n"]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub TEST_TMPDIR][LIT_CHARS /r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file_content = "][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo bar > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//...]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS orig]]} {[VarSub r] [LIT_CHARS /BUILD]}) ) ) (FunctionDef test_new_local_repository_path_not_existing [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub TEST_TMPDIR][LIT_CHARS /r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file_content = "][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo bar > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//...]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build succeeded unexpectedly"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "does not exist"]]}) ) ) (FunctionDef test_new_local_repository_path_not_directory [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub r]}) (Com {[LIT_CHARS touch]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub TEST_TMPDIR][LIT_CHARS /r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file_content = "][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo bar > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//...]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build succeeded unexpectedly"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "is not a directory"]]}) ) ) (FunctionDef test_new_local_repository_path_symlink_to_dir [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (= scope= flags=0 words=[] bindings=[('s', {[VarSub TEST_TMPDIR] [LIT_CHARS /s]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub r]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub s]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub s]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[VarSub s]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub TEST_TMPDIR][LIT_CHARS /r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file_content = "][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo bar > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS rewrite]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build failed"]]}) ) ) ) (FunctionDef test_new_local_repository_path_symlink_to_file [] (List (= scope= flags=0 words=[] bindings=[('r', {[VarSub TEST_TMPDIR] [LIT_CHARS /r]})]) (= scope= flags=0 words=[] bindings=[('s', {[VarSub TEST_TMPDIR] [LIT_CHARS /s]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub r]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub s]}) (Com {[LIT_CHARS touch]} {[VarSub s]}) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[VarSub s]} {[VarSub r]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub TEST_TMPDIR][LIT_CHARS /r][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file_content = "][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo bar > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS rewrite.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS rewrite]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Build succeeded unexpectedly"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "is not a directory"]]}) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "local repository tests"]]}) )