(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OUTPUT_ROOT='> name:OUTPUT_ROOT) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [73] ) ] redirects: [] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ROOT='> name:ROOT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_DollarName BASH_SOURCE)}) right: <Id.Eof_RParen _> ) <'/..'> } ) terminator: <Id.Op_Semi _> ) (C {<pwd>}) ] ) right: <Id.Eof_RParen _> ) } spids: [78] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_LOGDIR='> name:TEST_LOGDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OUTPUT_ROOT) <'/build/'> ($ Id.VSub_Number 1) <-logs>} spids: [94] ) ] redirects: [] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName TEST_LOGDIR)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RUN_TYPE='> name:RUN_TYPE) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [107] ) ] redirects: [] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_DEBUGDIR='> name:TEST_DEBUGDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OUTPUT_ROOT) <'/build/'> ($ Id.VSub_DollarName RUN_TYPE) <-debug>} spids: [112] ) ] redirects: [] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName TEST_DEBUGDIR)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_DIRNAME='> name:TEST_DIRNAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_Number 1)}) right: <Id.Eof_RParen _> ) } ) terminator: <Id.Op_Semi _> ) (C {<pwd>}) ] ) right: <Id.Eof_RParen _> ) } spids: [125] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_FILENAME='> name:TEST_FILENAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_Number 1)}) right: <Id.Eof_RParen _> ) } spids: [139] ) ] redirects: [] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_EXECUTABLE='> name:TEST_EXECUTABLE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TEST_DIRNAME) <'/'> ($ Id.VSub_DollarName TEST_FILENAME))} spids: [148] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_NAME='> name:TEST_NAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName TEST_FILENAME)}) (C {<perl>} {<-pe>} {(SQ <'s/\\..+?$//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [155] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_WORKDIR='> name:TEST_WORKDIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OUTPUT_ROOT) <'/build/test-work/'> ($ Id.VSub_DollarName TEST_NAME)} spids: [179] ) ] redirects: [] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName TEST_WORKDIR)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<pushd>} {($ Id.VSub_DollarName TEST_WORKDIR)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<rm>} {<-f>} {<Id.Lit_Star '*'>}) (C {<set>} {<-o>} {<pipefail>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOGFILE='> name:LOGFILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TEST_LOGDIR) <'/'> ($ Id.VSub_DollarName TEST_NAME) <.txt>} spids: [217] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'XMLFILE='> name:XMLFILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName TEST_LOGDIR) <'/'> ($ Id.VSub_DollarName TEST_NAME) <.xml>} spids: [223] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TEST_EXECUTION_ATTEMPTS='> name: TEST_EXECUTION_ATTEMPTS ) op: assign_op.Equal rhs: {<1>} spids: [230] ) ] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName LOGFILE)} {($ Id.VSub_DollarName LOGFILE) <.gz>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pipe_cmd='> name:pipe_cmd) op: assign_op.Equal rhs: {<cat>} spids: [250] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ARROW_TEST_ULIMIT_CORE='> name: ARROW_TEST_ULIMIT_CORE ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ARROW_TEST_ULIMIT_CORE> var_name: ARROW_TEST_ULIMIT_CORE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [257] ) ] redirects: [] ) (C {<ulimit>} {<-c>} {($ Id.VSub_DollarName ARROW_TEST_ULIMIT_CORE)}) (command.ShFunction name: setup_sanitizers body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TSAN_OPTIONS='> name:TSAN_OPTIONS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TSAN_OPTIONS) <' detect_deadlocks=0'>)} spids: [314] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TSAN_OPTIONS='> name:TSAN_OPTIONS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName TSAN_OPTIONS) <' suppressions='> ($ Id.VSub_DollarName ROOT) <'/build-support/tsan-suppressions.txt'> ) } spids: [321] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TSAN_OPTIONS='> name:TSAN_OPTIONS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TSAN_OPTIONS) <' history_size=7'>)} spids: [330] ) ] redirects: [] ) (C {<export>} {<TSAN_OPTIONS>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LSAN_OPTIONS='> name:LSAN_OPTIONS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName LSAN_OPTIONS) <' suppressions='> ($ Id.VSub_DollarName ROOT) <'/build-support/lsan-suppressions.txt'> ) } spids: [364] ) ] redirects: [] ) (C {<export>} {<LSAN_OPTIONS>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName ASAN_SYMBOLIZER_PATH))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<export>} {<Id.Lit_VarLike 'ASAN_SYMBOLIZER_PATH='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {($ Id.VSub_DollarName NATIVE_TOOLCHAIN) <'/llvm-3.7.0/bin'>} {<-name>} {<llvm-symbolizer>} ) right: <Id.Eof_RParen _> ) } ) ] spids: [387 400] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: run_test body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<rm>} {<-f>} {($ Id.VSub_DollarName XMLFILE)}) (command.Pipeline children: [ (command.Simple words: [{($ Id.VSub_DollarName TEST_EXECUTABLE)} {(DQ ($ Id.VSub_At '@'))}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] more_env: [] do_fork: T ) (C {($ Id.VSub_DollarName ROOT) <'/build-support/asan_symbolize.py'>}) (C {<c> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <filt>}) (C {($ Id.VSub_DollarName ROOT) <'/build-support/stacktrace_addr2line.pl'>} {($ Id.VSub_DollarName TEST_EXECUTABLE)} ) (command.Simple words: [{($ Id.VSub_DollarName pipe_cmd)}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] more_env: [] do_fork: T ) (C {<tee>} {($ Id.VSub_DollarName LOGFILE)}) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STATUS='> name:STATUS) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [503] ) ] redirects: [] ) (C {<export>} {<Id.Lit_VarLike 'GREP='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<egrep>}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<zgrep>} {<--silent>} {(DQ <'ThreadSanitizer|Leak check.*detected leaks'>)} {($ Id.VSub_DollarName LOGFILE)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<ThreadSanitizer>} {<or>} {<leak>} {<check>} {<failures>} {<Id.KW_In in>} {($ Id.VSub_DollarName LOGFILE)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STATUS='> name:STATUS) op: assign_op.Equal rhs: {<1>} spids: [584] ) ] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName XMLFILE)}) ] spids: [550 564] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: post_process_tests body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<zgrep>} {<--silent>} {(DQ <'ERROR: LeakSanitizer: detected memory leaks'>)} {($ Id.VSub_DollarName LOGFILE)} ) terminator: <Id.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'> <' }'> ) } {($ Id.VSub_DollarName XMLFILE)} ) ] spids: [621 635] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: run_other body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple words: [{($ Id.VSub_DollarName TEST_EXECUTABLE)} {(DQ ($ Id.VSub_At '@'))}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] more_env: [] do_fork: T ) (command.Simple words: [{($ Id.VSub_DollarName pipe_cmd)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName LOGFILE)} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STATUS='> name:STATUS) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [711] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName RUN_TYPE)} {<Id.Lit_Equals '='>} {(DQ <test>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<setup_sanitizers>})] spids: [717 732] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [ATTEMPT_NUMBER] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<seq>} {<1>} {($ Id.VSub_DollarName TEST_EXECUTION_ATTEMPTS)}) right: <Id.Eof_RParen _> ) } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName ATTEMPT_NUMBER)} {<-lt>} {($ Id.VSub_DollarName TEST_EXECUTION_ATTEMPTS)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TEST_TMPDIR_BEFORE='> name: TEST_TMPDIR_BEFORE ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<find>} {($ Id.VSub_DollarName TEST_TMPDIR)} {<-maxdepth>} {<1>} {<-type>} {<d>} ) (C {<sort>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [802] ) ] redirects: [] ) ] spids: [762 775] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName ATTEMPT_NUMBER)} {<-lt>} {($ Id.VSub_DollarName TEST_EXECUTION_ATTEMPTS)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TEST_TMPDIR_AFTER='> name: TEST_TMPDIR_AFTER ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<find>} {($ Id.VSub_DollarName TEST_TMPDIR)} {<-maxdepth>} {<1>} {<-type>} {<d>} ) (C {<sort>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [846] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIFF='> name:DIFF) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<comm>} {<-13>} { (command_sub left_token: <Id.Left_ProcSubIn '<('> child: (C {<echo>} {(DQ ($ Id.VSub_DollarName TEST_TMPDIR_BEFORE))}) right: <Id.Eof_RParen _> ) } { (command_sub left_token: <Id.Left_ProcSubIn '<('> child: (C {<echo>} {(DQ ($ Id.VSub_DollarName TEST_TMPDIR_AFTER))}) right: <Id.Eof_RParen _> ) } ) right: <Id.Eof_RParen _> ) } spids: [866] ) ] redirects: [] ) (command.ForEach iter_names: [DIR] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DIFF)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName DIR)} right: {<Id.Lit_Other '^'> ($ Id.VSub_DollarName TEST_TMPDIR) <'/'> ($ Id.VSub_DollarName TEST_NAME) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<Deleting>} {<leftover>} {<flaky>} {<test>} {<directory>} {(DQ ($ Id.VSub_DollarName DIR))} ) (C {<rm>} {<-Rf>} {(DQ ($ Id.VSub_DollarName DIR))}) ] spids: [928 944] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [826 839] ) ] else_action: [] redirects: [] ) (C {<echo>} { (DQ <'Running '> ($ Id.VSub_DollarName TEST_NAME) <', redirecting output into '> ($ Id.VSub_DollarName LOGFILE) ) } { (DQ <'(attempt '> (${ Id.VSub_Name ATTEMPT_NUMBER) <'/'> ($ Id.VSub_DollarName TEST_EXECUTION_ATTEMPTS) <')'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName RUN_TYPE)} {<Id.Lit_Equals '='>} {(DQ <test>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<run_test>} {($ Id.VSub_Star '*')})] spids: [1004 1019] ) ] else_action: [(C {<run_other>} {($ Id.VSub_Star '*')})] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName STATUS))} {<-eq>} {(DQ <0>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [1038 1055] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ATTEMPT_NUMBER))} {<-lt>} {(DQ ($ Id.VSub_DollarName TEST_EXECUTION_ATTEMPTS))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<Test>} {<failed>} {<attempt>} {<number>} {($ Id.VSub_DollarName ATTEMPT_NUMBER)} ) (C {<echo>} {<Will>} {<retry...>}) ] spids: [1061 1078] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName RUN_TYPE)} {<Id.Lit_Equals '='>} {(DQ <test>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<post_process_tests>})] spids: [1106 1121] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COREFILES='> name:COREFILES) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<ls>}) (C {<grep>} {<Id.Lit_Other '^'> <core>})] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [1132] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName COREFILES))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<Found>} {<core>} {<dump.>} {<Saving>} {<executable>} {<and>} {<core>} {<files.>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<gzip>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName TEST_EXECUTABLE)} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { (DQ ($ Id.VSub_DollarName TEST_DEBUGDIR) <'/'> ($ Id.VSub_DollarName TEST_NAME) <.gz> ) } ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] ) (command.ForEach iter_names: [COREFILE] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName COREFILES)}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<gzip>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName COREFILE)} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { (DQ ($ Id.VSub_DollarName TEST_DEBUGDIR) <'/'> ($ Id.VSub_DollarName TEST_NAME) <.> ($ Id.VSub_DollarName COREFILE) <.gz> ) } ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] ) ] ) redirects: [] ) (command.ForEach iter_names: [LIB] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ldd>} {($ Id.VSub_DollarName TEST_EXECUTABLE)}) (C {<grep>} {($ Id.VSub_DollarName ROOT)}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_NAME='> name:LIB_NAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName LIB)}) right: <Id.Eof_RParen _> ) } spids: [1274] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<gzip>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName LIB)} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { (DQ ($ Id.VSub_DollarName TEST_DEBUGDIR) <'/'> ($ Id.VSub_DollarName LIB_NAME) <.gz> ) } ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] ) ] ) redirects: [] ) ] spids: [1144 1157] ) ] else_action: [] redirects: [] ) (C {<popd>}) (C {<rm>} {<-Rf>} {($ Id.VSub_DollarName TEST_WORKDIR)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_DollarName STATUS)}) ] )