(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] ) ] )