(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: <oneline>
      name: oneline
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'q='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'q='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'q='> name:q)
                  op: assign_op.Equal
                  rhs: {(DQ <'\''>)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {($ Id.VSub_Pound '#')} {<-eq>} {<4>}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'q='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'q='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'q='> name:q)
                      op: assign_op.Equal
                      rhs: {(DQ )}
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'v='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'v='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'v='> name:v)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <printf>
                            more_env: []
                            words: [
                              {<printf>}
                              {(SQ <'\\\\%3.3o'>)}
                              {
                                (word_part.ArithSub
                                  left: <Id.Left_DollarDParen '$(('>
                                  anode: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Amp
                                      left: {($ Id.VSub_Number 2)}
                                      right: {<Id.Lit_Digits 0> <Id.Lit_ArithVarLike xFF>}
                                    )
                                  right: <Id.Right_DollarDParen _>
                                )
                              }
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [{<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_Number 1))}]
              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 '['>}
                                {($ Id.VSub_Number 2)}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<39>}
                                {<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>}
                        {(DQ <'%sprefix'> (${ Id.VSub_Name v) <'suffix%s'>)}
                        {(DQ ($ Id.VSub_DollarName q))}
                        {(DQ ($ Id.VSub_DollarName q))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [160 174]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<-ne>}
                                {<4>}
                                {<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>}
                        {<Id.Lit_Other '%'> <s>}
                        {<prefix> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\''>
                            ch: '\''
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <suffix>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [196 209]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {<Id.Lit_Other '%'> <s>}
                    {<prefix> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                      <suffix>
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [{<printf>} {(DQ <'%s'> <Id.Lit_BadBackslash '\\'> <n>)} {(DQ ($ Id.VSub_Number 3))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <mkdata>
      name: mkdata
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'quote='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'quote='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'quote='> name:quote)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'pfx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {($ Id.VSub_Pound '#')}
                        {<-gt>}
                        {<0>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-q>
                          pattern: (pat.Words words:[{<-q>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'quote='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'quote='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'quote='>
                                          name: quote
                                        )
                                      op: assign_op.Equal
                                      rhs: {<no>}
                                    )
                                  ]
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <shift>
                                  more_env: []
                                  words: [{<shift>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'pfx='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'pfx='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name pfx) 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name pfx>
                                  var_name: pfx
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VTest_ColonPlus _>
                                      arg_word: {<' '>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) (${ Id.VSub_Number 1)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sfx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sfx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sfx='> name:sfx)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {($ Id.VSub_Pound '#')}
                        {<-gt>}
                        {<0>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'sfx='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'sfx='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sfx='> name:sfx)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name sfx) 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name sfx>
                                  var_name: sfx
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op: <Id.VTest_ColonPlus _>
                                      arg_word: {<' '>}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                ) (${ Id.VSub_Number 1)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {($ Id.VSub_DollarName i)}
                        {<-lt>}
                        {<256>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <oneline>
                      more_env: []
                      words: [
                        {<oneline>}
                        {(DQ (${ Id.VSub_Name pfx))}
                        {(DQ ($ Id.VSub_DollarName i))}
                        {(DQ (${ Id.VSub_Name sfx))}
                        {($ Id.VSub_DollarName quote)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: {($ Id.VSub_DollarName i)}
                                    right: {<Id.Lit_Digits 1>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<aaa>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <aaa_head>
      name: aaa_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [
                {<atf_set>}
                {(DQ <descr>)}
                {(DQ <'Check that this test has a hope of working. '>)}
                {(DQ <'Just give up on these tests if the aaa test fails'>) <.>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <aaa_body>
      name: aaa_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <oneline>
                  more_env: []
                  words: [{<oneline>} {(DQ <'echo '>)} {<9>} {(SQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<inline> <Id.Lit_Colon ':'> (SQ <'prefix\\tsuffix\\n'>)}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <oneline>
                  more_env: []
                  words: [{<oneline>} {(DQ <'VAR='>)} {<65>} {(SQ <'; echo "${#VAR}:${VAR}"'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<inline> <Id.Lit_Colon ':'> (SQ <'13:prefixAsuffix\\n'>)}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <oneline>
                  more_env: []
                  words: [{<oneline>} {(DQ <'VAR='>)} {<1>} {(SQ <'; echo "${#VAR}:${VAR}"'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<inline> <Id.Lit_Colon ':'> (SQ <'13:prefix\x01suffix\\n'>)}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <oneline>
                  more_env: []
                  words: [{<oneline>} {(DQ <'VAR='>)} {<10>} {(SQ <'; echo "${#VAR}:${VAR}"'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<inline> <Id.Lit_Colon ':'> (SQ <'13:prefix\\nsuffix\\n'>)}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<prefix> <Id.Lit_Star '*'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <oneline>
                  more_env: []
                  words: [{<oneline>} {(DQ <'echo hello >'>)} {<45>} {(DQ )}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<empty>}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ <prefix-suffix>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'failed to create prefix-suffix (45)'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-s>} {(DQ <prefix-suffix>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'no data in prefix-suffix (45)'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {<prefix-suffix>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                    {<Id.Lit_Equals '='>}
                    {(DQ <hello>)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'incorrect data in prefix-suffix (45)'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<assignment>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <assignment_head>
      name: assignment_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Check that all chars can be assigned to vars'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <assignment_body>
      name: assignment_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<grep>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<results>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <mkdata>
                  more_env: []
                  words: [{<mkdata>} {(DQ <'VAR='>)} {<-->} {(SQ <'; echo ${#VAR}'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<save> <Id.Lit_Colon ':'> <results>}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<-z>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <grep>
                            more_env: []
                            words: [{<grep>} {<-v>} {(DQ <'^13'> <Id.Lit_Dollar '$'>)} {<results>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [
                    {<atf_fail>}
                    {
                      (DQ <'Incorrect lengths: '> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <grep>
                              more_env: []
                              words: [{<grep>} {<-nv>} {(SQ <'^13$'>)} {<results>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<cmdline>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <cmdline_head>
      name: cmdline_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Check vars containing all chars can be used'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <cmdline_body>
      name: cmdline_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<wc>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<results>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <mkdata>
                  more_env: []
                  words: [{<mkdata>} {(DQ <'VAR='>)} {<-->} {(SQ <'; echo "${VAR}"'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<save> <Id.Lit_Colon ':'> <results>}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <wc>
                            more_env: []
                            words: [{<wc>} {<-l>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {<results>}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {<256>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'incorrect line count in results'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <wc>
                            more_env: []
                            words: [{<wc>} {<-c>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {<results>}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Star
                            left: {<Id.Lit_Digits 255>}
                            right: {<Id.Lit_Digits 14>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'incorrect character count in results'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<redirect>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <redirect_head>
      name: redirect_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Check vars containing all chars can be used'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <redirect_body>
      name: redirect_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<ls>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<wc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<mkdir>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rmdir>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'nl='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'nl='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
                  op: assign_op.Equal
                  rhs: {(SQ <'\n'>)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<prefix> <Id.Lit_Star '*'>} {<suffix>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<prefix>}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <mkdata>
                  more_env: []
                  words: [{<mkdata>} {(DQ <'VAR='>)} {<-->} {(SQ <'; echo "${VAR}" > "${VAR}"'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<empty>}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ <'prefix/suffix'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'Failed to create file in subdirectory'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <wc>
                            more_env: []
                            words: [{<wc>} {<-l>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {(DQ <'prefix/suffix'>)}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {<1>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'Not exactly one line in prefix/suffix file'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<empty>}
                {<rm>}
                {(DQ <'prefix/suffix'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<empty>}
                {<rmdir>}
                {(DQ <prefix>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ <prefix> (${ Id.VSub_Name nl) <suffix>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'Failed to create file with newline in its name'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <wc>
                            more_env: []
                            words: [{<wc>} {<-l>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {(DQ <prefix> (${ Id.VSub_Name nl) <suffix>)}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {<2>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'NewLine file did not contain embedded newline'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<empty>}
                {<rm>}
                {(DQ <prefix> (${ Id.VSub_Name nl) <suffix>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <ls>
                                more_env: []
                                words: [{<ls>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <wc>
                                more_env: []
                                words: [{<wc>} {<-l>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {<253>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [
                    {<atf_fail>}
                    {
                      (DQ <'Did not create all expected files: wanted: 253, found ('> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <ls>
                                  more_env: []
                                  words: [{<ls>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <wc>
                                  more_env: []
                                  words: [{<wc>} {<-l>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        ) <')'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <ls>
                                more_env: []
                                words: [{<ls>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <wc>
                                more_env: []
                                words: [{<wc>} {<-c>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Star
                            left: {<Id.Lit_Digits 253>}
                            right: {<Id.Lit_Digits 14>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'File names do not appear to be as expected'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <atf_test_case>
      more_env: []
      words: [{<atf_test_case>} {<read>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <read_head>
      name: read_head
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_set>
              more_env: []
              words: [{<atf_set>} {(DQ <descr>)} {(DQ <'Check vars containing all chars can be used'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <read_body>
      name: read_body
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<ls>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<wc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rm>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<mkdir>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_require_prog>
              more_env: []
              words: [{<atf_require_prog>} {<rmdir>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'nl='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'nl='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
                  op: assign_op.Equal
                  rhs: {(SQ <'\n'>)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {<prefix> <Id.Lit_Star '*'>} {<suffix>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [{<Id.Lit_Colon ':'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<prefix>}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <mkdata>
                  more_env: []
                  words: [{<mkdata>} {<-q>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_check>
                  more_env: []
                  words: [
                    {<atf_check>}
                    {<-s>}
                    {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                    {<-o>}
                    {<empty>}
                    {<-e>}
                    {<empty>}
                    {(${ Id.VSub_Name TEST_SH)}
                    {<-c>}
                    {
                      (SQ <'\n'> <'\t\t\twhile read -r VAR\n'> <'\t\t\tdo\n'> 
                        <'\t\t\t\t# skip the mess made by embedded newline\n'> <'\t\t\t\tcase "${VAR}" in\n'> <'\t\t\t\t(prefix | suffix)\tcontinue;;\n'> <'\t\t\t\tesac\n'> 
                        <'\t\t\t\techo "${VAR}" > "${VAR}"\n'> <'\t\t\tdone'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-f>} {(DQ <'prefix/suffix'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'Failed to create file in subdirectory'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <wc>
                            more_env: []
                            words: [{<wc>} {<-l>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {(DQ <'prefix/suffix'>)}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {<1>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'Not exactly one line in prefix/suffix file'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<empty>}
                {<rm>}
                {(DQ <'prefix/suffix'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<empty>}
                {<-e>}
                {<empty>}
                {<rmdir>}
                {(DQ <prefix>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <ls>
                                more_env: []
                                words: [{<ls>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <wc>
                                more_env: []
                                words: [{<wc>} {<-l>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {<253>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [
                    {<atf_fail>}
                    {
                      (DQ <'Did not create all expected files: wanted: 253, found ('> 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  blame_tok: <ls>
                                  more_env: []
                                  words: [{<ls>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <wc>
                                  more_env: []
                                  words: [{<wc>} {<-l>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          right: <Id.Eof_RParen _>
                        ) <')'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <ls>
                                more_env: []
                                words: [{<ls>}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <wc>
                                more_env: []
                                words: [{<wc>} {<-c>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-eq>}
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Star
                            left: {<Id.Lit_Digits 253>}
                            right: {<Id.Lit_Digits 14>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <atf_fail>
                  more_env: []
                  words: [{<atf_fail>} {(DQ <'File names do not appear to be as expected'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          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>} {<aaa>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<assignment>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<cmdline>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<redirect>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {<read>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)