(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_name) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [53] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:orig_rc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$rc')} spids: [59] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:xfail) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [62] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stop_on_failure) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [65] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$rc')} {(-eq)} {(77)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:80) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {(DQ (UNSUPPORTED))} spids: [85] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {(0)} spids: [91] ) ] ) ] spids: [69 82] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$rc')} {(-eq)} {(0)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:108) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {(DQ (PASS))} spids: [113] ) ] ) ] spids: [97 110] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {(DQ (FAIL))} spids: [122] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$xfail')}) terminator: (Token id:Id.Op_Semi val:';' span_id:135) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {(DQ (X) ($ Id.VSub_DollarName '$result'))} spids: [140] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {(0)} spids: [147] ) ] ) ] spids: [132 137] ) ] ) ] ) (C {(echo)} {(DQ ($ Id.VSub_DollarName '$result') (': ') ($ Id.VSub_DollarName '$test_name'))}) (C {(echo)} {(DQ ('original exit status ') ($ Id.VSub_DollarName '$orig_rc'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$stop_on_failure')}) terminator: (Token id:Id.Op_Semi val:';' span_id:174) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:179) arg_word: {($ Id.VSub_DollarName '$rc')} ) ] spids: [171 176] ) ] else_action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:186) arg_word: {(0)} ) ] ) ] )