(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SRCDIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SRCDIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCDIR='> name:SRCDIR)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <atf_get_srcdir>
                    more_env: []
                    words: [{<atf_get_srcdir>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <check>
      name: check
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <local>
                  more_env: []
                  words: [{<local>} {<Id.Lit_VarLike 'tc='> (${ Id.VSub_Number 1)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <local>
                  more_env: []
                  words: [{<local>} {<Id.Lit_VarLike 'xo_fmt='> (${ Id.VSub_Number 1)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'err_file='> 
                  (DQ (${ Id.VSub_Name SRCDIR) <'/'> (${ Id.VSub_Name tc) 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name xo_fmt>
                      var_name: xo_fmt
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_ColonPlus _>
                          arg_word: {<.> (${ Id.VSub_Name xo_fmt)}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    ) <.err>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-s>}
                    {(DQ (${ Id.VSub_Name err_file))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'err_flag='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'err_flag='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'err_flag='> name:err_flag)
                      op: assign_op.Equal
                      rhs: {(DQ <'-e file:'> (${ Id.VSub_Name err_file))}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'out_file='> 
                  (DQ (${ Id.VSub_Name SRCDIR) <'/'> (${ Id.VSub_Name tc) 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name xo_fmt>
                      var_name: xo_fmt
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VTest_ColonPlus _>
                          arg_word: {<.> (${ Id.VSub_Name xo_fmt)}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    ) <.out>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-s>}
                    {(DQ (${ Id.VSub_Name out_file))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'out_flag='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'out_flag='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'out_flag='> name:out_flag)
                      op: assign_op.Equal
                      rhs: {(DQ <'-o file:'> (${ Id.VSub_Name out_file))}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (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 xo_fmt))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <E>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'libxo_options='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'libxo_options='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'libxo_options='>
                              name: libxo_options
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <' warn,encoder=test'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [211 228]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'libxo_options='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'libxo_options='>
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'libxo_options='>
                          name: libxo_options
                        )
                      op: assign_op.Equal
                      rhs: {(DQ <':W'> (${ Id.VSub_Name xo_fmt))}
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-e>}
                {<file> <Id.Lit_Colon ':'> (${ Id.VSub_Name err_file)}
                {<-o>}
                {<file> <Id.Lit_Colon ':'> (${ Id.VSub_Name out_file)}
                {<env>}
                {<Id.Lit_VarLike 'LC_ALL='> <en_US.UTF-8>}
                {<Id.Lit_VarLike 'TZ='> (DQ <EST>)}
                {(DQ (${ Id.VSub_Name SRCDIR) <'/'> (${ Id.VSub_Name tc))}
                {<--libxo> (${ Id.VSub_Name libxo_options)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <add_testcase>
      name: add_testcase
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'tc='> (${ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<tc_escaped>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'oldIFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'oldIFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldIFS='> name:oldIFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <.>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<-->} {($ Id.VSub_DollarName tc)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tc_script='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tc_script='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tc_script='> name:tc_script)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {($ Id.VSub_Pound '#')}
                    {<-eq>}
                    {<3>}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'xo_fmt='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'xo_fmt='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xo_fmt='> name:xo_fmt)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Number 2)}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName oldIFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tc_escaped='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tc_escaped='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tc_escaped='> name:tc_escaped)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (${ Id.VSub_Name tc_script) 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name xo_fmt>
                          var_name: xo_fmt
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_ColonPlus _>
                              arg_word: {<__> (${ Id.VSub_Name xo_fmt)}
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <atf_test_case>
              more_env: []
              words: [{<atf_test_case>} {(${ Id.VSub_Name tc_escaped)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (DQ (${ Id.VSub_Name tc_escaped) <'_body() { check '> (${ Id.VSub_Name tc_script) 
                    <' '> (${ Id.VSub_Name xo_fmt) <'; }'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {(${ Id.VSub_Name tc_escaped)}]
              redirects: []
              do_fork: T
            )
          ]
          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.ForEach
              keyword: <Id.KW_For for>
              iter_names: [path]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <find>
                            more_env: []
                            words: [
                              {<find>}
                              {<-Es>}
                              {(DQ (${ Id.VSub_Name SRCDIR))}
                              {<-name>}
                              {(SQ <'*.out'>)}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <add_testcase>
                      more_env: []
                      words: [
                        {<add_testcase>}
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name path>
                            var_name: path
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VOp1_DPound '##'>
                                arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)