(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)}
        )
      ]
    )
  ]
)