(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]}) ) ) (= scope= flags=1 words=[] bindings=[('JAVA_RUNFILES', {[VarSub BAZEL_RUNFILES]})]) (FunctionDef setup_repo [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub 1]}) (Com {[LIT_CHARS touch]} {[VarSub 1] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS echo]} {[VarSub 2]} < (FilenameRedirectNode filename={[VarSub 1] [LIT_CHARS /thing]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub 1] [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 x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS thing][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "cat "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "(location thing) > "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) ) ) (FunctionDef test_workspace_changes [] (List (= scope= flags=0 words=[] bindings=[('repo_a', {[VarSub TEST_TMPDIR] [LIT_CHARS /a]})]) (= scope= flags=0 words=[] bindings=[('repo_b', {[VarSub TEST_TMPDIR] [LIT_CHARS /b]})]) (Com {[LIT_CHARS setup_repo]} {[VarSub repo_a]} {[LIT_CHARS hi]}) (Com {[LIT_CHARS setup_repo]} {[VarSub repo_b]} {[LIT_CHARS bye]}) (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][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub repo_a][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 x//] [LIT_OTHER ":"] [LIT_CHARS x]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS hi]]} {[LIT_CHARS bazel-genfiles/external/x/out]}) (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][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][VarSub repo_b][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 x//] [LIT_OTHER ":"] [LIT_CHARS x]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "build failed"]]}) ) (Com {[LIT_CHARS assert_contains]} {[DQ [LIT_CHARS bye]]} {[LIT_CHARS bazel-genfiles/external/x/out]}) ) ) (FunctionDef test_path_with_spaces [] (List (= scope= flags=0 words=[] bindings=[('ws', {[DQ [LIT_CHARS "a b"]]})]) (Com {[LIT_CHARS mkdir]} {[DQ [VarSub ws]]}) (Com {[LIT_CHARS cd]} {[DQ [VarSub ws]]}) (Com {[LIT_CHARS touch]} {[LIT_CHARS WORKSPACE]}) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Info succeeeded"]]}) ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS help]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Help failed"]]}) ) ) ) (FunctionDef test_middleman_conflict [] (List (= scope= flags=0 words=[] bindings=[('test_repo1', {[VarSub TEST_TMPDIR] [LIT_CHARS /repo1]})]) (= scope= flags=0 words=[] bindings=[('test_repo2', {[VarSub TEST_TMPDIR] [LIT_CHARS /repo2]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub test_repo1]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub test_repo2]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS 1]]} < (FilenameRedirectNode filename={[VarSub test_repo1] [LIT_CHARS /test.in]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS 2]]} < (FilenameRedirectNode filename={[VarSub test_repo2] [LIT_CHARS /test.in]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[VarSub test_repo1] [LIT_CHARS /BUILD]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[VarSub test_repo2] [LIT_CHARS /BUILD]} "> 1), > ) (Com {[LIT_CHARS touch]} {[VarSub test_repo1] [LIT_CHARS /WORKSPACE]}) (Com {[LIT_CHARS touch]} {[VarSub test_repo2] [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(name = 'repo1', path='"][VarSub test_repo1][LIT_CHARS "')\n"][LIT_CHARS "local_repository(name = 'repo2', path='"][VarSub test_repo2][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 = \"test\",\n"] [LIT_CHARS " srcs = [\"@repo1//:test\", \"@repo2//:test\"],\n"] [LIT_CHARS " outs = [\"test.out\"],\n"] [LIT_CHARS " cmd = \"cat $(SRCS) >$@\"\n"] [LIT_CHARS ")\n"]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS test]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Fetch failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS test]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Expected build to succeed"]]}) ) (Com {[LIT_CHARS check_eq]} {[DQ [LIT_CHARS 12]]} {[DQ [ComSub (Pipeline (Com {[LIT_CHARS cat]} {[LIT_CHARS bazel-genfiles/test.out]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]]}) ) ) (FunctionDef test_error_in_workspace_file [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "/\n"]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS --batch]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS r//] [LIT_OTHER ":"] [LIT_CHARS rfg]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failure expected"]]}) (Com {[LIT_CHARS true]}) ) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS Exception]]}) ) ) (FunctionDef test_no_select [] (List (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 foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][LIT_CHARS /path/to/foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file = select({\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS "//x:y"][RIGHT_D_QUOTE "\""][LIT_CHARS " : "][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD.1][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS "//conditions:default"][RIGHT_D_QUOTE "\""][LIT_CHARS " : "][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD.2][RIGHT_D_QUOTE "\""][LIT_CHARS "}),\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS foo//...]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failure expected"]]}) (Com {[LIT_CHARS true]}) ) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "select() cannot be used in WORKSPACE files"]]}) ) ) (FunctionDef test_macro_select [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "load('//:foo.bzl', 'foo_repo')\n"][LIT_CHARS "foo_repo()\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[LIT_CHARS BUILD]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS foo.bzl]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "def foo_repo():\n"][LIT_CHARS " native.new_local_repository(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " path = "][RIGHT_D_QUOTE "\""][LIT_CHARS /path/to/foo][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " build_file = select({\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS "//x:y"][RIGHT_D_QUOTE "\""][LIT_CHARS " : "][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD.1][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS "//conditions:default"][RIGHT_D_QUOTE "\""][LIT_CHARS " : "][RIGHT_D_QUOTE "\""][LIT_CHARS BUILD.2][RIGHT_D_QUOTE "\""][LIT_CHARS "}),\n"][LIT_CHARS " )\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS foo//...]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Failure expected"]]}) (Com {[LIT_CHARS true]}) ) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "select() cannot be used in macros called from WORKSPACE files"]]}) ) ) (FunctionDef test_clean [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS x]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS x]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "workspace(name = "][RIGHT_D_QUOTE "\""][LIT_CHARS y][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 = \"z\", cmd = \"echo hi > $@\", outs = [\"x.out\"], srcs = [])\n"]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS z]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected build to succeed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -L]} {[LIT_CHARS bazel-x]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel-x should be a symlink"]]}) ) (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -L]} {[LIT_CHARS bazel-x]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel-x should have been removed"]]}) ) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "workspace tests"]]}) )