(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OUTPUT_ROOT) op: Equal rhs: {($ VSub_Number '$1')} spids: [73] ) ] spids: [73] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (C {(cd)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {($ VSub_Name '$BASH_SOURCE')})] ) left_token: <Left_CommandSub '$('> spids: [82 86] ) (/..) } ) terminator: <Op_Semi ';'> ) (C {(pwd)}) ] ) left_token: <Left_CommandSub '$('> spids: [79 91] ) } spids: [78] ) ] spids: [78] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_LOGDIR) op: Equal rhs: {($ VSub_Name '$OUTPUT_ROOT') (/build/) ($ VSub_Number '$1') (-logs)} spids: [94] ) ] spids: [94] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$TEST_LOGDIR')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUN_TYPE) op: Equal rhs: {($ VSub_Number '$1')} spids: [107] ) ] spids: [107] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_DEBUGDIR) op: Equal rhs: {($ VSub_Name '$OUTPUT_ROOT') (/build/) ($ VSub_Name '$RUN_TYPE') (-debug)} spids: [112] ) ] spids: [112] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$TEST_DEBUGDIR')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_DIRNAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (C {(cd)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {($ VSub_Number '$1')})] ) left_token: <Left_CommandSub '$('> spids: [129 133] ) } ) terminator: <Op_Semi ';'> ) (C {(pwd)}) ] ) left_token: <Left_CommandSub '$('> spids: [126 137] ) } spids: [125] ) ] spids: [125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_FILENAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$1')})]) left_token: <Left_CommandSub '$('> spids: [140 144] ) } spids: [139] ) ] spids: [139] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_EXECUTABLE) op: Equal rhs: {(DQ ($ VSub_Name '$TEST_DIRNAME') (/) ($ VSub_Name '$TEST_FILENAME'))} spids: [148] ) ] spids: [148] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_NAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$TEST_FILENAME')}) (C {(perl)} {(-pe)} {(SQ <'s/\\..+?$//'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [156 170] ) } spids: [155] ) ] spids: [155] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_WORKDIR) op: Equal rhs: {($ VSub_Name '$OUTPUT_ROOT') (/build/test-work/) ($ VSub_Name '$TEST_NAME')} spids: [179] ) ] spids: [179] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$TEST_WORKDIR')}) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(pushd)} {($ VSub_Name '$TEST_WORKDIR')}] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (C {(rm)} {(-f)} {(Lit_Other '*')}) (C {(set)} {(-o)} {(pipefail)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LOGFILE) op: Equal rhs: {($ VSub_Name '$TEST_LOGDIR') (/) ($ VSub_Name '$TEST_NAME') (.txt)} spids: [217] ) ] spids: [217] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:XMLFILE) op: Equal rhs: {($ VSub_Name '$TEST_LOGDIR') (/) ($ VSub_Name '$TEST_NAME') (.xml)} spids: [223] ) ] spids: [223] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TEST_EXECUTION_ATTEMPTS) op:Equal rhs:{(1)} spids:[230])] spids: [230] ) (C {(rm)} {(-f)} {($ VSub_Name '$LOGFILE')} {($ VSub_Name '$LOGFILE') (.gz)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pipe_cmd) op:Equal rhs:{(cat)} spids:[250])] spids: [250] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARROW_TEST_ULIMIT_CORE) op: Equal rhs: { (BracedVarSub token: <VSub_Name ARROW_TEST_ULIMIT_CORE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)}) spids: [258 262] ) } spids: [257] ) ] spids: [257] ) (C {(ulimit)} {(-c)} {($ VSub_Name '$ARROW_TEST_ULIMIT_CORE')}) (FuncDef name: setup_sanitizers body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TSAN_OPTIONS) op: Equal rhs: {(DQ ($ VSub_Name '$TSAN_OPTIONS') (' detect_deadlocks=0'))} spids: [314] ) ] spids: [314] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TSAN_OPTIONS) op: Equal rhs: { (DQ ($ VSub_Name '$TSAN_OPTIONS') (' suppressions=') ($ VSub_Name '$ROOT') (/build-support/tsan-suppressions.txt) ) } spids: [321] ) ] spids: [321] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TSAN_OPTIONS) op: Equal rhs: {(DQ ($ VSub_Name '$TSAN_OPTIONS') (' history_size=7'))} spids: [330] ) ] spids: [330] ) (C {(export)} {(TSAN_OPTIONS)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LSAN_OPTIONS) op: Equal rhs: { (DQ ($ VSub_Name '$LSAN_OPTIONS') (' suppressions=') ($ VSub_Name '$ROOT') (/build-support/lsan-suppressions.txt) ) } spids: [364] ) ] spids: [364] ) (C {(export)} {(LSAN_OPTIONS)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$ASAN_SYMBOLIZER_PATH'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(export)} {(Lit_VarLike 'ASAN_SYMBOLIZER_PATH=') (CommandSubPart command_list: (CommandList children: [ (C {(find)} {($ VSub_Name '$NATIVE_TOOLCHAIN') (/llvm-3.7.0/bin)} {(-name)} {(llvm-symbolizer)} ) ] ) left_token: <Left_CommandSub '$('> spids: [406 415] ) } ) ] spids: [16777215 400] ) ] spids: [16777215 418] ) ] spids: [278] ) spids: [272 277] ) (FuncDef name: run_test body: (BraceGroup children: [ (C {(rm)} {(-f)} {($ VSub_Name '$XMLFILE')}) (Pipeline children: [ (SimpleCommand words: [{($ VSub_Name '$TEST_EXECUTABLE')} {(DQ ($ VSub_At '$@'))}] redirects: [(Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})] ) (C {($ VSub_Name '$ROOT') (/build-support/asan_symbolize.py)}) (C {(c) (Lit_Other '+') (Lit_Other '+') (filt)}) (C {($ VSub_Name '$ROOT') (/build-support/stacktrace_addr2line.pl)} {($ VSub_Name '$TEST_EXECUTABLE')} ) (SimpleCommand words: [{($ VSub_Name '$pipe_cmd')}] redirects: [(Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})] ) (C {(tee)} {($ VSub_Name '$LOGFILE')}) ] negated: F ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATUS) op: Equal rhs: {($ VSub_QMark '$?')} spids: [503] ) ] spids: [503] ) (C {(export)} {(Lit_VarLike 'GREP=') (CommandSubPart command_list: (CommandList children:[(C {(which)} {(egrep)})]) left_token: <Left_CommandSub '$('> spids: [543 547] ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(zgrep)} {(--silent)} {(DQ ('ThreadSanitizer|Leak check.*detected leaks'))} {($ VSub_Name '$LOGFILE')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(ThreadSanitizer)} {(or)} {(leak)} {(check)} {(failures)} {(KW_In in)} {($ VSub_Name '$LOGFILE')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:STATUS) op:Equal rhs:{(1)} spids:[584])] spids: [584] ) (C {(rm)} {(-f)} {($ VSub_Name '$XMLFILE')}) ] spids: [16777215 564] ) ] spids: [16777215 595] ) ] spids: [429] ) spids: [423 428] ) (FuncDef name: post_process_tests body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(zgrep)} {(--silent)} {(DQ ('ERROR: LeakSanitizer: detected memory leaks'))} {($ VSub_Name '$LOGFILE')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(Test)} {(had)} {(memory)} {(leaks.)} {(Editing)} {(XML)}) (C {(perl)} {(-p)} {(-i)} {(-e)} { (SQ <'\n'> <' if (m#</testsuite>#) {\n'> < ' print "<testcase name=\\"LeakSanitizer\\" status=\\"run\\" classname=\\"LSAN\\">\\n";\n' > <' print " <failure message=\\"LeakSanitizer failed\\" type=\\"\\">\\n";\n'> <' print " See txt log file for details\\n";\n'> <' print " </failure>\\n";\n'> <' print "</testcase>\\n";\n'> <' }'> ) } {($ VSub_Name '$XMLFILE')} ) ] spids: [16777215 635] ) ] spids: [16777215 675] ) ] spids: [606] ) spids: [600 605] ) (FuncDef name: run_other body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{($ VSub_Name '$TEST_EXECUTABLE')} {(DQ ($ VSub_At '$@'))}] redirects: [(Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})] ) (SimpleCommand words: [{($ VSub_Name '$pipe_cmd')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_Name '$LOGFILE')} ) ] ) ] negated: F ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATUS) op: Equal rhs: {($ VSub_QMark '$?')} spids: [711] ) ] spids: [711] ) ] spids: [686] ) spids: [680 685] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$RUN_TYPE')} {(Lit_Other '=')} {(DQ (test))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(setup_sanitizers)})] spids: [16777215 732] ) ] spids: [16777215 737] ) (ForEach iter_name: ATTEMPT_NUMBER iter_words: [ { (CommandSubPart command_list: (CommandList children: [(C {(seq)} {(1)} {($ VSub_Name '$TEST_EXECUTION_ATTEMPTS')})] ) left_token: <Left_CommandSub '$('> spids: [749 755] ) } ] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$ATTEMPT_NUMBER')} {(-lt)} {($ VSub_Name '$TEST_EXECUTION_ATTEMPTS')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_TMPDIR_BEFORE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {($ VSub_Name '$TEST_TMPDIR')} {(-maxdepth)} {(1)} {(-type)} {(d)} ) (C {(sort)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [803 819] ) } spids: [802] ) ] spids: [802] ) ] spids: [16777215 775] ) ] spids: [16777215 822] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$ATTEMPT_NUMBER')} {(-lt)} {($ VSub_Name '$TEST_EXECUTION_ATTEMPTS')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_TMPDIR_AFTER) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {($ VSub_Name '$TEST_TMPDIR')} {(-maxdepth)} {(1)} {(-type)} {(d)} ) (C {(sort)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [847 863] ) } spids: [846] ) ] spids: [846] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIFF) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(comm)} {(-13)} { (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(DQ ($ VSub_Name '$TEST_TMPDIR_BEFORE'))}) ] ) left_token: <Left_ProcSubIn '<('> spids: [872 878] ) } { (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(DQ ($ VSub_Name '$TEST_TMPDIR_AFTER'))}) ] ) left_token: <Left_ProcSubIn '<('> spids: [882 888] ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [867 889] ) } spids: [866] ) ] spids: [866] ) (ForEach iter_name: DIR iter_words: [{($ VSub_Name '$DIFF')}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$DIR')} right: {(Lit_Other '^') ($ VSub_Name '$TEST_TMPDIR') (/) ($ VSub_Name '$TEST_NAME') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(Deleting)} {(leftover)} {(flaky)} {(test)} {(directory)} {(DQ ($ VSub_Name '$DIR'))} ) (C {(rm)} {(-Rf)} {(DQ ($ VSub_Name '$DIR'))}) ] spids: [16777215 944] ) ] spids: [16777215 973] ) ] spids: [901 976] ) spids: [897 899] ) ] spids: [16777215 839] ) ] spids: [16777215 979] ) (C {(echo)} { (DQ ('Running ') ($ VSub_Name '$TEST_NAME') (', redirecting output into ') ($ VSub_Name '$LOGFILE') ) } {(DQ ('(attempt ') (${ VSub_Name ATTEMPT_NUMBER) (/) ($ VSub_Name '$TEST_EXECUTION_ATTEMPTS') (')'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$RUN_TYPE')} {(Lit_Other '=')} {(DQ (test))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(run_test)} {($ VSub_Star '$*')})] spids: [16777215 1019] ) ] else_action: [(C {(run_other)} {($ VSub_Star '$*')})] spids: [1027 1035] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$STATUS'))} {(-eq)} {(DQ (0))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 1055] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ATTEMPT_NUMBER'))} {(-lt)} {(DQ ($ VSub_Name '$TEST_EXECUTION_ATTEMPTS'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(Test)} {(failed)} {(attempt)} {(number)} {($ VSub_Name '$ATTEMPT_NUMBER')} ) (C {(echo)} {(Will)} {(retry...)}) ] spids: [1061 1078] ) ] spids: [16777215 1101] ) ] spids: [759 1103] ) spids: [748 757] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$RUN_TYPE')} {(Lit_Other '=')} {(DQ (test))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(post_process_tests)})] spids: [16777215 1121] ) ] spids: [16777215 1126] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COREFILES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(ls)}) (C {(grep)} {(Lit_Other '^') (core)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1133 1142] ) } spids: [1132] ) ] spids: [1132] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$COREFILES'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(Found)} {(core)} {(dump.)} {(Saving)} {(executable)} {(and)} {(core)} {(files.)}) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(gzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Name '$TEST_EXECUTABLE')} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$TEST_DEBUGDIR') (/) ($ VSub_Name '$TEST_NAME') (.gz))} ) ] ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) (ForEach iter_name: COREFILE iter_words: [{($ VSub_Name '$COREFILES')}] do_arg_iter: F body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(gzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Name '$COREFILE')} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: { (DQ ($ VSub_Name '$TEST_DEBUGDIR') (/) ($ VSub_Name '$TEST_NAME') (.) ($ VSub_Name '$COREFILE') (.gz) ) } ) ] ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) ] spids: [1210 1237] ) spids: [1206 1208] ) (ForEach iter_name: LIB iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ldd)} {($ VSub_Name '$TEST_EXECUTABLE')}) (C {(grep)} {($ VSub_Name '$ROOT')}) (C {(awk)} {(SQ <'{print $3}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1250 1268] ) } ] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIB_NAME) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name '$LIB')})] ) left_token: <Left_CommandSub '$('> spids: [1275 1279] ) } spids: [1274] ) ] spids: [1274] ) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(gzip)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {($ VSub_Name '$LIB')} ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: { (DQ ($ VSub_Name '$TEST_DEBUGDIR') (/) ($ VSub_Name '$LIB_NAME') (.gz)) } ) ] ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] ) ] spids: [1271 1304] ) spids: [1249 1269] ) ] spids: [16777215 1157] ) ] spids: [16777215 1306] ) (C {(popd)}) (C {(rm)} {(-Rf)} {($ VSub_Name '$TEST_WORKDIR')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$STATUS')}) ] )