(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RM) op:Equal rhs:{(DQ ('rm -f'))} spids:[19])] spids: [19] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MP_PY) op:Equal rhs:{(micropython)} spids:[24])] spids: [24] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:numtests) op:Equal rhs:{(0)} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:numtestcases) op:Equal rhs:{(0)} spids:[31])] spids: [31] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:numpassed) op:Equal rhs:{(0)} spids:[34])] spids: [34] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:numskipped) op:Equal rhs:{(0)} spids:[37])] spids: [37] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:numfailed) op:Equal rhs:{(0)} spids:[40])] spids: [40] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:nameskipped) op:Equal rhs:{(SQ )} spids:[43])] spids: [43] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:namefailed) op:Equal rhs:{(SQ )} spids:[45])] spids: [45] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tests) op: Equal rhs: { (DQ ( 'basics/*.py micropython/*.py float/*.py import/*.py io/*.py misc/*.py unicode/*.py extmod/*.py unix/*.py' ) ) } spids: [63] ) ] spids: [63] ) ] spids: [-1 60] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tests) op: Equal rhs: {(DQ ($ VSub_At '$@'))} spids: [71] ) ] spids: [71] ) ] spids: [68 76] ) (ForEach iter_name: infile iter_words: [{($ VSub_Name '$tests')}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:basename) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {($ VSub_Name '$infile')} {(.py)})] ) left_token: <Left_Backtick '`'> spids: [91 97] ) } spids: [90] ) ] spids: [90] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:outfile) op: Equal rhs: {(${ VSub_Name basename) (.py.out)} spids: [100] ) ] spids: [100] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expfile) op: Equal rhs: {($ VSub_Name '$infile') (.exp)} spids: [107] ) ] spids: [107] ) (SimpleCommand words: [{($ VSub_Name '$MP_PY')} {($ VSub_Name '$infile')}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$outfile')} spids: [117] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:numtestcases) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$numtestcases')} {(Lit_Other '+')} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {($ VSub_Name '$expfile')}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [130 140] ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [123 141] ) } spids: [122] ) ] spids: [122] ) (If arms: [ (if_arm cond: [ (C {(grep)} {(-q)} { (DQ (SKIP) (EscapedLiteralPart token:<Lit_EscapedChar '\\|'>) ('SyntaxError: invalid micropython decorator') ) } {($ VSub_Name '$outfile')} ) ] action: [ (C {(echo)} {(DQ ('skip ') ($ VSub_Name '$infile'))}) (C {($ VSub_Name '$RM')} {($ VSub_Name '$outfile')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:numskipped) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$numskipped')} {(Lit_Other '+')} {(1)}) ] ) left_token: <Left_CommandSub '$('> spids: [185 193] ) } spids: [184] ) ] spids: [184] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nameskipped) op: Equal rhs: {(DQ ($ VSub_Name '$nameskipped') (' ') ($ VSub_Name '$basename'))} spids: [196] ) ] spids: [196] ) ] spids: [-1 160] ) ] else_action: [ (SimpleCommand words: [{(diff)} {(--brief)} {($ VSub_Name '$expfile')} {($ VSub_Name '$outfile')}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[215])] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')}) ] action: [ (C {(echo)} {(DQ ('pass ') ($ VSub_Name '$infile'))}) (C {($ VSub_Name '$RM')} {($ VSub_Name '$outfile')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:numpassed) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$numpassed')} {(Lit_Other '+')} {(1)} ) ] ) left_token: <Left_CommandSub '$('> spids: [251 259] ) } spids: [250] ) ] spids: [250] ) ] spids: [-1 234] ) ] else_action: [ (C {(echo)} {(DQ ('FAIL ') ($ VSub_Name '$infile'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:numfailed) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$numfailed')} {(Lit_Other '+')} {(1)}) ] ) left_token: <Left_CommandSub '$('> spids: [274 282] ) } spids: [273] ) ] spids: [273] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:namefailed) op: Equal rhs: {(DQ ($ VSub_Name '$namefailed') (' ') ($ VSub_Name '$basename'))} spids: [285] ) ] spids: [285] ) ] spids: [262 293] ) ] spids: [204 296] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:numtests) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {($ VSub_Name '$numtests')} {(Lit_Other '+')} {(1)})] ) left_token: <Left_CommandSub '$('> spids: [301 309] ) } spids: [300] ) ] spids: [300] ) ] spids: [87 311] ) spids: [84 -1] ) (C {(echo)} { (DQ ($ VSub_Name '$numtests') (' tests performed (') ($ VSub_Name '$numtestcases') (' individual testcases)') ) } ) (C {(echo)} {(DQ ($ VSub_Name '$numpassed') (' tests passed'))}) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {($ VSub_Name '$numskipped')} {(KW_Bang '!') (Lit_Other '=')} {(0)} {(Lit_Other ']')} ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$numskipped') (' tests skipped -') ($ VSub_Name '$nameskipped'))} ) ] spids: [-1 343] ) ] spids: [-1 354] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {($ VSub_Name '$numfailed')} {(KW_Bang '!') (Lit_Other '=')} {(0)} {(Lit_Other ']')} ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$numfailed') (' tests failed -') ($ VSub_Name '$namefailed'))} ) (C {(exit)} {(1)}) ] spids: [-1 369] ) ] else_action: [(C {(exit)} {(0)})] spids: [385 392] ) ] )