(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (C {(source)} {(test/common.sh)}) (C {(export)} {(Lit_VarLike 'PYTHONPATH=') (.)}) (FuncDef name: one body: (BraceGroup children:[(C {(DQ ($ VSub_At '$@'))})] spids:[71]) spids: [67 70] ) (FuncDef name: unit body: (BraceGroup children:[(C {(DQ ($ VSub_At '$@'))})] spids:[88]) spids: [84 87] ) (FuncDef name: _log-one body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {($ VSub_Number '$1')} spids: [107] ) ] spids: [105] ) (SimpleCommand words: [{($ VSub_Name '$name')}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(_tmp/unit/) (${ VSub_Name name) (.log.txt)} spids: [113] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[121]) ] ) ] spids: [102] ) spids: [98 101] ) (FuncDef name: _all body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {(_tmp/unit)}) (ForEach iter_name: t iter_words: [ (BracedWordTree parts: [ (BracedAltPart words: [{(build)} {(test)} {(native)} {(asdl)} {(core)} {(osh)} {(tools)}] ) (/) (Lit_Other '*') (_test.py) ] ) ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$t')} right: {(Lit_Other '*') (arith_parse_test.py)} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [-1 198] ) ] spids: [-1 204] ) (C {(echo)} {($ VSub_Name '$t')}) (C {(mkdir)} {(-p)} {(_tmp/unit/) (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Name '$t')})]) left_token: <Left_CommandSub '$('> spids: [218 222] ) } ) (C {(run-task-with-status)} {(_tmp/unit/) (${ VSub_Name t) (.task.txt)} {($ VSub_Number '$0')} {(_log-one)} {($ VSub_Name '$t')} ) ] spids: [177 240] ) spids: [156 175] ) ] spids: [131] ) spids: [127 130] ) (FuncDef name: _html-summary body: (BraceGroup children: [ (Pipeline children: [ (C {(find)} {(_tmp/unit)} {(-name)} {(SQ <'*.task.txt'>)}) (C {(awk)} { (SQ <'\n'> <' { path = $0\n'> <' getline < path\n'> <' status = $1\n'> <' wall_secs = $2\n'> <'\n'> <' if (status == 0) {\n'> <' num_passed += 1\n'> <' } else {\n'> <' num_failed = 1\n'> <' print path " failed"\n'> <' }\n'> <' }\n'> <' END {\n'> <' if (num_failed == 0) {\n'> <' print ""\n'> <' print "ALL " num_passed " TESTS PASSED"\n'> <' }\n'> <' }\n'> <' '> ) } ) ] negated: False ) ] spids: [255] ) spids: [251 254] ) (FuncDef name: html-summary body: (BraceGroup children:[(C {(_html-summary)})] spids:[302]) spids: [298 301] ) (FuncDef name: all body: (BraceGroup children: [(TimeBlock pipeline:(C {($ VSub_Number '$0')} {(_all)})) (C {(html-summary)})] spids: [314] ) spids: [310 313] ) (C {(DQ ($ VSub_At '$@'))}) ] )