(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/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS showenv][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS env.txt][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "env | sort > "][\ LIT_ESCAPED_CHAR "\\\""][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "@"][\ LIT_ESCAPED_CHAR "\\\""][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"]]} 0), > ) ) ) (FunctionDef test_simple [] (List (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS baz]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_VAR_LIKE "FOO="] [LIT_CHARS bar]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=bar"]]}) ) ) (FunctionDef test_simple_latest_wins [] (List (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS environmentfoo]})]) (= scope= flags=1 words=[] bindings=[('BAR', {[LIT_CHARS environmentbar]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_VAR_LIKE "FOO="] [LIT_CHARS foo]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_VAR_LIKE "BAR="] [LIT_CHARS willbeoverridden]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_VAR_LIKE "BAR="] [LIT_CHARS bar]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=foo"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "BAR=bar"]]}) ) ) (FunctionDef test_client_env [] (List (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS startup_foo]})]) (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]} {[LIT_CHARS --expunge]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS help]} {[LIT_CHARS build]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " help failed"]]}) ) (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS client_foo]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=client_foo"]]}) ) ) (FunctionDef test_redo_action [] (List (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS initial_foo]})]) (= scope= flags=1 words=[] bindings=[('UNRELATED', {[LIT_CHARS some_value]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=initial_foo"]]}) (= scope= flags=1 words=[] bindings=[('UNRELATED', {[LIT_CHARS some_other_value]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS -s]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[SQ ]}) (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS changed_foo]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS -s]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=changed_foo"]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS -s]} {[LIT_CHARS --experimental_ui]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 2), > ) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS expect_not_log]} {[SQ ]}) ) ) (FunctionDef test_latest_wins_arg [] (List (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS bar]})]) (= scope= flags=1 words=[] bindings=[('BAR', {[LIT_CHARS baz]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS BAR]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_VAR_LIKE "FOO="] [LIT_CHARS foo]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=foo"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "BAR=baz"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "FOO=bar"]]}) ) ) (FunctionDef test_latest_wins_env [] (List (= scope= flags=1 words=[] bindings=[('FOO', {[LIT_CHARS bar]})]) (= scope= flags=1 words=[] bindings=[('BAR', {[LIT_CHARS baz]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS BAR]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_VAR_LIKE "FOO="] [LIT_CHARS foo]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FOO]} {[LIT_CHARS pkg] [LIT_OTHER ":"] [LIT_CHARS showenv]}) (Com {[LIT_CHARS fail]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " build showenv failed"]]}) ) (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[VarSub PRODUCT_NAME] [LIT_CHARS -genfiles]})] [LIT_CHARS /pkg/env.txt]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "FOO=bar"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "BAR=baz"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS "FOO=foo"]]}) ) ) (FunctionDef test_env_freezing [] (List (Com {[LIT_CHARS add_to_bazelrc]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_FOO"]]}) (Com {[LIT_CHARS add_to_bazelrc]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_BAR=is_fixed"]]}) (Com {[LIT_CHARS add_to_bazelrc]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_BAZ=will_be_overridden"]]}) (Com {[LIT_CHARS add_to_bazelrc]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_BUILD"]]}) (= scope= flags=1 words=[] bindings=[('FREEZE_TEST_FOO', {[LIT_CHARS client_foo]})]) (= scope= flags=1 words=[] bindings=[('FREEZE_TEST_BAR', {[LIT_CHARS client_bar]})]) (= scope= flags=1 words=[] bindings=[('FREEZE_TEST_BAZ', {[LIT_CHARS client_baz]})]) (= scope= flags=1 words=[] bindings=[('FREEZE_TEST_BUILD', {[LIT_CHARS client_build]})]) (Com {[LIT_CHARS bazel]} {[LIT_CHARS info]} {[LIT_CHARS --action_env] [LIT_OTHER "="] [LIT_CHARS FREEZE_TEST_BAZ]} {[LIT_CHARS client-env]} < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_FOO=client_foo"]]}) (Com {[LIT_CHARS expect_not_log]} {[DQ [LIT_CHARS FREEZE_TEST_BAR]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_BAZ=client_baz"]]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "build --action_env=FREEZE_TEST_BUILD=client_build"]]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS .] [VarSub PRODUCT_NAME] [LIT_CHARS rc]}) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "Tests for bazel's handling of environment variables in actions"]]}) )