(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: [-1 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: True ) ] action: [(C {(echo)} {(DQ (FAIL))}) (C {(exit)} {(1)})] spids: [-1 187] ) ] spids: [-1 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: [-1 229] ) ] spids: [-1 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: [-1 276] ) ] spids: [-1 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: [-1 313] ) ] spids: [-1 319] ) (C {(echo)} { (DQ ("** device must be in ") ($ VSub_Number "$1") (" config, but it's ") ($ VSub_Name "$CONFIG") (" instead") ) } ) (C {(exit)} {(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: False 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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("Don't understand test type ") ($ VSub_Name "$TYPE"))}) (Sentence child: (C {(exit)} {(1)}) terminator: <Op_Semi ";"> ) ] spids: [1236 1237 -1 1254] ) ] spids: [405 409 1254] ) (C {(echo)} {(SQ )}) ] spids: [376 1263] ) spids: [372 -1] ) ] spids: [356 1265] ) ) ] )