#!/bin/bash # -*- shell-script -*- proc test_require { typeset -i require_me global require_me := '0' require ./require_me.sh assertEquals "Should have been required" 1 $require_me typeset -i requires_size global requires_size := $(#_Dbg_requires[@]) require ./require_me.sh assertEquals "Should not have required a second time" 1 $require_me assertEquals $requires_size $(#_Dbg_requires[@]) require require_me.sh assertEquals "Should not have required under another name" 1 $require_me assertEquals $requires_size $(#_Dbg_requires[@]) } global abs_top_srcdir := '/src/external-vcs/sourceforge/bashdb' # Make sure $abs_top_srcdir has a trailing slash global abs_top_srcdir := "$(abs_top_srcdir%%/)/" source ${abs_top_srcdir}test/unit/helper.sh source ${abs_top_srcdir}init/require.sh set -- # reset $# so shunit2 doesn't get confused. [[ $0 == ${BASH_SOURCE} ]] && source ${shunit_file} (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: 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: 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: 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: 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 ) ] )