(command.CommandList
  children: [
    (command.ShFunction
      name: do_test
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:file1)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<_Dbg_expand_filename>} {($ Id.VSub_Number '$1')})
                      )
                    }
                  spids: [15]
                )
              ]
            )
            (C {<assertTrue>} {(SQ <'Should not have an error expanding $1'>)} 
              {(DQ ($ Id.VSub_QMark '$?'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:file2)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<_Dbg_expand_filename>} {($ Id.VSub_Number '$2')})
                      )
                    }
                  spids: [34]
                )
              ]
            )
            (C {<assertEquals>} {(DQ ($ Id.VSub_DollarName '$file1'))} 
              {(DQ ($ Id.VSub_DollarName '$file2'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: test_pre_expand_filename
      body: 
        (BraceGroup
          children: [
            (C {<do_test>} {<test-pre>} {<'./test-pre'>})
            (C {<do_test>} {(DQ ($ Id.VSub_DollarName '$PWD') <'/'>)} {(DQ (${ Id.VSub_Name PWD) <'/.'>)})
            (C {<do_test>} {<'/tmp'>} {<'/tmp'>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:file1)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<echo>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>)})
                      )
                    }
                  spids: [91]
                )
              ]
            )
            (C {<do_test>} {(DQ ($ Id.VSub_DollarName '$file1'))} 
              {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: test_pre_do_show_version
      body: 
        (BraceGroup
          children: [
            (C {<typeset>} {<Id.Lit_VarLike '_Dbg_debugger_name='> (SQ <bashdb>)})
            (C {<typeset>} {<Id.Lit_VarLike '_Dbg_release='> (SQ <4.4-0.92>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:version_string)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [{<_Dbg_do_show_version>}]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<1>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [142]
                )
              ]
            )
            (C {<assertEquals>} {(DQ <'bashdb, release 4.4-0.92'>)} 
              {(DQ ($ Id.VSub_DollarName '$version_string'))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:abs_top_srcdir)
          op: assign_op.Equal
          rhs: {<'/src/external-vcs/sourceforge/bashdb'>}
          spids: [163]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:abs_top_srcdir)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name abs_top_srcdir>
                suffix_op: (suffix_op.Unary tok:<Id.VOp1_DPercent '%%'> arg_word:{<Id.Lit_Slash '/'>})
              ) <'/'>
            }
          spids: [169]
        )
      ]
    )
    (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'test/unit/helper.sh'>})
    (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'/init/pre.sh'>})
    (C {<set>} {<-->})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.DBracket
          expr: 
            (bool_expr.Binary
              op_id: Id.BoolBinary_GlobDEqual
              left: {($ Id.VSub_Number '$0')}
              right: {(${ Id.VSub_Name BASH_SOURCE)}
            )
        )
        (C {<.>} {(${ Id.VSub_Name shunit_file)})
      ]
    )
  ]
)