1########################################################################## 2# TEPAM - Tcl's Enhanced Procedure and Argument Manager 3########################################################################## 4# 5# proc_subproc.test: 6# This file is part of the enhanced procedure and argument manager's regression 7# test. It validates the declaration and call of the procedure sub commands. 8# 9# Copyright (C) 2009, 2010 Andreas Drollinger 10# 11# RCS: @(#) $Id: proc_subproc.test,v 1.1 2010/02/11 21:50:55 droll Exp $ 12########################################################################## 13# See the file "license.terms" for information on usage and redistribution 14# of this file, and for a DISCLAIMER OF ALL WARRANTIES. 15########################################################################## 16 17source [file join \ 18 [file dirname [file dirname [file join [pwd] [info script]]]] \ 19 devtools testutilities.tcl] 20 21testsNeedTcl 8.3 22testsNeedTcltest 1.0 23 24catch {namespace delete ::tepam} 25testing { 26 useLocal tepam.tcl tepam 27} 28 29######## Main procedure and sub procedures, top-down declaration ######## 30 31 # Declaration 32 test tepam-sp.dcl_td.dcl.1 "tepam, sub procedure top-down declaration - main procedure declaration" \ 33 -body {tepam::procedure {MainProc1} {} {return Proc1}} \ 34 -result "" -output "" 35 36 test tepam-sp.dcl_td.dcl.2 "tepam, sub procedure top-down declaration - first sub procedure declaration" \ 37 -body {tepam::procedure {MainProc1 SubProc1} {} {return Proc11}} \ 38 -result "" -output "" 39 40 test tepam-sp.dcl_td.dcl.3 "tepam, sub procedure top-down declaration - second sub procedure declaration" \ 41 -body {tepam::procedure {MainProc1 SubProc2} {} {return Proc12}} \ 42 -result "" -output "" 43 44 test tepam-sp.dcl_td.dcl.4 "tepam, sub procedure top-down declaration - sub sub procedure declaration" \ 45 -body {tepam::procedure {MainProc1 SubProc2 SubProc22} {} {return Proc122}} \ 46 -result "" -output "" 47 48 # Help 49 test tepam-sp.dcl_td.hlp.1 "tepam, sub procedure top-down declaration - main procedure help" \ 50 -body {MainProc1 -help} \ 51 -result "" -output {SYNOPSIS\s+MainProc1\s+MainProc1 SubProc1\s+MainProc1 SubProc2\s+MainProc1 SubProc2 SubProc22\s*$} -match regexp 52 53 test tepam-sp.dcl_td.hlp.2 "tepam, sub procedure top-down declaration - first sub procedure help" \ 54 -body {MainProc1 SubProc1 -help} \ 55 -result "" -output {SYNOPSIS\s+MainProc1 SubProc1\s+$} -match regexp 56 57 test tepam-sp.dcl_td.hlp.3 "tepam, sub procedure top-down declaration - second sub procedure help" \ 58 -body {MainProc1 SubProc2 -help} \ 59 -result "" -output {SYNOPSIS\s+MainProc1 SubProc2\s+MainProc1 SubProc2 SubProc22\s*$} -match regexp 60 61 test tepam-sp.dcl_td.hlp.4 "tepam, sub procedure top-down declaration - sub sub procedure help" \ 62 -body {MainProc1 SubProc2 SubProc22 -help} \ 63 -result "" -output {SYNOPSIS\s+MainProc1 SubProc2 SubProc22\s+$} -match regexp 64 65 # Execution 66 test tepam-sp.dcl_td.exe.1 "tepam, sub procedure top-down declaration - main procedure execution" \ 67 -body {MainProc1} \ 68 -result "Proc1" -output "" -match exact 69 70 test tepam-sp.dcl_td.exe.2 "tepam, sub procedure top-down declaration - first sub procedure execution" \ 71 -body {MainProc1 SubProc1} \ 72 -result "Proc11" -output "" -match exact 73 74 test tepam-sp.dcl_td.exe.3 "tepam, sub procedure top-down declaration - second sub procedure execution" \ 75 -body {MainProc1 SubProc2} \ 76 -result "Proc12" -output "" -match exact 77 78 test tepam-sp.dcl_td.exe.4 "tepam, sub procedure top-down declaration - sub sub procedure execution" \ 79 -body {MainProc1 SubProc2 SubProc22} \ 80 -result "Proc122" -output "" -match exact 81 82######## Main procedure and sub procedures, buttom-up declaration ######## 83 84 # Declaration 85 test tepam-sp.dcl_bu.dcl.1 "tepam, sub procedure buttom-up declaration - sub sub procedure declaration" \ 86 -body {tepam::procedure {MainProc2 SubProc2 SubProc22} {} {return Proc222}} \ 87 -result "" -output "" 88 89 test tepam-sp.dcl_bu.dcl.2 "tepam, sub procedure buttom-up declaration - second sub procedure declaration" \ 90 -body {tepam::procedure {MainProc2 SubProc2} {} {return Proc22}} \ 91 -result "" -output "" 92 93 test tepam-sp.dcl_bu.dcl.3 "tepam, sub procedure buttom-up declaration - first sub procedure declaration" \ 94 -body {tepam::procedure {MainProc2 SubProc1} {} {return Proc21}} \ 95 -result "" -output "" 96 97 test tepam-sp.dcl_bu.dcl.4 "tepam, sub procedure buttom-up declaration - main procedure declaration" \ 98 -body {tepam::procedure {MainProc2} {} {return Proc2}} \ 99 -result "" -output "" 100 101 # Help 102 test tepam-sp.dcl_bu.hlp.1 "tepam, sub procedure buttom-down declaration - main procedure help" \ 103 -body {MainProc2 -help} \ 104 -result "" -output {SYNOPSIS\s+MainProc2\s+MainProc2 SubProc1\s+MainProc2 SubProc2\s+MainProc2 SubProc2 SubProc22\s*$} -match regexp 105 106 test tepam-sp.dcl_bu.hlp.2 "tepam, sub procedure buttom-down declaration - first sub procedure help" \ 107 -body {MainProc2 SubProc1 -help} \ 108 -result "" -output {SYNOPSIS\s+MainProc2 SubProc1\s+$} -match regexp 109 110 test tepam-sp.dcl_bu.hlp.3 "tepam, sub procedure buttom-down declaration - second sub procedure help" \ 111 -body {MainProc2 SubProc2 -help} \ 112 -result "" -output {SYNOPSIS\s+MainProc2 SubProc2\s+MainProc2 SubProc2 SubProc22\s*$} -match regexp 113 114 test tepam-sp.dcl_bu.hlp.4 "tepam, sub procedure buttom-down declaration - sub sub procedure help" \ 115 -body {MainProc2 SubProc2 SubProc22 -help} \ 116 -result "" -output {SYNOPSIS\s+MainProc2 SubProc2 SubProc22\s+$} -match regexp 117 118 # Execution 119 test tepam-sp.dcl_bu.exe.1 "tepam, sub procedure buttom-up declaration - main procedure execution" \ 120 -body {MainProc2} \ 121 -result "Proc2" -output "" -match exact 122 123 test tepam-sp.dcl_bu.exe.2 "tepam, sub procedure buttom-up declaration - first sub procedure execution" \ 124 -body {MainProc2 SubProc1} \ 125 -result "Proc21" -output "" -match exact 126 127 test tepam-sp.dcl_bu.exe.3 "tepam, sub procedure buttom-up declaration - second sub procedure execution" \ 128 -body {MainProc2 SubProc2} \ 129 -result "Proc22" -output "" -match exact 130 131 test tepam-sp.dcl_bu.exe.4 "tepam, sub procedure buttom-up declaration - sub sub procedure execution" \ 132 -body {MainProc2 SubProc2 SubProc22} \ 133 -result "Proc222" -output "" -match exact 134 135######## Only sub procedures (no main procedure) ######## 136 137 # Declaration 138 test tepam-sp.dcl_sc.dcl.1 "tepam, sub procedure without main procedure - first sub procedure declaration" \ 139 -body {tepam::procedure {MainProc3 SubProc1} {} {return Proc31}} \ 140 -result "" -output "" 141 142 test tepam-sp.dcl_sc.dcl.2 "tepam, sub procedure without main procedure - second sub procedure declaration" \ 143 -body {tepam::procedure {MainProc3 SubProc2} {} {return Proc32}} \ 144 -result "" -output "" 145 146 test tepam-sp.dcl_sc.dcl.3 "tepam, sub procedure without main procedure - sub sub procedure declaration" \ 147 -body {tepam::procedure {MainProc3 SubProc2 SubProc22} {} {return Proc322}} \ 148 -result "" -output "" 149 150 # Help 151 test tepam-sp.dcl_sc.hlp.1 "tepam, sub procedure without main procedure - main procedure help" \ 152 -body {MainProc3 -help} \ 153 -result "" -output {SYNOPSIS\s+MainProc3 SubProc1\s+MainProc3 SubProc2\s+MainProc3 SubProc2 SubProc22\s*$} -match regexp 154 155 test tepam-sp.dcl_sc.hlp.2 "tepam, sub procedure without main procedure - first sub procedure help" \ 156 -body {MainProc3 SubProc1 -help} \ 157 -result "" -output {SYNOPSIS\s+MainProc3 SubProc1\s+$} -match regexp 158 159 test tepam-sp.dcl_sc.hlp.3 "tepam, sub procedure without main procedure - second sub procedure help" \ 160 -body {MainProc3 SubProc2 -help} \ 161 -result "" -output {SYNOPSIS\s+MainProc3 SubProc2\s+MainProc3 SubProc2 SubProc22\s*$} -match regexp 162 163 test tepam-sp.dcl_sc.hlp.4 "tepam, sub procedure without main procedure - sub sub procedure help" \ 164 -body {MainProc3 SubProc2 SubProc22 -help} \ 165 -result "" -output {SYNOPSIS\s+MainProc3 SubProc2 SubProc22\s+$} -match regexp 166 167 # Execution 168 test tepam-sp.dcl_sc.exe.1 "tepam, sub procedure without main procedure - main procedure execution" \ 169 -body {MainProc3} \ 170 -returnCodes error -result {'::MainProc3' requires a subcommand} -output "" -match exact 171 172 test tepam-sp.dcl_sc.exe.2 "tepam, sub procedure without main procedure - first sub procedure execution" \ 173 -body {MainProc3 SubProc1} \ 174 -result "Proc31" -output "" -match exact 175 176 test tepam-sp.dcl_sc.exe.3 "tepam, sub procedure without main procedure - second sub procedure execution" \ 177 -body {MainProc3 SubProc2} \ 178 -result "Proc32" -output "" -match exact 179 180 test tepam-sp.dcl_sc.exe.4 "tepam, sub procedure without main procedure - sub sub procedure execution" \ 181 -body {MainProc3 SubProc2 SubProc22} \ 182 -result "Proc322" -output "" -match exact 183 184######## With one unnamed argument ######## 185 186######## That's all ######## 187 188::tcltest::cleanupTests 189return 190 191########################################################################## 192# $RCSfile: proc_subproc.test,v $ - ($Name: $) 193# $Id: proc_subproc.test,v 1.1 2010/02/11 21:50:55 droll Exp $ 194# Modifications: 195# $Log: proc_subproc.test,v $ 196# Revision 1.1 2010/02/11 21:50:55 droll 197# TEPAM module checkin 198# 199########################################################################## 200 201