(CommandList
  children: [
    (FuncDef
      name: test_require
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(-i)} {(require_me)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:require_me) op:Equal rhs:{(0)} spids:[21])]
              spids: [21]
            )
            (C {(require)} {(./require_me.sh)})
            (C {(assertEquals)} {(DQ ("Should have been required"))} {(1)} {($ VSub_Name "$require_me")})
            (C {(typeset)} {(-i)} {(requires_size)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:requires_size)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name _Dbg_requires>
                        prefix_op: VSub_Pound
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [50 56]
                      )
                    }
                  spids: [49]
                )
              ]
              spids: [49]
            )
            (C {(require)} {(./require_me.sh)})
            (C {(assertEquals)} {(DQ ("Should not have required a second time"))} {(1)} 
              {($ VSub_Name "$require_me")}
            )
            (C {(assertEquals)} {($ VSub_Name "$requires_size")} 
              {
                (BracedVarSub
                  token: <VSub_Name _Dbg_requires>
                  prefix_op: VSub_Pound
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [79 85]
                )
              }
            )
            (C {(require)} {(require_me.sh)})
            (C {(assertEquals)} {(DQ ("Should not have required under another name"))} {(1)} 
              {($ VSub_Name "$require_me")}
            )
            (C {(assertEquals)} {($ VSub_Name "$requires_size")} 
              {
                (BracedVarSub
                  token: <VSub_Name _Dbg_requires>
                  prefix_op: VSub_Pound
                  bracket_op: (WholeArray op_id:Lit_At)
                  spids: [108 114]
                )
              }
            )
          ]
          spids: [11]
        )
      spids: [7 10]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:abs_top_srcdir)
          op: Equal
          rhs: {(/src/external-vcs/sourceforge/bashdb)}
          spids: [119]
        )
      ]
      spids: [119]
    )
    (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: [126 130]
              ) (/)
            }
          spids: [125]
        )
      ]
      spids: [125]
    )
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (test/unit/helper.sh)})
    (C {(.)} {(${ VSub_Name abs_top_srcdir) (init/require.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
    )
  ]
)