(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:COLUMNS) op:Equal rhs:{(80)} spids:[50])] spids: [50] ) (C {(export)} {(COLUMNS)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LC_ALL) op:Equal rhs:{(C)} spids:[70])] spids: [70] ) (C {(export)} {(LC_ALL)}) (Sentence child: (C {(.)} { (DQ (BracedVarSub token: <VSub_Name srcdir> suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)}) spids: [81 85] ) (/tests/init.sh) ) } ) terminator: <Op_Semi ';'> ) (C {(path_prepend_)} {(./src)}) (C {(print_ver_)} {(stty)}) (C {(require_controlling_input_terminal_)}) (C {(trap)} {(SQ )} {(TTOU)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tests) op: Equal rhs: { (SQ <'\n'> <'1 rows_40_columns_80 40_80\n'> <'2 rows_1_columns_1 1_1\n'> <'3 rows_40_columns_80 40_80\n'> <'4 rows_1 1_80\n'> <'5 columns_1 1_1\n'> <'6 rows_40 40_1\n'> <'7 rows_1 1_1\n'> <'8 columns_80 1_80\n'> <'9 rows_30 30_80\n'> <'NA LAST NA\n'> ) } spids: [119] ) ] spids: [119] ) (C {(set)} {($ VSub_Name '$tests')}) (AndOr ops: [Op_DAmp Op_DPipe] children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:saved_size) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(stty)} {(size)})]) left_token: <Left_CommandSub '$('> spids: [140 144] ) } spids: [139] ) ] spids: [139] ) (C {(test)} {(-n)} {(DQ ($ VSub_Name '$saved_size'))}) (C {(skip_)} {(DQ ("can't get window size"))}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ (x) ($ VSub_Name '$saved_size'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ('x0 0'))} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:srow) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$saved_size')}) (C {(cut)} {(-d)} {(SQ <' '>)} {(-f1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [194 210] ) } spids: [193] ) ] spids: [193] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:scol) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$saved_size')}) (C {(cut)} {(-d)} {(SQ <' '>)} {(-f2)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [214 230] ) } spids: [213] ) ] spids: [213] ) (AndOr ops: [Op_DPipe] children: [ (C {(stty)} {(rows)} { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {($ VSub_Name '$srow')} {(Lit_Other '+')} {(1)})] ) left_token: <Left_CommandSub '$('> spids: [237 245] ) } {(cols)} { (CommandSubPart command_list: (CommandList children: [(C {(expr)} {($ VSub_Name '$scol')} {(Lit_Other '+')} {(1)})] ) left_token: <Left_CommandSub '$('> spids: [249 257] ) } ) (C {(skip_)} {(DQ ("can't increase window size"))}) ] ) ] spids: [16777215 190] ) ] spids: [16777215 268] ) (While cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [279] ) ] spids: [279] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:args) op: Equal rhs: {($ VSub_Number '$2')} spids: [283] ) ] spids: [283] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expected_result) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Number '$3')}) (C {(tr)} {(_)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [289 301] ) ) } spids: [287] ) ] spids: [287] ) (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ ($ VSub_Name '$args'))} {(Lit_Other '=')} {(empty)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:args) op:Equal rhs:{(SQ )} spids:[317])] spids: [317] ) ] ) (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ (x) ($ VSub_Name '$args'))} {(Lit_Other '=')} {(xLAST)}) (ControlFlow token:<ControlFlow_Break break>) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:args) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(x) ($ VSub_Name '$args')}) (C {(tr)} {(_)} {(SQ <' '>)}) (C {(sed)} {(SQ <'s/^x//'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [339 358] ) } spids: [338] ) ] spids: [338] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(yes)}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(echo)} {(DQ ('test ') ($ VSub_Name '$test_name') ('... '))}) (C {(tr)} {(-d)} {(SQ <'\\n'>)}) ] negated: F ) ] spids: [16777215 374] ) ] spids: [16777215 400] ) (AndOr ops: [Op_DPipe] children: [ (C {(stty)} {($ VSub_Name '$args')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(test)} {(x) (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(stty)} {(size)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [423] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [418 426] ) ) } {(Lit_Other '=')} {(DQ (x) ($ VSub_Name '$expected_result'))} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ok) op:Equal rhs:{(ok)} spids:[440])] spids: [440] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ok) op: Equal rhs: {(FAIL)} spids: [445] ) (assign_pair lhs: (LhsName name:fail) op: Equal rhs: {(1)} spids: [448] ) ] spids: [445] ) ] ) (AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other '=')} {(yes)}) (C {(echo)} {($ VSub_Name '$ok')}) ] ) (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) ] spids: [276 477] ) ) (C {(set)} {(x)} {($ VSub_Name '$saved_size')}) (AndOr ops: [Op_DPipe] children: [ (C {(stty)} {(rows)} {($ VSub_Number '$2')} {(columns)} {($ VSub_Number '$3')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (C {(Exit)} {($ VSub_Name '$fail')}) ] )