(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:black) op: assign_op.Equal rhs: {(SQ <'\\E[30m'>)} spids: [4] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:red) op: assign_op.Equal rhs: {(SQ <'\\E[31m'>)} spids: [9] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:green) op: assign_op.Equal rhs: {(SQ <'\\E[32m'>)} spids: [14] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:yellow) op: assign_op.Equal rhs: {(SQ <'\\E[33m'>)} spids: [19] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:blue) op: assign_op.Equal rhs: {(SQ <'\\E[34m'>)} spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:magenta) op: assign_op.Equal rhs: {(SQ <'\\E[35m'>)} spids: [29] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cyan) op: assign_op.Equal rhs: {(SQ <'\\E[36m'>)} spids: [34] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:white) op: assign_op.Equal rhs: {(SQ <'\\E[37m'>)} spids: [39] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_Number '$2')} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:data) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [59] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_Number '$1') <.summ>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<rm>} {($ Id.VSub_Number '$1') <.summ>}) terminator: <Id.Op_Semi _> ) ] spids: [63 75] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_Number '$1') <.snap>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<rm>} {($ Id.VSub_Number '$1') <.snap>}) terminator: <Id.Op_Semi _> ) ] spids: [86 98] ) ] ) ] spids: [45 56] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:data) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [111] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<'./'> ($ Id.VSub_Number '$1')}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$data')} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<.runtest.log>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$red')} {<Test>} {($ Id.VSub_Number '$1')} {<failed> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$black')} ) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$blue')}) (C {<cat>} {<.runtest.log>}) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$black')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [117 138] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_Number '$1') <.summ>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(DQ <'FATAL ERROR'>)} {($ Id.VSub_Number '$1') <.summ>} ) (C {<wc>} {<-l>}) ] negated: F ) ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$red')} { (DQ <'Test '> ($ Id.VSub_Number '$1') <' failed (FATAL ERROR, read the file '> ($ Id.VSub_Number '$1') <'.summ for details)'> ) } {($ Id.VSub_DollarName '$black')} ) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$blue')}) (C {<cat>} {<.runtest.log>}) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$black')}) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] spids: [198 228] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(DQ <'FAILED THE TESTS OF ERROR-EXITS'>)} {($ Id.VSub_Number '$1') <.summ>} ) (C {<wc>} {<-l>}) ] negated: F ) ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$red')} { (DQ <'Test '> ($ Id.VSub_Number '$1') <' failed (FAILED THE TESTS OF ERROR-EXITS, read the file '> ($ Id.VSub_Number '$1') <'.summ for details)'> ) } {($ Id.VSub_DollarName '$black')} ) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$blue')}) (C {<cat>} {<.runtest.log>}) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$black')}) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] spids: [277 307] ) ] ) ] spids: [183 195] ) ] ) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$green')} {<Test>} {($ Id.VSub_Number '$1')} {<passed> ($ Id.VSub_DollarName '$black')} ) ] ) ] )