(command.CommandList
  children: [
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [
        {<Id.Lit_Colon ':'>}
        {
          (BracedVarSub
            left: <Id.Left_DollarBrace '${'>
            token: <Id.VSub_Name TEST_SH>
            var_name: TEST_SH
            suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{(DQ <'/bin/sh'>)})
            right: <Id.Right_DollarBrace '}'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <failwith>
      name: failwith
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName SH_FAILS))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SH_FAILS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SH_FAILS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SH_FAILS='> name:SH_FAILS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SH_FAILS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SH_FAILS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SH_FAILS='> name:SH_FAILS)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ ($ Id.VSub_DollarName SH_FAILS)) 
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.CommandList
                                    children: [
                                      (command.Sentence
                                        child: 
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        terminator: <Id.Op_Semi _>
                                      )
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <check1>
      name: check1
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'result='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'result='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'result='> name:result)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <Id.VSub_DollarName '$TEST_SH'>
                                more_env: []
                                words: [
                                  {($ Id.VSub_DollarName TEST_SH)}
                                  {<-c>}
                                  {(DQ ($ Id.VSub_Number 1))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <tr>
                                more_env: []
                                words: [{<tr>} {(SQ <'\\n'>)} {(SQ <' '>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <sed>
                                more_env: []
                                words: [{<sed>} {(SQ <'s/ *$//'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_DollarName result))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {(DQ ($ Id.VSub_Number 2))}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'MSG='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'MSG='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MSG='> name:MSG)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <printf>
                                    more_env: []
                                    words: [
                                      {<printf>}
                                      {(DQ <'%-56s %-8s  %s'>)}
                                      {(DQ ($ Id.VSub_Number 3))}
                                      {(DQ ($ Id.VSub_DollarName result))}
                                      {(DQ ($ Id.VSub_Number 2))}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <failwith>
                      more_env: []
                      words: [{<failwith>} {(DQ ($ Id.VSub_DollarName MSG))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'failcount='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'failcount='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failcount='> name:failcount)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <expr>
                                    more_env: []
                                    words: [
                                      {<expr>}
                                      {($ Id.VSub_DollarName failcount)}
                                      {<Id.Lit_Other '+'>}
                                      {<1>}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [213 231]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'count='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'count='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <expr>
                            more_env: []
                            words: [{<expr>} {($ Id.VSub_DollarName count)} {<Id.Lit_Other '+'>} {<1>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <dcheck>
      name: dcheck
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <check1>
              more_env: []
              words: [
                {<check1>}
                {(DQ ($ Id.VSub_Number 1))}
                {(DQ ($ Id.VSub_Number 2))}
                {(DQ ($ Id.VSub_Number 1))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <echeck>
      name: echeck
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <check1>
              more_env: []
              words: [
                {<check1>}
                {(SQ <'eval '>) (DQ <'\'( '> ($ Id.VSub_Number 1) <' )\''>)}
                {(DQ ($ Id.VSub_Number 2))}
                {(DQ <'eval \'('> ($ Id.VSub_Number 1) <')\''>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<all>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <all_head>
      name: all_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Tests that \'set -e\' works correctly'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <all_body>
      name: all_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'count='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'count='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'failcount='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'failcount='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'failcount='> name:failcount)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; exit 1; echo ERR$?); echo OK$?'>)} {(SQ <OK1>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; exit 1; echo ERR$?); echo OK$?'>)} {(SQ <OK1>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; false; echo ERR$?); echo OK$?'>)} {(SQ <OK1>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; false; echo ERR$?); echo OK$?'>)} {(SQ <OK1>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; /nonexistent; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; /nonexistent; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; nonexistent-program-on-path; echo ERR); echo OK'>)}
                {(SQ <OK>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; nonexistent-program-on-path; echo ERR); echo OK'>)}
                {(SQ <OK>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'f() { false; }; (set -e; f; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'f() { false; }; (set -e; f; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'f() { return 1; }; (set -e; f; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'f() { return 1; }; (set -e; f; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'f() { false; echo ERR; }; (set -e; f); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'f() { false; echo ERR; }; (set -e; f); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'f() { set +e; false; echo OK; }; (set -e; f); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'f() { set +e; false; echo OK; }; (set -e; f); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; (set +e; false; echo OK; false); echo OK)'>)}
                {(SQ <OK>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; (set +e; false; echo OK; false); echo OK)'>)}
                {(SQ <OK>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; (false; echo ERR)); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; false || true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; false || true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; false && true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; false && true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; false || false; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; true && false; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; false || false; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; true && false; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; false && false; echo ERR); echo OK'>)} {(SQ <'ERR OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; false && false; echo ERR); echo OK'>)} {(SQ <'ERR OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; true || false; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; true || false; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; true || true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; true && true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; true || true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; true && true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; while false; do :; done; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; if false; then :; fi; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; until [ "$t" = 1 ]; do t=1; done; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; while false; do :; done; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; if false; then :; fi; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; until [ "$t" = 1 ]; do t=1; done; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; ! false; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; ! true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; ! false; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; ! true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; (false && true); echo OK); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; (false && true); echo OK); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; false | true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; false | true; echo OK); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; true | false; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; true | false; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; while true | false; do :; done; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; if true | false; then :; fi; echo OK); echo OK'>)}
                {(SQ <'OK OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'echo OK; (set -e; false); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'echo OK; (set -e; false); echo OK'>)} {(SQ <'OK OK'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; (false; echo ERR); echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; (false; echo ERR); echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; echo ERR `false`; echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; echo ERR $(false); echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; echo ERR `exit 3`; echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [
                {<dcheck>}
                {(SQ <'(set -e; echo ERR $(exit 3); echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; x=`false`; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; x=$(false); echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; x=`exit 3`; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; x=$(exit 3); echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; echo ERR `false`; echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; echo ERR $(false); echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; echo ERR `exit 3`; echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [
                {<echeck>}
                {(SQ <'(set -e; echo ERR $(exit 3); echo ERR); echo OK'>)}
                {(SQ <'ERR ERR OK'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; x=`false`; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; x=$(false); echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; x=`exit 3`; echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; x=$(exit 3); echo ERR); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <dcheck>
              more_env: []
              words: [{<dcheck>} {(SQ <'(set -e; shift && echo OK); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echeck>
              more_env: []
              words: [{<echeck>} {(SQ <'(set -e; shift && echo OK); echo OK'>)} {(SQ <OK>)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ <x> ($ Id.VSub_DollarName SH_FAILS))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<x>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <printf>
                      more_env: []
                      words: [
                        {<printf>}
                        {(SQ <'%-56s %-8s  %s\\n'>)}
                        {(DQ <Expression>)}
                        {(DQ <Result>)}
                        {(DQ <'Should be'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName SH_FAILS))}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <atf_fail>
                      more_env: []
                      words: [
                        {<atf_fail>}
                        {
                          (DQ ($ Id.VSub_DollarName failcount) <' of '> ($ Id.VSub_DollarName count) 
                            <' failed cases'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1690 1707]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <atf_pass>
                  more_env: []
                  words: [{<atf_pass>}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <atf_init_test_cases>
      name: atf_init_test_cases
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<all>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)