(CommandList
  children: [
    (FuncDef
      name: test_preserve_set_opts
      body: 
        (BraceGroup
          children: [
            (C {(set)} {(-u)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:old_opts)
                  op: Equal
                  rhs: {($ VSub_Hyphen "$-")}
                  spids: [18]
                )
              ]
              spids: [18]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_dbg_opts_test)
                  op: Equal
                  rhs: {(SQ )}
                  spids: [22]
                )
              ]
              spids: [22]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_f
                              child: {($ VSub_Name "$top_builddir") (/init/opts.sh)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libdir)
                          op: Equal
                          rhs: {(${ VSub_Name top_builddir)}
                          spids: [55]
                        )
                      ]
                      spids: [55]
                    )
                  ]
                  spids: [-1 52]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:libdir)
                      op: Equal
                      rhs: {(${ VSub_Name prefix) (/share/bashdb)}
                      spids: [64]
                    )
                  ]
                  spids: [64]
                )
              ]
              spids: [61 71]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_f
                              child: {($ VSub_Name "$libdir") (/init/opts.sh)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(typeset)} {(Lit_VarLike "_Dbg_debugger_name=") (SQ <bashdb>)})
                    (C {(typeset)} {(Lit_VarLike "_Dbg_release=") (SQ <4.4-0.92>)})
                    (C {(.)} {(${ VSub_Name top_builddir) (/bashdb-trace)} {(-L)} 
                      {($ VSub_Name "$libdir")}
                    )
                    (C {(assertEquals)} {($ VSub_Name "$old_opts")} {($ VSub_Hyphen "$-")})
                  ]
                  spids: [-1 87]
                )
              ]
              else_action: [
                (C {(echo)} {(SQ <"Skipping test - building outside of source complications">)})
              ]
              spids: [133 143]
            )
            (Subshell
              child: 
                (C {(.)} {(${ VSub_Name top_builddir) (/bashdb-trace)} {(-L)} 
                  {($ VSub_Name "$libdir") (/init/opts.sh)}
                )
              spids: [147 159]
            )
            (C {(assertEquals)} {($ VSub_QMark "$?")} {(1)})
            (C {(set)} {(Lit_Other "+") (u)})
          ]
          spids: [10]
        )
      spids: [6 9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:prefix) op:Equal rhs:{(/usr/share)} spids:[177])]
      spids: [177]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:top_builddir)
          op: Equal
          rhs: {(/src/external-vcs/sourceforge/bashdb)}
          spids: [180]
        )
      ]
      spids: [180]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: {(/src/external-vcs/sourceforge/bashdb)}
          spids: [183]
        )
      ]
      spids: [183]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name abs_top_srcdir>
                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(Lit_Slash /)})
                spids: [190 194]
              ) (/)
            }
          spids: [189]
        )
      ]
      spids: [189]
    )
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (test/unit/helper.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/filecache.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/sig.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/lib/help.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (/command/trace.sh)})
    (C {(set)} {(--)})
    (AndOr
      children: [
        (DBracket
          expr: 
            (BoolBinary
              op_id: BoolBinary_GlobDEqual
              left: {($ VSub_Number "$0")}
              right: {(${ VSub_Name BASH_SOURCE)}
            )
        )
        (C {(.)} {(${ VSub_Name shunit_file)})
      ]
      op_id: Op_DAmp
    )
  ]
)