(CommandList children: [ (C {(cd)} { (BracedVarSub token: <VSub_Number 0> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [6 11] ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(0)} spids:[17])] spids: [17] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tests) op:Equal rhs:{(0)} spids:[20])] spids: [20] ) (ForEach iter_name: test iter_words: [{(test/) (Lit_Other "*") (.sh)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tests) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:tests) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [45 50] ) } spids: [44] ) ] spids: [44] ) (C {(echo)} {(TEST) (Lit_Other ":")} {($ VSub_Name "$test")}) (C {(./) ($ VSub_Name "$test")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {($ VSub_QMark "$?")} spids: [65] ) ] spids: [65] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$ret")} {(-eq)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(OK) (Lit_Other ":")} {(----)} {($ VSub_Name "$test")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passed) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:passed) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [97 102] ) } spids: [96] ) ] spids: [96] ) ] spids: [-1 83] ) ] else_action: [ (C {(echo)} {(FAIL) (Lit_Other ":")} {($ VSub_Name "$test")} {($ VSub_Name "$fail")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fail) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:fail) right: (ArithVarRef name:ret) ) spids: [119 124] ) } spids: [118] ) ] spids: [118] ) ] spids: [105 127] ) ] spids: [41 129] ) spids: [34 39] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$fail")} {(-eq)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(-n)} {(SQ <"SUCCESS ">)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exitcode) op:Equal rhs:{(0)} spids:[157])] spids: [157] ) ] spids: [-1 145] ) ] else_action: [ (C {(echo)} {(-n)} {(SQ <"FAILURE ">)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exitcode) op:Equal rhs:{(1)} spids:[172])] spids: [172] ) ] spids: [160 175] ) (C {(echo)} {($ VSub_Name "$passed")} {(/)} {($ VSub_Name "$tests")}) (C {(exit)} {($ VSub_Name "$exitcode")}) ] )