(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WORKSPACE_BASE) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))} spids: [13] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MY_DIR) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ ($ Id.VSub_Number '$0'))}) ) ) } spids: [20] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_SCRIPT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$MY_DIR') <'/../tests.sh'>} spids: [31] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUILD_DIR) op: assign_op.Equal rhs: {<'/tmp/protobuf'>} spids: [35] ) ] ) (C {<Id.KW_Set set>} {<-e>}) (C {<Id.KW_Set set>} {<-x>}) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$BUILD_DIR')}) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$BUILD_DIR')}) (C {<cd>} {($ Id.VSub_DollarName '$BUILD_DIR')}) (C {<git>} {<clone>} {<'/var/local/jenkins/protobuf'>}) (C {<cd>} {<protobuf>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OUTPUT_DIR) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<mktemp>} {<-d>}))} spids: [90] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LOG_OUTPUT_DIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OUTPUT_DIR') <'/logs'>} spids: [99] ) ] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$LOG_OUTPUT_DIR') <'/1/cpp'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPP_STDOUT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$LOG_OUTPUT_DIR') <'/1/cpp/stdout'>} spids: [142] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPP_STDERR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$LOG_OUTPUT_DIR') <'/1/cpp/stderr'>} spids: [146] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TIME_CMD) op: assign_op.Equal rhs: { (DQ <'/usr/bin/time -f %e -o '> ($ Id.VSub_DollarName '$LOG_OUTPUT_DIR') <'/1/cpp/build_time'> ) } spids: [160] ) ] ) (command.Simple words: [{($ Id.VSub_DollarName '$TIME_CMD')} {($ Id.VSub_DollarName '$TEST_SCRIPT')} {<cpp>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { (command_sub left_token: <Id.Left_ProcSubOut '>('> child: (C {<tee>} {($ Id.VSub_DollarName '$CPP_STDOUT')}) ) } ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: { (command_sub left_token: <Id.Left_ProcSubOut '>('> child: (command.Simple words: [{<tee>} {($ Id.VSub_DollarName '$CPP_STDERR')}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ) } ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<parallel>} {<--results>} {($ Id.VSub_DollarName '$LOG_OUTPUT_DIR')} {<--joblog>} {($ Id.VSub_DollarName '$OUTPUT_DIR') <'/joblog'>} {($ Id.VSub_DollarName '$TEST_SCRIPT')} {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$TEST_SET')} ) (C {<true>}) ] ) (C {<cat>} {($ Id.VSub_DollarName '$OUTPUT_DIR') <'/joblog'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COPY_FROM_DOCKER) op: assign_op.Equal rhs: {<'/var/local/git/protobuf/testoutput'>} spids: [241] ) ] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$COPY_FROM_DOCKER')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TESTOUTPUT_XML_FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$COPY_FROM_DOCKER') <'/testresults.xml'>} spids: [250] ) ] ) (command.Simple words: [ {<python>} {($ Id.VSub_DollarName '$MY_DIR') <'/make_test_output.py'>} {($ Id.VSub_DollarName '$OUTPUT_DIR')} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$TESTOUTPUT_XML_FILE')} ) ] do_fork: T ) (C {<ls>} {<-l>} {($ Id.VSub_DollarName '$TESTOUTPUT_XML_FILE')}) ] )