(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 write_rule [] (List (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('srcs', {[DQ ]})]) (For src [{[DQ [VarSub @]]}]) (= scope= flags=0 words=[] bindings=[('srcs', {[DQ [\ LIT_ESCAPED_CHAR "\\\""][VarSub src][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][VarSub srcs]]})]) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][VarSub name][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [\n"][LIT_CHARS " "][VarSub srcs][LIT_CHARS "\n"][LIT_CHARS " ],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][VarSub name][LIT_CHARS .out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo "][VarSub name][LIT_CHARS " > "][\ 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), > ) ) ) (FunctionDef test_basic_cross_repo_targets [] (List (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 "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_via_repo]} {[DQ [LIT_CHARS "@bar//:bar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_via_repo_subdir]} {[DQ [LIT_CHARS "@bar//subbar:subbar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_directly]} {[DQ [LIT_CHARS "//bar:bar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_directly_subdir]} {[DQ [LIT_CHARS "//bar/subbar:subbar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS bar/WORKSPACE]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS bar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar/subbar]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS subbar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/subbar/BUILD]} >"> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_via_repo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_via_repo_subdir]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_directly]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package 'bar': Package crosses into repository @bar"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_directly_subdir]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package 'bar/subbar': Package crosses into repository @bar"]]}) ) ) (FunctionDef test_top_level_local_repository [] (List (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 loc][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][LIT_CHARS .][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS foo]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS foo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS loc//] [LIT_OTHER ":"] [LIT_CHARS foo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) ) ) (FunctionDef test_workspace_loads_rules [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "load("][RIGHT_D_QUOTE "\""][LIT_CHARS "//baz:rules.bzl"][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS baz_rule][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"][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 "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_via_repo]} {[DQ [LIT_CHARS "@bar//:bar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_directly]} {[DQ [LIT_CHARS "//bar:bar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS bar/WORKSPACE]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS bar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS baz]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS baz/BUILD]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS baz/rules.bzl]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "baz_rule = 'baz_rule'\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_via_repo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_directly]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package 'bar': Package crosses into repository @bar"]]}) ) ) (FunctionDef test_workspace_loads_rules_failure [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "load("][RIGHT_D_QUOTE "\""][LIT_CHARS "//bar:rules.bzl"][RIGHT_D_QUOTE "\""][LIT_CHARS ", "][RIGHT_D_QUOTE "\""][LIT_CHARS bar_rule][RIGHT_D_QUOTE "\""][LIT_CHARS ")\n"][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 "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS depend_via_repo]} {[DQ [LIT_CHARS "@bar//:bar"]]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS bar/WORKSPACE]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS bar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} >"> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS bar/rules.bzl]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "bar_rule = 'bar_rule'\n"]]} 0), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS depend_via_repo]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "cycles detected"]]}) ) ) (FunctionDef test_top_level_local_repository [] (List (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 loc][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][LIT_CHARS .][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS foo]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} >"> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS foo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS loc//] [LIT_OTHER ":"] [LIT_CHARS foo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should succeed"]]}) ) ) ) (FunctionDef test_incremental_add_repository [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS bar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar/subbar]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS subbar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/subbar/BUILD]} >"> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_CHARS //bar/...]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) (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 "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[LIT_CHARS bar/WORKSPACE]}) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_CHARS //bar] [LIT_OTHER ":"] [LIT_CHARS bar]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package 'bar': Package crosses into repository @bar"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_CHARS //bar/subbar] [LIT_OTHER ":"] [LIT_CHARS subbar]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package 'bar/subbar': Package crosses into repository @bar"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "about to test @bar//"]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS bar//] [LIT_OTHER ":"] [LIT_CHARS bar]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS bar//subbar] [LIT_OTHER ":"] [LIT_CHARS subbar]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) ) ) (FunctionDef test_incremental_remove_repository [] (List (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 "\""][LIT_CHARS bar][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS bar/WORKSPACE]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS bar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/BUILD]} >"> 1), > ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS bar/subbar]}) (Com {[LIT_CHARS write_rule]} {[LIT_CHARS subbar]} < (FilenameRedirectNode filename={[LIT_CHARS bar/subbar/BUILD]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "about to test @bar//"]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS bar//] [LIT_OTHER ":"] [LIT_CHARS bar]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS bar//subbar] [LIT_OTHER ":"] [LIT_CHARS subbar]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), > ) (Com {[LIT_CHARS rm]} {[LIT_CHARS bar/WORKSPACE]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_CHARS //bar] [LIT_OTHER ":"] [LIT_CHARS bar]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_CHARS //bar/subbar] [LIT_OTHER ":"] [LIT_CHARS subbar]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "query should succeed"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS bar//] [LIT_OTHER ":"] [LIT_CHARS bar]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package '@bar//':.*The repository named 'bar' could not be resolved"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_OTHER "@"] [LIT_CHARS bar//subbar] [LIT_OTHER ":"] [LIT_CHARS subbar]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build should fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "no such package '@bar//subbar':.*The repository named 'bar' could not be resolved"]]}) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "cross-repository tests"]]}) )