(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TYPES) op: Equal rhs: {(SQ <'control out in'>)} spids: [49] ) ] spids: [49] ) (Assignment keyword: Assign_Declare flags: [-i] pairs: [ (assign_pair lhs:(LhsName name:COUNT) op:Equal spids:[90]) (assign_pair lhs:(LhsName name:BUFLEN) op:Equal spids:[92]) ] spids: [86] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:COUNT) op:Equal rhs:{(50000)} spids:[95])] spids: [95] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:BUFLEN) op:Equal rhs:{(2048)} spids:[98])] spids: [98] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DEVICE'))} {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('testing ALL recognized usbtest devices'))}) (C {(echo)} {(DQ )}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TEST_ARGS) op:Equal rhs:{(DQ (-a))} spids:[142])] spids: [142] ) ] spids: [16777215 126] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TEST_ARGS) op:Equal rhs:{(DQ )} spids:[150])] spids: [150] ) ] spids: [147 154] ) (FuncDef name: do_test body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Pipeline children: [ (SimpleCommand words: [ {(./testusb)} {($ VSub_Name '$TEST_ARGS')} {(-s)} {($ VSub_Name '$BUFLEN')} {(-c)} {($ VSub_Name '$COUNT')} {($ VSub_Star '$*')} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [183] ) ] ) ] negated: T ) ] action: [ (C {(echo)} {(DQ (FAIL))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 187] ) ] spids: [16777215 202] ) ] spids: [162] ) spids: [157 161] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARGS) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [207] ) ] spids: [207] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ARGS'))} {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARGS) op: Equal rhs: {(DQ ($ VSub_Name '$TYPES'))} spids: [232] ) ] spids: [232] ) ] spids: [16777215 229] ) ] spids: [16777215 237] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CONFIG) op:Equal rhs:{(SQ )} spids:[247])] spids: [247] ) (FuncDef name: check_config body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$CONFIG'))} {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CONFIG) op: Equal rhs: {($ VSub_Number '$1')} spids: [279] ) ] spids: [279] ) (C {(echo)} {(DQ ('assuming ') ($ VSub_Name '$CONFIG') (' configuration'))}) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 276] ) ] spids: [16777215 295] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$CONFIG'))} {(Lit_Other '=')} {($ VSub_Number '$1')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 313] ) ] spids: [16777215 319] ) (C {(echo)} { (DQ ('** device must be in ') ($ VSub_Number '$1') (" config, but it's ") ($ VSub_Name '$CONFIG') (' instead') ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [257] ) spids: [252 256] ) (C {(echo)} {(DQ ('TESTING: ') ($ VSub_Name '$ARGS'))}) (While cond: [(C {(Lit_Other ':')} {(true)})] body: (DoGroup children: [ (C {(echo)} { (CommandSubPart command_list: (CommandList children:[(C {(date)})]) left_token: <Left_CommandSub '$('> spids: [361 363] ) } ) (ForEach iter_name: TYPE iter_words: [{($ VSub_Name '$ARGS')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(5000)} spids: [383] ) ] spids: [383] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(2048)} spids: [387] ) ] spids: [387] ) (Case to_match: {($ VSub_Name '$TYPE')} arms: [ (case_arm pat_list: [{(control)}] action: [ (C {(echo)} {(SQ <'** Control test cases:'>)}) (C {(echo)} {(DQ ('test 9: ch9 postconfig'))}) (C {(do_test)} {(-t)} {(9)} {(-c)} {(5000)}) (C {(echo)} {(DQ ('test 10: control queueing'))}) (C {(do_test)} {(-t)} {(10)} {(-c)} {(5000)}) (C {(echo)} {(DQ ('test 14: control writes'))}) (C {(do_test)} {(-t)} {(14)} {(-c)} {(15000)} {(-s)} {(256)} {(-v)} {(1)}) (C {(echo)} {(DQ ('test 21: control writes, unaligned'))}) (C {(do_test)} {(-t)} {(21)} {(-c)} {(100)} {(-s)} {(256)} {(-v)} {(1)}) ] spids: [412 413 523 16777215] ) (case_arm pat_list: [{(out)}] action: [ (C {(check_config)} {(sink-src)}) (C {(echo)} {(SQ <'** Host Write (OUT) test cases:'>)}) (C {(echo)} {(DQ ('test 1: ') ($ VSub_Name '$COUNT') (' transfers, same size'))} ) (C {(do_test)} {(-t)} {(1)}) (C {(echo)} { (DQ ('test 3: ') ($ VSub_Name '$COUNT') (' transfers, variable/short size') ) } ) (C {(do_test)} {(-t)} {(3)} {(-v)} {(421)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(100)} spids: [581] ) ] spids: [581] ) (C {(echo)} { (DQ ('test 17: ') ($ VSub_Name '$COUNT') (' transfers, unaligned DMA map by core') ) } ) (C {(do_test)} {(-t)} {(17)}) (C {(echo)} { (DQ ('test 19: ') ($ VSub_Name '$COUNT') (' transfers, unaligned DMA map by usb_alloc_coherent') ) } ) (C {(do_test)} {(-t)} {(19)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(2000)} spids: [619] ) ] spids: [619] ) (C {(echo)} { (DQ ('test 5: ') ($ VSub_Name '$COUNT') (' scatterlists, same size entries') ) } ) (C {(do_test)} {(-t)} {(5)}) (C {(echo)} { (DQ ('test 7a: ') ($ VSub_Name '$COUNT') (' scatterlists, variable size/short entries') ) } ) (C {(do_test)} {(-t)} {(7)} {(-v)} {(579)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(4096)} spids: [664] ) ] spids: [664] ) (C {(echo)} { (DQ ('test 7b: ') ($ VSub_Name '$COUNT') (' scatterlists, variable size/bigger entries') ) } ) (C {(do_test)} {(-t)} {(7)} {(-v)} {(41)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(64)} spids: [688] ) ] spids: [688] ) (C {(echo)} { (DQ ('test 7c: ') ($ VSub_Name '$COUNT') (' scatterlists, variable size/micro entries') ) } ) (C {(do_test)} {(-t)} {(7)} {(-v)} {(63)}) ] spids: [527 528 712 16777215] ) (case_arm pat_list: [{(iso-out)}] action: [ (C {(check_config)} {(sink-src)}) (C {(echo)} {(SQ <'** Host ISOCHRONOUS Write (OUT) test cases:'>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(24500)} spids: [745] ) ] spids: [745] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(1000)} spids: [750] ) ] spids: [750] ) (C {(echo)} {(DQ ('test 15: ') ($ VSub_Name '$COUNT') (' transfers, same size'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(32768)} spids: [772] ) ] spids: [772] ) (C {(do_test)} {(-t)} {(15)} {(-g)} {(8)} {(-v)} {(0)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(100)} spids: [801] ) ] spids: [801] ) (C {(echo)} {(DQ ('test 22: ') ($ VSub_Name '$COUNT') (' transfers, non aligned'))} ) (C {(do_test)} {(-t)} {(22)} {(-g)} {(8)} {(-v)} {(0)}) ] spids: [716 717 830 16777215] ) (case_arm pat_list: [{(KW_In in)}] action: [ (C {(check_config)} {(sink-src)}) (C {(echo)} {(SQ <'** Host Read (IN) test cases:'>)}) (C {(echo)} {(DQ ('test 2: ') ($ VSub_Name '$COUNT') (' transfers, same size'))} ) (C {(do_test)} {(-t)} {(2)}) (C {(echo)} { (DQ ('test 4: ') ($ VSub_Name '$COUNT') (' transfers, variable size')) } ) (C {(do_test)} {(-t)} {(4)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(100)} spids: [893] ) ] spids: [893] ) (C {(echo)} { (DQ ('test 18: ') ($ VSub_Name '$COUNT') (' transfers, unaligned DMA map by core') ) } ) (C {(do_test)} {(-t)} {(18)}) (C {(echo)} { (DQ ('test 20: ') ($ VSub_Name '$COUNT') (' transfers, unaligned DMA map by usb_alloc_coherent') ) } ) (C {(do_test)} {(-t)} {(20)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(2000)} spids: [931] ) ] spids: [931] ) (C {(echo)} { (DQ ('test 6: ') ($ VSub_Name '$COUNT') (' scatterlists, same size entries') ) } ) (C {(do_test)} {(-t)} {(6)}) (C {(echo)} { (DQ ('test 8: ') ($ VSub_Name '$COUNT') (' scatterlists, variable size entries') ) } ) (C {(do_test)} {(-t)} {(8)}) ] spids: [834 835 967 16777215] ) (case_arm pat_list: [{(iso-in)}] action: [ (C {(check_config)} {(sink-src)}) (C {(echo)} {(SQ <'** Host ISOCHRONOUS Read (IN) test cases:'>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(24500)} spids: [1000] ) ] spids: [1000] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(1000)} spids: [1005] ) ] spids: [1005] ) (C {(echo)} {(DQ ('test 16: ') ($ VSub_Name '$COUNT') (' transfers, same size'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(32768)} spids: [1027] ) ] spids: [1027] ) (C {(do_test)} {(-t)} {(16)} {(-g)} {(8)} {(-v)} {(0)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(100)} spids: [1056] ) ] spids: [1056] ) (C {(echo)} {(DQ ('test 23: ') ($ VSub_Name '$COUNT') (' transfers, unaligned'))} ) (C {(do_test)} {(-t)} {(23)} {(-g)} {(8)} {(-v)} {(0)}) ] spids: [971 972 1085 16777215] ) (case_arm pat_list: [{(halt)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(2000)} spids: [1109] ) ] spids: [1109] ) (C {(echo)} {(DQ ('test 13: ') ($ VSub_Name '$COUNT') (' halt set/clear'))}) (C {(do_test)} {(-t)} {(13)}) ] spids: [1089 1090 1129 16777215] ) (case_arm pat_list: [{(unlink)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(2000)} spids: [1137] ) ] spids: [1137] ) (C {(echo)} {(DQ ('test 11: ') ($ VSub_Name '$COUNT') (' read unlinks'))}) (C {(do_test)} {(-t)} {(11)}) (C {(echo)} {(DQ ('test 12: ') ($ VSub_Name '$COUNT') (' write unlinks'))}) (C {(do_test)} {(-t)} {(12)}) ] spids: [1133 1134 1174 16777215] ) (case_arm pat_list: [{(loop)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUFLEN) op: Equal rhs: {(2048)} spids: [1186] ) ] spids: [1186] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COUNT) op: Equal rhs: {(32)} spids: [1190] ) ] spids: [1190] ) (C {(check_config)} {(loopback)}) (C {(echo)} { (DQ ('write ') ($ VSub_Name '$COUNT') (' buffers of ') ($ VSub_Name '$BUFLEN') (' bytes, read them back') ) } ) (C {(echo)} { (DQ ('write ') ($ VSub_Name '$COUNT') (' variable size buffers, read them back') ) } ) ] spids: [1178 1179 1232 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ ("Don't understand test type ") ($ VSub_Name '$TYPE'))}) (Sentence child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [1236 1237 16777215 1254] ) ] spids: [405 409 1254] ) (C {(echo)} {(SQ )}) ] spids: [376 1263] ) spids: [372 16777215] ) ] spids: [356 1265] ) ) ] )