(List (= scope= flags=0 words=[] bindings=[('CURRENT_DIR', {[DQ [ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]]}) (Com {[LIT_CHARS pwd]}) )]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS source]} {[DQ [VarSub CURRENT_DIR][LIT_CHARS /../integration_test_setup.sh]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "integration_test_setup.sh not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (FunctionDef set_up [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS pkg]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/true.sh]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "exit 0\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[LIT_CHARS pkg/true.sh]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/slow.sh]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "sleep 10\n"][LIT_CHARS "exit 0\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[LIT_CHARS pkg/slow.sh]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/false.sh]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "exit 1\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[LIT_CHARS pkg/false.sh]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/output.sh]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS echo]})][LIT_CHARS " -n foo\n"][LIT_CHARS "sleep 1\n"][ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS echo]})][LIT_CHARS " -n bar\n"][LIT_CHARS "exit 0\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[LIT_CHARS pkg/output.sh]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS pkg/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "sh_test(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS true][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS true.sh][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][LIT_CHARS "sh_test(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS slow][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS slow.sh][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][LIT_CHARS "sh_test(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS false][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS false.sh][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][LIT_CHARS "sh_test(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS output][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS output.sh][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"][LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS gentext][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS gentext.txt][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo here be dragons > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"]]} 0), > ) ) ) (FunctionDef test_basic_progress [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_noshow_progress [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --noshow_progress]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS expect_not_log]} {[SQ ]}) ) ) (FunctionDef test_basic_progress_no_curses [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS no]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS expect_not_log]} {[SQ ]}) (Com {[LIT_CHARS expect_not_log]} {[SQ ]}) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_no_curses_no_linebreak [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS no]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --terminal_columns] [LIT_OTHER "="] [LIT_CHARS 9]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_pass [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ] [SQ ] [SQ ]}) ) ) (FunctionDef test_fail [] (List (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS false]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "expected failure"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ] [SQ ] [SQ ]}) ) ) (FunctionDef test_timestamp [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --show_timestamps]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_info_spacing [] (List (= scope= flags=0 words=[] bindings=[('BAZEL_INFO_OUTPUT', {[LIT_CHARS XXX] [ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS workspace]})] [LIT_CHARS XXX]})]) (AndOr OP_OR_IF (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub BAZEL_INFO_OUTPUT]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ] [SQ ] [SQ ]}) ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " info output spaced as "][VarSub BAZEL_INFO_OUTPUT]]}) ) ) ) (FunctionDef test_query_spacing [] (List (= scope= flags=0 words=[] bindings=[('BAZEL_QUERY_OUTPUT', {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS query]} {[LIT_CHARS --experimental_ui]} {[SQ ]})]})]) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub BAZEL_QUERY_OUTPUT]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[LIT_CHARS -v]} {[SQ ]}) ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel query output is >"][VarSub BAZEL_QUERY_OUTPUT][LIT_CHARS "<"]]}) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub BAZEL_QUERY_OUTPUT]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]}) ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel query output is >"][VarSub BAZEL_QUERY_OUTPUT][LIT_CHARS "<"]]}) ) (Com {[LIT_CHARS true]}) ) ) (FunctionDef test_clean_nobuild [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]} {[LIT_CHARS --experimental_ui]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel shutdown failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "actions running"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS Building]]}) ) ) (FunctionDef test_clean_color_nobuild [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel shutdown failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "actions running"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS Building]]}) ) ) (FunctionDef test_help_nobuild [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS help]} {[LIT_CHARS --experimental_ui]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel help failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "actions running"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS Building]]}) ) ) (FunctionDef test_help_color_nobuild [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS help]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel help failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "actions running"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS Building]]}) ) ) (FunctionDef test_version_nobuild [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS version]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel version failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS action]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS Building]]}) ) ) (FunctionDef test_subcommand [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " clean failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS -s]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS gentext]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel build failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "here be dragons"]]}) ) ) (FunctionDef test_subcommand_notdefault [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " clean failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS gentext]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "bazel build failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS dragons]]}) ) ) (FunctionDef test_loading_progress [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " clean failed"]]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --experimental_skyframe_target_pattern_evaluator]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_failure_scrollback_buffer_curses [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " clean failed"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --nocache_test_results]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS false]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS slow]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "expected failure"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ] [SQ ]}) ) ) (FunctionDef test_terminal_title [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --progress_in_terminal_title]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS true]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " test failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_failure_scrollback_buffer [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " clean failed"]]}) ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS no]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --nocache_test_results]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS false]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS slow]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "expected failure"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ] [SQ ]}) ) ) (FunctionDef test_streamed [] (List (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS test]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS --curses] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --color] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --nocache_test_results]} {[LIT_CHARS --test_output] [LIT_OTHER "="] [LIT_CHARS streamed]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS output]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "expected success"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "Integration tests for "][VarSub PRODUCT_NAME][LIT_CHARS "'s experimental UI"]]}) )