(command.CommandList children: [ (command.ShFunction name: test_require body: (BraceGroup children: [ (C {<typeset>} {<-i>} {<require_me>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:require_me) op: assign_op.Equal rhs: {<0>} spids: [21] ) ] ) (C {<require>} {<'./require_me.sh'>}) (C {<assertEquals>} {(DQ <'Should have been required'>)} {<1>} {($ Id.VSub_DollarName '$require_me')} ) (C {<typeset>} {<-i>} {<requires_size>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:requires_size) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name _Dbg_requires> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [49] ) ] ) (C {<require>} {<'./require_me.sh'>}) (C {<assertEquals>} {(DQ <'Should not have required a second time'>)} {<1>} {($ Id.VSub_DollarName '$require_me')} ) (C {<assertEquals>} {($ Id.VSub_DollarName '$requires_size')} { (braced_var_sub token: <Id.VSub_Name _Dbg_requires> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) (C {<require>} {<require_me.sh>}) (C {<assertEquals>} {(DQ <'Should not have required under another name'>)} {<1>} {($ Id.VSub_DollarName '$require_me')} ) (C {<assertEquals>} {($ Id.VSub_DollarName '$requires_size')} { (braced_var_sub token: <Id.VSub_Name _Dbg_requires> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ] ) ) (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: [119] ) ] ) (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: [125] ) ] ) (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'test/unit/helper.sh'>}) (C {<.>} {(${ Id.VSub_Name abs_top_srcdir) <'init/require.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)}) ] ) ] )