(command.CommandList children: [ (C {<Id.KW_Set set>} {<-o>} {<nounset>}) (C {<Id.KW_Set set>} {<-o>} {<pipefail>}) (C {<Id.KW_Set set>} {<-o>} {<errexit>}) (C {<source>} {<'test/common.sh'>}) (command.ShFunction name: time-tool body: (BraceGroup children: [ (C { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_Number '$0')}) ) <'/time.py'> } {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: test-tsv body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'out='> <'_tmp/time.tsv'>}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$out')}) (command.ForEach iter_name: i iter_words: [{<1>} {<2>} {<3>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<time-tool>} {<--tsv>} {<-o>} {($ Id.VSub_DollarName '$out')} {<-->} {<sleep>} {<0.0> (${ Id.VSub_Name i)} ) ] ) ) (C {<cat>} {($ Id.VSub_DollarName '$out')}) ] ) ) (command.ShFunction name: test-cannot-serialize body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'out='> <'_tmp/time2.tsv'>}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$out')}) (C {<Id.KW_Set set>} {<Id.Lit_Other '+'> <o>} {<errexit>}) (command.Sentence child: (C {<time-tool>} {<--tsv>} {<-o>} {($ Id.VSub_DollarName '$out')} {<--field>} { (single_quoted left: <Id.Left_SingleQuoteC '$\''> tokens: [<Id.Char_OneChar '\\n'>] ) } {<-->} {<sleep>} {<0.001>} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [178] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$status')} {<Id.Lit_Equals '='>} {<1>}) (C {<fail>} {(DQ <'Unexpected status '> ($ Id.VSub_DollarName '$status'))}) ] ) (command.Sentence child: (C {<time-tool>} {<--tsv>} {<-o>} {($ Id.VSub_DollarName '$out')} {<--field>} { (single_quoted left: <Id.Left_SingleQuoteC '$\''> tokens: [<Id.Char_OneChar '\\t'>] ) } {<-->} {<sleep>} {<0.001>} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [226] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$status')} {<Id.Lit_Equals '='>} {<1>}) (C {<fail>} {(DQ <'Unexpected status '> ($ Id.VSub_DollarName '$status'))}) ] ) (command.Sentence child: (C {<time-tool>} {<--tsv>} {<-o>} {($ Id.VSub_DollarName '$out')} {<--field>} {(SQ <'"'>)} {<-->} {<sleep>} {<0.001>} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [274] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$status')} {<Id.Lit_Equals '='>} {<1>}) (C {<fail>} {(DQ <'Unexpected status '> ($ Id.VSub_DollarName '$status'))}) ] ) (command.Sentence child: (C {<time-tool>} {<--tsv>} {<-o>} {($ Id.VSub_DollarName '$out')} {<--field>} {(SQ <'\\'>)} {<-->} {<sleep>} {<0.001>} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [322] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$status')} {<Id.Lit_Equals '='>} {<0>}) (C {<fail>} {(DQ <'Unexpected status '> ($ Id.VSub_DollarName '$status'))}) ] ) (command.Sentence child: (C {<time-tool>} {<--tsv>} {<-o>} {($ Id.VSub_DollarName '$out')} {<--field>} {(SQ <' '>)} {<-->} {<sleep>} {<0.001>} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [370] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$status')} {<Id.Lit_Equals '='>} {<0>}) (C {<fail>} {(DQ <'Unexpected status '> ($ Id.VSub_DollarName '$status'))}) ] ) (C {<Id.KW_Set set>} {<-o>} {<errexit>}) (C {<cat>} {($ Id.VSub_DollarName '$out')}) ] ) ) (command.ShFunction name: all-passing body: (BraceGroup children: [ (C {<test-tsv>}) (C {<test-cannot-serialize>}) (C {<echo>}) (C {<echo>} {(DQ <'All tests in '> ($ Id.VSub_Number '$0') <' passed.'>)}) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )