(CommandList children: [ (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:reset) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(tput)} {(sgr0)})]) left_token: <Left_CommandSub '$('> spids: [51 55] ) } spids: [50] ) ] spids: [48] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:bold) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(tput)} {(bold)})]) left_token: <Left_CommandSub '$('> spids: [60 64] ) } spids: [59] ) ] spids: [57] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:black) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(tput)} {(setaf)} {(0)})]) left_token: <Left_CommandSub '$('> spids: [69 75] ) } spids: [68] ) ] spids: [66] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:red) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(tput)} {(setaf)} {(1)})]) left_token: <Left_CommandSub '$('> spids: [80 86] ) } spids: [79] ) ] spids: [77] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:green) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(tput)} {(setaf)} {(2)})]) left_token: <Left_CommandSub '$('> spids: [91 97] ) } spids: [90] ) ] spids: [88] ) (FuncDef name: 'kube::test::clear_all' body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (if_supports_resource) } {(DQ (rc))} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(kubectl)} {(delete)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [137 142] ) ) } {(rc)} {(--all)} {(--grace-period) (Lit_Other '=') (0)} {(--force)} ) ] spids: [16777215 129] ) ] spids: [16777215 156] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (if_supports_resource) } {(DQ (pods))} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(kubectl)} {(delete)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [183 188] ) ) } {(pods)} {(--all)} {(--grace-period) (Lit_Other '=') (0)} {(--force)} ) ] spids: [16777215 175] ) ] spids: [16777215 202] ) ] spids: [110] ) spids: [100 109] ) (FuncDef name: 'kube::test::get_caller' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:levels) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(2)}) spids: [229 233] ) } spids: [228] ) ] spids: [226] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:caller_file) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$levels')})) spids: [240 245] ) ) } spids: [238] ) ] spids: [236] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:caller_line) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name BASH_LINENO> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$levels')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [253 260] ) ) } spids: [251] ) ] spids: [249] ) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ (${ VSub_Name caller_file))})] ) left_token: <Left_CommandSub '$('> spids: [267 275] ) (':') (${ VSub_Name caller_line) ) } ) ] spids: [223] ) spids: [213 222] ) (FuncDef name: 'kube::test::get_object_assert' body: (BraceGroup children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (object_assert) } {(1)} {(DQ ($ VSub_At '$@'))} ) ] spids: [316] ) spids: [306 315] ) (FuncDef name: 'kube::test::wait_object_assert' body: (BraceGroup children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (object_assert) } {(10)} {(DQ ($ VSub_At '$@'))} ) ] spids: [364] ) spids: [354 363] ) (FuncDef name: 'kube::test::object_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tries) op: Equal rhs: {($ VSub_Number '$1')} spids: [420] ) ] spids: [418] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: {($ VSub_Number '$2')} spids: [426] ) ] spids: [424] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:request) op: Equal rhs: {($ VSub_Number '$3')} spids: [432] ) ] spids: [430] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:expected) op: Equal rhs: {($ VSub_Number '$4')} spids: [438] ) ] spids: [436] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:args) op: Equal rhs: { (BracedVarSub token: <VSub_Number 5> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [445 448] ) } spids: [444] ) ] spids: [442] ) (ForEach iter_name: j iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(seq)} {(1)} {(${ VSub_Name tries)})]) left_token: <Left_CommandSub '$('> spids: [458 466] ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(get)} {(-a)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [483 488] ) ) } {(${ VSub_Name args)} {($ VSub_Name '$object')} {(-o)} {(go-template) (Lit_Other '=') (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Name '$request') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) } ) ] ) left_token: <Left_CommandSub '$('> spids: [473 504] ) } spids: [472] ) ] spids: [472] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name '$res'))} right: {(Lit_Other '^') ($ VSub_Name '$expected') (Lit_Other '$')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } {(3)} ) ] ) left_token: <Left_CommandSub '$('> spids: [539 549] ) (': Successful get ') ($ VSub_Name '$object') (' ') ($ VSub_Name '$request') (': ') ($ VSub_Name '$res') ) } ) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 524] ) ] spids: [16777215 573] ) (C {(echo)} { (DQ ('Waiting for Get ') ($ VSub_Name '$object') (' ') ($ VSub_Name '$request') (' ') ($ VSub_Name '$args') (': expected: ') ($ VSub_Name '$expected') (', got: ') ($ VSub_Name '$res') ) } ) (C {(sleep)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{(${ VSub_Name j)}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [594 601] ) } ) ] spids: [469 604] ) spids: [457 467] ) (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } {(3)} ) ] ) left_token: <Left_CommandSub '$('> spids: [621 631] ) (': FAIL!') ) } ) (C {(echo)} {(DQ ('Get ') ($ VSub_Name '$object') (' ') ($ VSub_Name '$request'))}) (C {(echo)} {(DQ (' Expected: ') ($ VSub_Name '$expected'))}) (C {(echo)} {(DQ (' Got: ') ($ VSub_Name '$res'))}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [415] ) spids: [405 414] ) (FuncDef name: 'kube::test::get_object_jsonpath_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: {($ VSub_Number '$1')} spids: [704] ) ] spids: [702] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:request) op: Equal rhs: {($ VSub_Number '$2')} spids: [710] ) ] spids: [708] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:expected) op: Equal rhs: {($ VSub_Number '$3')} spids: [716] ) ] spids: [714] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:res) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(get)} {(-a)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [732 737] ) ) } {($ VSub_Name '$object')} {(-o)} {(Lit_VarLike 'jsonpath=') (EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Name '$request') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) } ) ] ) left_token: <Left_CommandSub '$('> spids: [722 748] ) } spids: [721] ) ] spids: [721] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name '$res'))} right: {(Lit_Other '^') ($ VSub_Name '$expected') (Lit_Other '$')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } ) ] ) left_token: <Left_CommandSub '$('> spids: [784 792] ) (': Successful get ') ($ VSub_Name '$object') (' ') ($ VSub_Name '$request') (': ') ($ VSub_Name '$res') ) } ) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 769] ) ] else_action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } ) ] ) left_token: <Left_CommandSub '$('> spids: [832 840] ) (': FAIL!') ) } ) (C {(echo)} {(DQ ('Get ') ($ VSub_Name '$object') (' ') ($ VSub_Name '$request'))}) (C {(echo)} {(DQ (' Expected: ') ($ VSub_Name '$expected'))}) (C {(echo)} {(DQ (' Got: ') ($ VSub_Name '$res'))}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [816 896] ) ] spids: [699] ) spids: [689 698] ) (FuncDef name: 'kube::test::describe_object_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:resource) op: Equal rhs: {($ VSub_Number '$1')} spids: [916] ) ] spids: [914] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: {($ VSub_Number '$2')} spids: [922] ) ] spids: [920] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:matches) op: Equal rhs: { (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 3)})) spids: [929 933] ) } spids: [928] ) ] spids: [926] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(describe)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [946 951] ) ) } {($ VSub_Name '$resource')} {($ VSub_Name '$object')} ) ] ) left_token: <Left_CommandSub '$('> spids: [938 957] ) } spids: [937] ) ] spids: [937] ) (ForEach iter_name: match iter_words: [{(${ VSub_Name matches)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (WordTest w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(grep)} {(${ VSub_Name match)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [981 995] ) } ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1016 1024] ) (': FAIL!') ) } ) (C {(echo)} { (DQ ('Describe ') ($ VSub_Name '$resource') (' ') ($ VSub_Name '$object') ) } ) (C {(echo)} {(DQ (' Expected Match: ') ($ VSub_Name '$match'))}) (C {(echo)} {(DQ (' Not found in:'))}) (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 1000] ) ] spids: [16777215 1086] ) ] spids: [972 1089] ) spids: [966 970] ) (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1105 1113] ) (': Successful describe ') ($ VSub_Name '$resource') (' ') ($ VSub_Name '$object') (':') ) } ) (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [911] ) spids: [901 910] ) (FuncDef name: 'kube::test::describe_object_events_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:resource) op: Equal rhs: {($ VSub_Number '$1')} spids: [1160] ) ] spids: [1158] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:object) op: Equal rhs: {($ VSub_Number '$2')} spids: [1166] ) ] spids: [1164] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:showevents) op: Equal rhs: { (BracedVarSub token: <VSub_Number 3> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (true))}) spids: [1173 1179] ) } spids: [1172] ) ] spids: [1170] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: { (DQ (BracedVarSub token: <VSub_Number 3> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1190 1193] ) ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(describe)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [1211 1216] ) ) } {($ VSub_Name '$resource')} {($ VSub_Name '$object')} ) ] ) left_token: <Left_CommandSub '$('> spids: [1203 1222] ) } spids: [1202] ) ] spids: [1202] ) ] spids: [16777215 1199] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(describe)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [1237 1242] ) ) } {(DQ ('--show-events=') ($ VSub_Name '$showevents'))} {($ VSub_Name '$resource')} {($ VSub_Name '$object')} ) ] ) left_token: <Left_CommandSub '$('> spids: [1229 1253] ) } spids: [1228] ) ] spids: [1228] ) ] spids: [1225 1256] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(grep)} {(DQ ('No events.') (Lit_Other '\\') ('|Events:'))} ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1266 1282] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:has_events) op: Equal rhs: {(DQ (true))} spids: [1292] ) ] spids: [1290] ) ] spids: [16777215 1287] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:has_events) op: Equal rhs: {(DQ (false))} spids: [1303] ) ] spids: [1301] ) ] spids: [1298 1309] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$showevents')} right: {($ VSub_Name '$has_events')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1340 1348] ) (': Successful describe') ) } ) (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 1325] ) ] else_action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (get_caller) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1388 1396] ) (': FAIL') ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$showevents')} right: {(DQ (false))} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (' Events information should not be described in:'))})] spids: [16777215 1416] ) ] else_action: [(C {(echo)} {(DQ (' Events information not found in:'))})] spids: [1426 1436] ) (C {(echo)} {($ VSub_Name '$result')}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1372 1469] ) ] spids: [1155] ) spids: [1145 1154] ) (FuncDef name: 'kube::test::describe_resource_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:resource) op: Equal rhs: {($ VSub_Number '$1')} spids: [1489] ) ] spids: [1487] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:matches) op: Equal rhs: { (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [1496 1500] ) } spids: [1495] ) ] spids: [1493] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(describe)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [1513 1518] ) ) } {($ VSub_Name '$resource')} ) ] ) left_token: <Left_CommandSub '$('> spids: [1505 1522] ) } spids: [1504] ) ] spids: [1504] ) (ForEach iter_name: match iter_words: [{(${ VSub_Name matches)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (WordTest w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(grep)} {(${ VSub_Name match)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1546 1560] ) } ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} {(DQ ('FAIL!'))}) (C {(echo)} {(DQ ('Describe ') ($ VSub_Name '$resource'))}) (C {(echo)} {(DQ (' Expected Match: ') ($ VSub_Name '$match'))}) (C {(echo)} {(DQ (' Not found in:'))}) (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 1565] ) ] spids: [16777215 1640] ) ] spids: [1537 1643] ) spids: [1531 1535] ) (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} {(DQ ('Successful describe ') ($ VSub_Name '$resource') (':'))}) (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1484] ) spids: [1474 1483] ) (FuncDef name: 'kube::test::describe_resource_events_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:resource) op: Equal rhs: {($ VSub_Number '$1')} spids: [1703] ) ] spids: [1701] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:showevents) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (true))}) spids: [1710 1716] ) } spids: [1709] ) ] spids: [1707] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(kubectl)} {(describe)} { (DQ (BracedVarSub token: <VSub_Name kube_flags> bracket_op: (WholeArray op_id:Lit_At) spids: [1729 1734] ) ) } {(DQ ('--show-events=') ($ VSub_Name '$showevents'))} {($ VSub_Name '$resource')} ) ] ) left_token: <Left_CommandSub '$('> spids: [1721 1743] ) } spids: [1720] ) ] spids: [1720] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (WordTest w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(grep)} {(DQ ('No events.') (Lit_Other '\\') ('|Events:'))} ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1751 1767] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:has_events) op: Equal rhs: {(DQ (true))} spids: [1777] ) ] spids: [1775] ) ] spids: [16777215 1772] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:has_events) op: Equal rhs: {(DQ (false))} spids: [1788] ) ] spids: [1786] ) ] spids: [1783 1794] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$showevents')} right: {($ VSub_Name '$has_events')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} {(DQ ('Successful describe'))}) (C {(echo)} {(DQ ($ VSub_Name '$result'))}) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 1810] ) ] else_action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} {(DQ (FAIL))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$showevents')} right: {(DQ (false))} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (' Events information should not be described in:'))})] spids: [16777215 1885] ) ] else_action: [(C {(echo)} {(DQ (' Events information not found in:'))})] spids: [1895 1905] ) (C {(echo)} {($ VSub_Name '$result')}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1850 1928] ) ] spids: [1698] ) spids: [1688 1697] ) (FuncDef name: 'kube::test::if_sort_by_has_correct_order' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:array) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(awk)} {(SQ <'{if(NR!=1) print $1}'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1953 1966] ) } ] ) } spids: [1951] ) ] spids: [1949] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:var) op:Equal spids:[1972])] spids: [1970] ) (ForEach iter_name: i iter_words: [ { (DQ (BracedVarSub token: <VSub_Name array> bracket_op: (WholeArray op_id:Lit_At) spids: [1982 1987] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:var) op: PlusEqual rhs: {(DQ ($ VSub_Name '$i') (':'))} spids: [1994] ) ] spids: [1994] ) ] spids: [1991 2001] ) spids: [1980 1989] ) (C {(kube) (Lit_Other ':') (Lit_Other ':') (test) (Lit_Other ':') (Lit_Other ':') (if_has_string) } {(DQ ($ VSub_Name '$var'))} { (DQ (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin:(ArithWord w:{($ VSub_Pound '$#')})) spids: [2018 2022] ) ) } ) ] spids: [1946] ) spids: [1936 1945] ) (FuncDef name: 'kube::test::if_has_string' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:message) op: Equal rhs: {($ VSub_Number '$1')} spids: [2043] ) ] spids: [2041] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: {($ VSub_Number '$2')} spids: [2049] ) ] spids: [2047] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$message'))}) (C {(grep)} {(-q)} {(DQ ($ VSub_Name '$match'))}) ] negated: False ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (Successful))}) (C {(echo)} {(DQ ('message:') ($ VSub_Name '$message'))}) (C {(echo)} {(DQ ('has:') ($ VSub_Name '$match'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 2073] ) ] else_action: [ (C {(echo)} {(DQ ('FAIL!'))}) (C {(echo)} {(DQ ('message:') ($ VSub_Name '$message'))}) (C {(echo)} {(DQ ('has not:') ($ VSub_Name '$match'))}) (C {(caller)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2104 2138] ) ] spids: [2038] ) spids: [2028 2037] ) (FuncDef name: 'kube::test::if_has_not_string' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:message) op: Equal rhs: {($ VSub_Number '$1')} spids: [2158] ) ] spids: [2156] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: {($ VSub_Number '$2')} spids: [2164] ) ] spids: [2162] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$message'))}) (C {(grep)} {(-q)} {(DQ ($ VSub_Name '$match'))}) ] negated: False ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('FAIL!'))}) (C {(echo)} {(DQ ('message:') ($ VSub_Name '$message'))}) (C {(echo)} {(DQ ('has:') ($ VSub_Name '$match'))}) (C {(caller)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 2188] ) ] else_action: [ (C {(echo)} {(DQ (Successful))}) (C {(echo)} {(DQ ('message:') ($ VSub_Name '$message'))}) (C {(echo)} {(DQ ('has not:') ($ VSub_Name '$match'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [2222 2253] ) ] spids: [2153] ) spids: [2143 2152] ) (FuncDef name: 'kube::test::if_empty_string' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:match) op: Equal rhs: {($ VSub_Number '$1')} spids: [2273] ) ] spids: [2271] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$match'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$match') (' is not empty'))}) (C {(caller)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 2290] ) ] else_action: [ (C {(echo)} {(DQ (Successful))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [2309 2324] ) ] spids: [2268] ) spids: [2258 2267] ) (FuncDef name: 'kube::test::if_supports_resource' body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SUPPORTED_RESOURCES) op: Equal rhs: { (BracedVarSub token: <VSub_Name SUPPORTED_RESOURCES> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [2361 2366] ) } spids: [2360] ) ] spids: [2360] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REQUIRED_RESOURCE) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [2370 2375] ) } spids: [2369] ) ] spids: [2369] ) (ForEach iter_name: r iter_words: [ { (DQ (BracedVarSub token: <VSub_Name SUPPORTED_RESOURCES> bracket_op: (WholeArray op_id:Lit_At) spids: [2386 2391] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name r))} right: {(DQ ('*'))} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name r))} right: {(DQ (${ VSub_Name REQUIRED_RESOURCE))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 2433] ) ] spids: [16777215 2441] ) ] spids: [2395 2444] ) spids: [2384 2393] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2357] ) spids: [2347 2356] ) (FuncDef name: 'kube::test::version::object_to_file' body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {($ VSub_Number '$1')} spids: [2471] ) ] spids: [2471] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [2476 2481] ) } spids: [2475] ) ] spids: [2475] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {($ VSub_Number '$3')} spids: [2484] ) ] spids: [2484] ) (Pipeline children: [ (C {(kubectl)} {(version)} {($ VSub_Name '$flags')}) (C {(grep)} {(DQ ($ VSub_Name '$name') (' Version:'))}) (C {(sed)} {(-e)} {(s/) (DQ ($ VSub_Name '$name') (' Version: version.Info{')) (/) (SQ </>)} {(-e)} {(s/) (SQ <'}'>) (/) (SQ </>)} {(-e)} {(s/) (SQ <', '>) (/) (SQ <','>) (/g)} {(-e)} {(s/) (SQ <':'>) (/) (SQ <'=/g'>)} {(-e)} {(s/) (SQ <'"'>) (/) (DQ ) (/g)} ) (SimpleCommand words: [{(tr)} {(Lit_Comma ',')} {(SQ <'\\n'>)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name file))} spids: [2574] ) ] ) ] negated: False ) ] spids: [2468] ) spids: [2455 2467] ) (FuncDef name: 'kube::test::version::json_object_to_file' body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {($ VSub_Number '$1')} spids: [2601] ) ] spids: [2601] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {($ VSub_Number '$2')} spids: [2605] ) ] spids: [2605] ) (Pipeline children: [ (C {(kubectl)} {(version)} {($ VSub_Name '$flags')} {(--output)} {(json)}) (C {(sed)} {(-e)} {(s/) (SQ <' '>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'\\"'>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'}'>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'{'>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'clientVersion:'>) (/) (SQ <'clientVersion:,'>) (/)} {(-e)} {(s/) (SQ <'serverVersion:'>) (/) (SQ <'serverVersion:,'>) (/)} ) (SimpleCommand words: [{(tr)} {(Lit_Comma ',')} {(SQ <'\\n'>)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name file))} spids: [2701] ) ] ) ] negated: False ) ] spids: [2598] ) spids: [2585 2597] ) (FuncDef name: 'kube::test::version::json_client_server_object_to_file' body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {($ VSub_Number '$1')} spids: [2728] ) ] spids: [2728] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {($ VSub_Number '$2')} spids: [2732] ) ] spids: [2732] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {($ VSub_Number '$3')} spids: [2736] ) ] spids: [2736] ) (Pipeline children: [ (C {(kubectl)} {(version)} {($ VSub_Name '$flags')} {(--output)} {(json)}) (C {(jq)} {(-r)} {(DQ (.) (${ VSub_Name name))}) (SimpleCommand words: [ {(sed)} {(-e)} {(s/) (SQ <'\\"'>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'}'>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'{'>) (/) (SQ ) (/g)} {(-e)} {(/) (Lit_Other '^') (Lit_Other '$') (/d)} {(-e)} {(s/) (SQ <','>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <':'>) (/) (SQ <'='>) (/g)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name file))} spids: [2830] ) ] ) ] negated: False ) ] spids: [2725] ) spids: [2712 2724] ) (FuncDef name: 'kube::test::version::yaml_object_to_file' body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {($ VSub_Number '$1')} spids: [2857] ) ] spids: [2857] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {($ VSub_Number '$2')} spids: [2861] ) ] spids: [2861] ) (Pipeline children: [ (C {(kubectl)} {(version)} {($ VSub_Name '$flags')} {(--output)} {(yaml)}) (SimpleCommand words: [ {(sed)} {(-e)} {(s/) (SQ <' '>) (/) (SQ ) (/g)} {(-e)} {(s/) (SQ <'\\"'>) (/) (SQ ) (/g)} {(-e)} {(/) (Lit_Other '^') (Lit_Other '$') (/d)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name file))} spids: [2908] ) ] ) ] negated: False ) ] spids: [2854] ) spids: [2841 2853] ) (FuncDef name: 'kube::test::version::diff_assert' body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:original) op: Equal rhs: {($ VSub_Number '$1')} spids: [2937] ) ] spids: [2935] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:comparator) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (eq))}) spids: [2944 2950] ) } spids: [2943] ) ] spids: [2941] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:latest) op: Equal rhs: {($ VSub_Number '$3')} spids: [2955] ) ] spids: [2953] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:diff_msg) op: Equal rhs: { (BracedVarSub token: <VSub_Number 4> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [2962 2967] ) } spids: [2961] ) ] spids: [2959] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:res) op:Equal rhs:{(DQ )} spids:[2972])] spids: [2970] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {($ VSub_Name '$original')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} {(DQ ('FAIL! ') (${ VSub_Name diff_msg))}) (C {(echo)} {(DQ ("the file '") (${ VSub_Name original) ("' does not exit"))}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 2991] ) ] spids: [16777215 3050] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {($ VSub_Name '$latest')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} {(DQ ('FAIL! ') (${ VSub_Name diff_msg))}) (C {(echo)} {(DQ ("the file '") (${ VSub_Name latest) ("' does not exit"))}) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 3067] ) ] spids: [16777215 3126] ) (SimpleCommand words: [{(sort)} {(${ VSub_Name original)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name original) (.sorted))} spids: [3136] ) ] ) (SimpleCommand words: [{(sort)} {(${ VSub_Name latest)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name latest) (.sorted))} spids: [3152] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$comparator'))} {(Lit_Other '=') (Lit_Other '=')} {(DQ (eq))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(diff)} {(-iwB)} {(${ VSub_Name original) (.sorted)} {(${ VSub_Name latest) (.sorted)} ) ] ) left_token: <Left_CommandSub '$('> spids: [3189 3203] ) ) } {(Lit_Other '=') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} {(DQ ('Successful: ') (${ VSub_Name diff_msg))}) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 3216] ) ] else_action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} {(DQ ('FAIL! ') (${ VSub_Name diff_msg))}) (C {(echo)} {(DQ (' Expected: '))}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name original)})] ) left_token: <Left_CommandSub '$('> spids: [3285 3291] ) ) } ) (C {(echo)} {(DQ (' Got: '))}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name latest)})] ) left_token: <Left_CommandSub '$('> spids: [3305 3311] ) ) } ) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3252 3340] ) ] spids: [16777215 3181] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(diff)} {(-iwB)} {(${ VSub_Name original) (.sorted)} {(${ VSub_Name latest) (.sorted)} ) ] ) left_token: <Left_CommandSub '$('> spids: [3355 3369] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(${ VSub_Name green)}) (C {(echo)} {(DQ ('Successful: ') (${ VSub_Name diff_msg))}) (C {(echo)} {(-n)} {(${ VSub_Name reset)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 3376] ) ] else_action: [ (C {(echo)} {(${ VSub_Name bold) (${ VSub_Name red)}) (C {(echo)} {(DQ ('FAIL! ') (${ VSub_Name diff_msg))}) (C {(echo)} {(DQ (' Expected: '))}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name original)})] ) left_token: <Left_CommandSub '$('> spids: [3445 3451] ) ) } ) (C {(echo)} {(DQ (' Got: '))}) (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name latest)})] ) left_token: <Left_CommandSub '$('> spids: [3465 3471] ) ) } ) (C {(echo)} {(${ VSub_Name reset) (${ VSub_Name red)}) (C {(caller)}) (C {(echo)} {(${ VSub_Name reset)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [3412 3500] ) ] spids: [3343 3503] ) ] spids: [2932] ) spids: [2919 2931] ) ] )