(List (= scope= flags=0 words=[] bindings=[('NO_SIGNAL_OVERRIDE', {[LIT_CHARS 1]})]) (= 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 runbazel [] (List (= scope= flags=0 words=[] bindings=[('startup_opt', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('sleepyfifo', {[LIT_CHARS x/sleepyfifo]})]) (= scope= flags=0 words=[] bindings=[('testfifo', {[LIT_CHARS x/testfifo]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS x]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Can't create x"]]}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS x/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "genrule(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS sleepy][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = [],\n"][LIT_CHARS " outs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS sleepy.out][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " local = 1,\n"][LIT_CHARS " cmd = "][RIGHT_D_QUOTE "\""][LIT_CHARS "echo 'hi test' > "][VarSub testfifo][LIT_CHARS "; cat "][VarSub sleepyfifo][LIT_CHARS "; sleep 9999"][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS ")\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS mkfifo]} {[VarSub testfifo]} {[VarSub sleepyfifo]}) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Couldn't create FIFOs under x"]]}) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -m]}) (Fork (Com {[LIT_CHARS bazel]} {[VarSub startup_opt]} {[LIT_CHARS build]} {[LIT_CHARS --package_path]} {[LIT_CHARS .]} {[LIT_CHARS //x] [LIT_OTHER ":"] [LIT_CHARS sleepy]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) ) (= scope= flags=0 words=[] bindings=[('pid', {[VarSub !]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub PRODUCT_NAME][LIT_CHARS " running in background with pid "][VarSub pid]]}) (= scope= flags=0 words=[] bindings=[('testfifocontents', {[ComSub (Com {[LIT_CHARS cat]} {[VarSub testfifo]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "hi sleepy"]]} < (FilenameRedirectNode filename={[VarSub sleepyfifo]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Interrupting pid "][VarSub pid]]}) (Com {[LIT_CHARS kill]} {[LIT_CHARS -INT]} {[VarSub pid]}) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 3]}) (= scope= flags=0 words=[] bindings=[('status', {[LIT_CHARS 0]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS wait]} {[VarSub pid]}) (= scope= flags=0 words=[] bindings=[('status', {[VarSub ?]})]) ) (Com {[LIT_CHARS assert_equals]} {[LIT_CHARS 8]} {[VarSub status]}) (Com {[LIT_CHARS assert_equals]} {[DQ [LIT_CHARS "hi test"]]} {[DQ [VarSub testfifocontents]]}) (Com {[LIT_CHARS set]} {[LIT_OTHER "+"] [LIT_CHARS m]}) ) ) (FunctionDef tear_down [] (List (Com {[LIT_CHARS bazel]} {[LIT_CHARS shutdown]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS x]}) ) ) (FunctionDef assert_sigint_stops_build [] (List (Com {[LIT_CHARS runbazel]} {[VarSub 1]}) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS expect_log]} {[SQ ]}) (Com {[LIT_CHARS expect_log]} {[SQ ]}) ) ) (FunctionDef test_sigint_server_mode [] (Com {[LIT_CHARS assert_sigint_stops_build]} {[DQ [LIT_CHARS --nobatch]]}) ) (FunctionDef test_sigint_batch_mode [] (Com {[LIT_CHARS assert_sigint_stops_build]} {[DQ [LIT_CHARS --batch]]}) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "Tests of SIGINT on "][VarSub PRODUCT_NAME]]}) )