sl@0
|
1 |
# Commands covered: pkg
|
sl@0
|
2 |
#
|
sl@0
|
3 |
# This file contains a collection of tests for one or more of the Tcl
|
sl@0
|
4 |
# built-in commands. Sourcing this file into Tcl runs the tests and
|
sl@0
|
5 |
# generates output for errors. No output means no errors were found.
|
sl@0
|
6 |
#
|
sl@0
|
7 |
# Copyright (c) 1995-1996 Sun Microsystems, Inc.
|
sl@0
|
8 |
# Copyright (c) 1998-1999 by Scriptics Corporation.
|
sl@0
|
9 |
#
|
sl@0
|
10 |
# See the file "license.terms" for information on usage and redistribution
|
sl@0
|
11 |
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
sl@0
|
12 |
#
|
sl@0
|
13 |
# RCS: @(#) $Id: pkg.test,v 1.9.12.10 2007/02/22 20:25:29 andreas_kupries Exp $
|
sl@0
|
14 |
|
sl@0
|
15 |
if {[lsearch [namespace children] ::tcltest] == -1} {
|
sl@0
|
16 |
package require tcltest 2
|
sl@0
|
17 |
namespace import -force ::tcltest::*
|
sl@0
|
18 |
}
|
sl@0
|
19 |
|
sl@0
|
20 |
# Do all this in a slave interp to avoid garbaging the
|
sl@0
|
21 |
# package list
|
sl@0
|
22 |
set i [interp create]
|
sl@0
|
23 |
interp eval $i [list set argv $argv]
|
sl@0
|
24 |
interp eval $i [list package require tcltest 2]
|
sl@0
|
25 |
interp eval $i [list namespace import -force ::tcltest::*]
|
sl@0
|
26 |
interp eval $i {
|
sl@0
|
27 |
|
sl@0
|
28 |
eval package forget [package names]
|
sl@0
|
29 |
set oldPkgUnknown [package unknown]
|
sl@0
|
30 |
package unknown {}
|
sl@0
|
31 |
set oldPath $auto_path
|
sl@0
|
32 |
set auto_path ""
|
sl@0
|
33 |
|
sl@0
|
34 |
testConstraint tip268 [info exists tcl_platform(tip,268)]
|
sl@0
|
35 |
testConstraint !tip268 [expr {![info exists tcl_platform(tip,268)]}]
|
sl@0
|
36 |
|
sl@0
|
37 |
test pkg-1.1 {Tcl_PkgProvide procedure} {
|
sl@0
|
38 |
package forget t
|
sl@0
|
39 |
package provide t 2.3
|
sl@0
|
40 |
} {}
|
sl@0
|
41 |
test pkg-1.2 {Tcl_PkgProvide procedure} {
|
sl@0
|
42 |
package forget t
|
sl@0
|
43 |
package provide t 2.3
|
sl@0
|
44 |
list [catch {package provide t 2.2} msg] $msg
|
sl@0
|
45 |
} {1 {conflicting versions provided for package "t": 2.3, then 2.2}}
|
sl@0
|
46 |
test pkg-1.3 {Tcl_PkgProvide procedure} {
|
sl@0
|
47 |
package forget t
|
sl@0
|
48 |
package provide t 2.3
|
sl@0
|
49 |
list [catch {package provide t 2.4} msg] $msg
|
sl@0
|
50 |
} {1 {conflicting versions provided for package "t": 2.3, then 2.4}}
|
sl@0
|
51 |
test pkg-1.4 {Tcl_PkgProvide procedure} {
|
sl@0
|
52 |
package forget t
|
sl@0
|
53 |
package provide t 2.3
|
sl@0
|
54 |
list [catch {package provide t 3.3} msg] $msg
|
sl@0
|
55 |
} {1 {conflicting versions provided for package "t": 2.3, then 3.3}}
|
sl@0
|
56 |
test pkg-1.5 {Tcl_PkgProvide procedure} {
|
sl@0
|
57 |
package forget t
|
sl@0
|
58 |
package provide t 2.3
|
sl@0
|
59 |
package provide t 2.3
|
sl@0
|
60 |
} {}
|
sl@0
|
61 |
|
sl@0
|
62 |
test pkg-1.6 {Tcl_PkgProvide procedure} tip268 {
|
sl@0
|
63 |
package forget t
|
sl@0
|
64 |
package provide t 2.3a1
|
sl@0
|
65 |
} {}
|
sl@0
|
66 |
|
sl@0
|
67 |
set n 0
|
sl@0
|
68 |
foreach v {
|
sl@0
|
69 |
2.3k1 2a3a2 2ab3 2.a4 2.b4 2b.4 2a.4 2ba4 2a4b1
|
sl@0
|
70 |
2b4a1 2b3b2
|
sl@0
|
71 |
} {
|
sl@0
|
72 |
test pkg-1.7.$n {Tcl_PkgProvide procedure} tip268 {
|
sl@0
|
73 |
package forget t
|
sl@0
|
74 |
list [catch {package provide t $v} msg] $msg
|
sl@0
|
75 |
} [list 1 "expected version number but got \"$v\""]
|
sl@0
|
76 |
incr n
|
sl@0
|
77 |
}
|
sl@0
|
78 |
|
sl@0
|
79 |
test pkg-2.1 {Tcl_PkgRequire procedure, picking best version} {
|
sl@0
|
80 |
package forget t
|
sl@0
|
81 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
82 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
83 |
}
|
sl@0
|
84 |
set x xxx
|
sl@0
|
85 |
package require t
|
sl@0
|
86 |
set x
|
sl@0
|
87 |
} {3.4}
|
sl@0
|
88 |
test pkg-2.2 {Tcl_PkgRequire procedure, picking best version} {
|
sl@0
|
89 |
package forget t
|
sl@0
|
90 |
foreach i {1.4 3.4 2.3 2.4 2.2 3.5 3.2} {
|
sl@0
|
91 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
92 |
}
|
sl@0
|
93 |
set x xxx
|
sl@0
|
94 |
package require t
|
sl@0
|
95 |
set x
|
sl@0
|
96 |
} {3.5}
|
sl@0
|
97 |
test pkg-2.3 {Tcl_PkgRequire procedure, picking best version} {
|
sl@0
|
98 |
package forget t
|
sl@0
|
99 |
foreach i {3.5 2.1 2.3} {
|
sl@0
|
100 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
101 |
}
|
sl@0
|
102 |
set x xxx
|
sl@0
|
103 |
package require t 2.2
|
sl@0
|
104 |
set x
|
sl@0
|
105 |
} {2.3}
|
sl@0
|
106 |
test pkg-2.4 {Tcl_PkgRequire procedure, picking best version} {
|
sl@0
|
107 |
package forget t
|
sl@0
|
108 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
109 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
110 |
}
|
sl@0
|
111 |
set x xxx
|
sl@0
|
112 |
package require -exact t 2.3
|
sl@0
|
113 |
set x
|
sl@0
|
114 |
} {2.3}
|
sl@0
|
115 |
test pkg-2.5 {Tcl_PkgRequire procedure, picking best version} {
|
sl@0
|
116 |
package forget t
|
sl@0
|
117 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
118 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
119 |
}
|
sl@0
|
120 |
set x xxx
|
sl@0
|
121 |
package require t 2.1
|
sl@0
|
122 |
set x
|
sl@0
|
123 |
} {2.4}
|
sl@0
|
124 |
test pkg-2.6 {Tcl_PkgRequire procedure, can't find suitable version} {
|
sl@0
|
125 |
package forget t
|
sl@0
|
126 |
package unknown {}
|
sl@0
|
127 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
128 |
package ifneeded t $i "set x $i"
|
sl@0
|
129 |
}
|
sl@0
|
130 |
list [catch {package require t 2.5} msg] $msg
|
sl@0
|
131 |
} {1 {can't find package t 2.5}}
|
sl@0
|
132 |
test pkg-2.7 {Tcl_PkgRequire procedure, can't find suitable version} {
|
sl@0
|
133 |
package forget t
|
sl@0
|
134 |
package unknown {}
|
sl@0
|
135 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
136 |
package ifneeded t $i "set x $i"
|
sl@0
|
137 |
}
|
sl@0
|
138 |
list [catch {package require t 4.1} msg] $msg
|
sl@0
|
139 |
} {1 {can't find package t 4.1}}
|
sl@0
|
140 |
test pkg-2.8 {Tcl_PkgRequire procedure, can't find suitable version} !tip268 {
|
sl@0
|
141 |
package forget t
|
sl@0
|
142 |
package unknown {}
|
sl@0
|
143 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
144 |
package ifneeded t $i "set x $i"
|
sl@0
|
145 |
}
|
sl@0
|
146 |
list [catch {package require -exact t 1.3} msg] $msg
|
sl@0
|
147 |
|
sl@0
|
148 |
} {1 {can't find package t 1.3}}
|
sl@0
|
149 |
test pkg-2.8-268 {Tcl_PkgRequire procedure, can't find suitable version} tip268 {
|
sl@0
|
150 |
package forget t
|
sl@0
|
151 |
package unknown {}
|
sl@0
|
152 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
153 |
package ifneeded t $i "set x $i"
|
sl@0
|
154 |
}
|
sl@0
|
155 |
list [catch {package require -exact t 1.3} msg] $msg
|
sl@0
|
156 |
|
sl@0
|
157 |
} {1 {can't find package t 1.3-1.4}}
|
sl@0
|
158 |
test pkg-2.9 {Tcl_PkgRequire procedure, can't find suitable version} {
|
sl@0
|
159 |
package forget t
|
sl@0
|
160 |
package unknown {}
|
sl@0
|
161 |
list [catch {package require t} msg] $msg
|
sl@0
|
162 |
} {1 {can't find package t}}
|
sl@0
|
163 |
test pkg-2.10 {Tcl_PkgRequire procedure, error in ifneeded script} -body {
|
sl@0
|
164 |
package forget t
|
sl@0
|
165 |
package ifneeded t 2.1 {package provide t 2.1; error "ifneeded test"}
|
sl@0
|
166 |
list [catch {package require t 2.1} msg] $msg $errorInfo
|
sl@0
|
167 |
} -match glob -result {1 {ifneeded test} {ifneeded test
|
sl@0
|
168 |
while executing
|
sl@0
|
169 |
"error "ifneeded test""
|
sl@0
|
170 |
("package ifneeded*" script)
|
sl@0
|
171 |
invoked from within
|
sl@0
|
172 |
"package require t 2.1"}}
|
sl@0
|
173 |
test pkg-2.11 {Tcl_PkgRequire procedure, ifneeded script doesn't provide package} -body {
|
sl@0
|
174 |
package forget t
|
sl@0
|
175 |
package ifneeded t 2.1 "set x invoked"
|
sl@0
|
176 |
set x xxx
|
sl@0
|
177 |
list [catch {package require t 2.1} msg] $msg $x
|
sl@0
|
178 |
} -match glob -result {1 * invoked}
|
sl@0
|
179 |
test pkg-2.12 {Tcl_PkgRequire procedure, self-deleting script} {
|
sl@0
|
180 |
package forget t
|
sl@0
|
181 |
package ifneeded t 1.2 "package forget t; set x 1.2; package provide t 1.2"
|
sl@0
|
182 |
set x xxx
|
sl@0
|
183 |
package require t 1.2
|
sl@0
|
184 |
set x
|
sl@0
|
185 |
} {1.2}
|
sl@0
|
186 |
test pkg-2.13-!268 {Tcl_PkgRequire procedure, "package unknown" support} !tip268 {
|
sl@0
|
187 |
proc pkgUnknown args {
|
sl@0
|
188 |
global x
|
sl@0
|
189 |
set x $args
|
sl@0
|
190 |
package provide [lindex $args 0] [lindex $args 1]
|
sl@0
|
191 |
}
|
sl@0
|
192 |
package forget t
|
sl@0
|
193 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
194 |
package ifneeded t $i "set x $i"
|
sl@0
|
195 |
}
|
sl@0
|
196 |
package unknown pkgUnknown
|
sl@0
|
197 |
set x xxx
|
sl@0
|
198 |
package require -exact t 1.5
|
sl@0
|
199 |
package unknown {}
|
sl@0
|
200 |
set x
|
sl@0
|
201 |
} {t 1.5 -exact}
|
sl@0
|
202 |
|
sl@0
|
203 |
test pkg-2.13-268 {Tcl_PkgRequire procedure, "package unknown" support} tip268 {
|
sl@0
|
204 |
proc pkgUnknown args {
|
sl@0
|
205 |
# args = name requirement
|
sl@0
|
206 |
# requirement = v-v (for exact version)
|
sl@0
|
207 |
global x
|
sl@0
|
208 |
set x $args
|
sl@0
|
209 |
package provide [lindex $args 0] [lindex [split [lindex $args 1] -] 0]
|
sl@0
|
210 |
}
|
sl@0
|
211 |
package forget t
|
sl@0
|
212 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
213 |
package ifneeded t $i "set x $i"
|
sl@0
|
214 |
}
|
sl@0
|
215 |
package unknown pkgUnknown
|
sl@0
|
216 |
set x xxx
|
sl@0
|
217 |
package require -exact t 1.5
|
sl@0
|
218 |
package unknown {}
|
sl@0
|
219 |
set x
|
sl@0
|
220 |
} {t 1.5-1.6}
|
sl@0
|
221 |
|
sl@0
|
222 |
test pkg-2.14 {Tcl_PkgRequire procedure, "package unknown" support} {
|
sl@0
|
223 |
proc pkgUnknown args {
|
sl@0
|
224 |
package ifneeded t 1.2 "set x loaded; package provide t 1.2"
|
sl@0
|
225 |
}
|
sl@0
|
226 |
package forget t
|
sl@0
|
227 |
package unknown pkgUnknown
|
sl@0
|
228 |
set x xxx
|
sl@0
|
229 |
set result [list [package require t] $x]
|
sl@0
|
230 |
package unknown {}
|
sl@0
|
231 |
set result
|
sl@0
|
232 |
} {1.2 loaded}
|
sl@0
|
233 |
test pkg-2.15 {Tcl_PkgRequire procedure, "package unknown" support} !tip268 {
|
sl@0
|
234 |
proc pkgUnknown args {
|
sl@0
|
235 |
global x
|
sl@0
|
236 |
set x $args
|
sl@0
|
237 |
package provide [lindex $args 0] 2.0
|
sl@0
|
238 |
}
|
sl@0
|
239 |
package forget {a b}
|
sl@0
|
240 |
package unknown pkgUnknown
|
sl@0
|
241 |
set x xxx
|
sl@0
|
242 |
package require {a b}
|
sl@0
|
243 |
package unknown {}
|
sl@0
|
244 |
set x
|
sl@0
|
245 |
} {{a b} {}}
|
sl@0
|
246 |
test pkg-2.15-268 {Tcl_PkgRequire procedure, "package unknown" support} tip268 {
|
sl@0
|
247 |
proc pkgUnknown args {
|
sl@0
|
248 |
global x
|
sl@0
|
249 |
set x $args
|
sl@0
|
250 |
package provide [lindex $args 0] 2.0
|
sl@0
|
251 |
}
|
sl@0
|
252 |
package forget {a b}
|
sl@0
|
253 |
package unknown pkgUnknown
|
sl@0
|
254 |
set x xxx
|
sl@0
|
255 |
package require {a b}
|
sl@0
|
256 |
package unknown {}
|
sl@0
|
257 |
set x
|
sl@0
|
258 |
} {{a b} 0-}
|
sl@0
|
259 |
test pkg-2.16 {Tcl_PkgRequire procedure, "package unknown" error} !tip268 {
|
sl@0
|
260 |
proc pkgUnknown args {
|
sl@0
|
261 |
error "testing package unknown"
|
sl@0
|
262 |
}
|
sl@0
|
263 |
package forget t
|
sl@0
|
264 |
package unknown pkgUnknown
|
sl@0
|
265 |
set result [list [catch {package require t} msg] $msg $errorInfo]
|
sl@0
|
266 |
package unknown {}
|
sl@0
|
267 |
set result
|
sl@0
|
268 |
} {1 {testing package unknown} {testing package unknown
|
sl@0
|
269 |
while executing
|
sl@0
|
270 |
"error "testing package unknown""
|
sl@0
|
271 |
(procedure "pkgUnknown" line 2)
|
sl@0
|
272 |
invoked from within
|
sl@0
|
273 |
"pkgUnknown t {}"
|
sl@0
|
274 |
("package unknown" script)
|
sl@0
|
275 |
invoked from within
|
sl@0
|
276 |
"package require t"}}
|
sl@0
|
277 |
test pkg-2.16-268 {Tcl_PkgRequire procedure, "package unknown" error} tip268 {
|
sl@0
|
278 |
proc pkgUnknown args {
|
sl@0
|
279 |
error "testing package unknown"
|
sl@0
|
280 |
}
|
sl@0
|
281 |
package forget t
|
sl@0
|
282 |
package unknown pkgUnknown
|
sl@0
|
283 |
set result [list [catch {package require t} msg] $msg $errorInfo]
|
sl@0
|
284 |
package unknown {}
|
sl@0
|
285 |
set result
|
sl@0
|
286 |
} {1 {testing package unknown} {testing package unknown
|
sl@0
|
287 |
while executing
|
sl@0
|
288 |
"error "testing package unknown""
|
sl@0
|
289 |
(procedure "pkgUnknown" line 2)
|
sl@0
|
290 |
invoked from within
|
sl@0
|
291 |
"pkgUnknown t 0-"
|
sl@0
|
292 |
("package unknown" script)
|
sl@0
|
293 |
invoked from within
|
sl@0
|
294 |
"package require t"}}
|
sl@0
|
295 |
test pkg-2.17 {Tcl_PkgRequire procedure, "package unknown" doesn't load package} !tip268 {
|
sl@0
|
296 |
proc pkgUnknown args {
|
sl@0
|
297 |
global x
|
sl@0
|
298 |
set x $args
|
sl@0
|
299 |
}
|
sl@0
|
300 |
package forget t
|
sl@0
|
301 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
302 |
package ifneeded t $i "set x $i"
|
sl@0
|
303 |
}
|
sl@0
|
304 |
package unknown pkgUnknown
|
sl@0
|
305 |
set x xxx
|
sl@0
|
306 |
set result [list [catch {package require -exact t 1.5} msg] $msg $x]
|
sl@0
|
307 |
package unknown {}
|
sl@0
|
308 |
set result
|
sl@0
|
309 |
} {1 {can't find package t 1.5} {t 1.5 -exact}}
|
sl@0
|
310 |
test pkg-2.17-268 {Tcl_PkgRequire procedure, "package unknown" doesn't load package} tip268 {
|
sl@0
|
311 |
proc pkgUnknown args {
|
sl@0
|
312 |
global x
|
sl@0
|
313 |
set x $args
|
sl@0
|
314 |
}
|
sl@0
|
315 |
package forget t
|
sl@0
|
316 |
foreach i {1.4 3.4 2.3 2.4 2.2} {
|
sl@0
|
317 |
package ifneeded t $i "set x $i"
|
sl@0
|
318 |
}
|
sl@0
|
319 |
package unknown pkgUnknown
|
sl@0
|
320 |
set x xxx
|
sl@0
|
321 |
set result [list [catch {package require -exact t 1.5} msg] $msg $x]
|
sl@0
|
322 |
package unknown {}
|
sl@0
|
323 |
set result
|
sl@0
|
324 |
} {1 {can't find package t 1.5-1.6} {t 1.5-1.6}}
|
sl@0
|
325 |
test pkg-2.18 {Tcl_PkgRequire procedure, version checks} {
|
sl@0
|
326 |
package forget t
|
sl@0
|
327 |
package provide t 2.3
|
sl@0
|
328 |
package require t
|
sl@0
|
329 |
} {2.3}
|
sl@0
|
330 |
test pkg-2.19 {Tcl_PkgRequire procedure, version checks} {
|
sl@0
|
331 |
package forget t
|
sl@0
|
332 |
package provide t 2.3
|
sl@0
|
333 |
package require t 2.1
|
sl@0
|
334 |
} {2.3}
|
sl@0
|
335 |
test pkg-2.20 {Tcl_PkgRequire procedure, version checks} {
|
sl@0
|
336 |
package forget t
|
sl@0
|
337 |
package provide t 2.3
|
sl@0
|
338 |
package require t 2.3
|
sl@0
|
339 |
} {2.3}
|
sl@0
|
340 |
test pkg-2.21 {Tcl_PkgRequire procedure, version checks} {
|
sl@0
|
341 |
package forget t
|
sl@0
|
342 |
package provide t 2.3
|
sl@0
|
343 |
list [catch {package require t 2.4} msg] $msg
|
sl@0
|
344 |
} {1 {version conflict for package "t": have 2.3, need 2.4}}
|
sl@0
|
345 |
test pkg-2.22 {Tcl_PkgRequire procedure, version checks} {
|
sl@0
|
346 |
package forget t
|
sl@0
|
347 |
package provide t 2.3
|
sl@0
|
348 |
list [catch {package require t 1.2} msg] $msg
|
sl@0
|
349 |
} {1 {version conflict for package "t": have 2.3, need 1.2}}
|
sl@0
|
350 |
test pkg-2.23 {Tcl_PkgRequire procedure, version checks} {
|
sl@0
|
351 |
package forget t
|
sl@0
|
352 |
package provide t 2.3
|
sl@0
|
353 |
package require -exact t 2.3
|
sl@0
|
354 |
} {2.3}
|
sl@0
|
355 |
test pkg-2.24 {Tcl_PkgRequire procedure, version checks} !tip268 {
|
sl@0
|
356 |
package forget t
|
sl@0
|
357 |
package provide t 2.3
|
sl@0
|
358 |
list [catch {package require -exact t 2.2} msg] $msg
|
sl@0
|
359 |
} {1 {version conflict for package "t": have 2.3, need 2.2}}
|
sl@0
|
360 |
test pkg-2.24-268 {Tcl_PkgRequire procedure, version checks} tip268 {
|
sl@0
|
361 |
package forget t
|
sl@0
|
362 |
package provide t 2.3
|
sl@0
|
363 |
list [catch {package require -exact t 2.2} msg] $msg
|
sl@0
|
364 |
} {1 {version conflict for package "t": have 2.3, need 2.2-2.3}}
|
sl@0
|
365 |
test pkg-2.25 {Tcl_PkgRequire procedure, error in ifneeded script} -body {
|
sl@0
|
366 |
package forget t
|
sl@0
|
367 |
package ifneeded t 2.1 {package provide t 2.1; error "ifneeded test" EI}
|
sl@0
|
368 |
list [catch {package require t 2.1} msg] $msg $errorInfo
|
sl@0
|
369 |
} -match glob -result {1 {ifneeded test} {EI
|
sl@0
|
370 |
("package ifneeded*" script)
|
sl@0
|
371 |
invoked from within
|
sl@0
|
372 |
"package require t 2.1"}} -constraints knownBug
|
sl@0
|
373 |
test pkg-2.26 {Tcl_PkgRequire procedure, error in ifneeded script} -body {
|
sl@0
|
374 |
package forget t
|
sl@0
|
375 |
package ifneeded t 2.1 {package provide t 2.1; foreach x 1 {error "ifneeded test" EI}}
|
sl@0
|
376 |
list [catch {package require t 2.1} msg] $msg $errorInfo
|
sl@0
|
377 |
} -match glob -result {1 {ifneeded test} {EI
|
sl@0
|
378 |
("foreach" body line 1)
|
sl@0
|
379 |
invoked from within
|
sl@0
|
380 |
"foreach x 1 {error "ifneeded test" EI}"
|
sl@0
|
381 |
("package ifneeded*" script)
|
sl@0
|
382 |
invoked from within
|
sl@0
|
383 |
"package require t 2.1"}}
|
sl@0
|
384 |
test pkg-2.27 {Tcl_PkgRequire: circular dependency} -setup {
|
sl@0
|
385 |
package forget foo
|
sl@0
|
386 |
} -body {
|
sl@0
|
387 |
package ifneeded foo 1 {package require foo 1}
|
sl@0
|
388 |
package require foo 1
|
sl@0
|
389 |
} -cleanup {
|
sl@0
|
390 |
package forget foo
|
sl@0
|
391 |
} -returnCodes error -match glob -result {circular package dependency:*}
|
sl@0
|
392 |
test pkg-2.28 {Tcl_PkgRequire: circular dependency} -setup {
|
sl@0
|
393 |
package forget foo
|
sl@0
|
394 |
} -body {
|
sl@0
|
395 |
package ifneeded foo 1 {package require foo 2}
|
sl@0
|
396 |
package require foo 1
|
sl@0
|
397 |
} -cleanup {
|
sl@0
|
398 |
package forget foo
|
sl@0
|
399 |
} -returnCodes error -match glob -result {circular package dependency:*}
|
sl@0
|
400 |
test pkg-2.29 {Tcl_PkgRequire: circular dependency} -setup {
|
sl@0
|
401 |
package forget foo
|
sl@0
|
402 |
package forget bar
|
sl@0
|
403 |
} -body {
|
sl@0
|
404 |
package ifneeded foo 1 {package require bar 1; package provide foo 1}
|
sl@0
|
405 |
package ifneeded bar 1 {package require foo 1; package provide bar 1}
|
sl@0
|
406 |
package require foo 1
|
sl@0
|
407 |
} -cleanup {
|
sl@0
|
408 |
package forget foo
|
sl@0
|
409 |
package forget bar
|
sl@0
|
410 |
} -returnCodes error -match glob -result {circular package dependency:*}
|
sl@0
|
411 |
test pkg-2.30 {Tcl_PkgRequire: circular dependency} -setup {
|
sl@0
|
412 |
package forget foo
|
sl@0
|
413 |
package forget bar
|
sl@0
|
414 |
} -body {
|
sl@0
|
415 |
package ifneeded foo 1 {package require bar 1; package provide foo 1}
|
sl@0
|
416 |
package ifneeded foo 2 {package provide foo 2}
|
sl@0
|
417 |
package ifneeded bar 1 {package require foo 2; package provide bar 1}
|
sl@0
|
418 |
package require foo 1
|
sl@0
|
419 |
} -cleanup {
|
sl@0
|
420 |
package forget foo
|
sl@0
|
421 |
package forget bar
|
sl@0
|
422 |
} -returnCodes error -match glob -result {circular package dependency:*}
|
sl@0
|
423 |
test pkg-2.31 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
424 |
package forget foo
|
sl@0
|
425 |
} -body {
|
sl@0
|
426 |
package ifneeded foo 1 {package provide foo 1; error foo}
|
sl@0
|
427 |
package require foo 1
|
sl@0
|
428 |
} -cleanup {
|
sl@0
|
429 |
package forget foo
|
sl@0
|
430 |
} -returnCodes error -match glob -result foo
|
sl@0
|
431 |
test pkg-2.32 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
432 |
package forget foo
|
sl@0
|
433 |
} -body {
|
sl@0
|
434 |
package ifneeded foo 1 {package provide foo 1; error foo}
|
sl@0
|
435 |
catch {package require foo 1}
|
sl@0
|
436 |
package provide foo
|
sl@0
|
437 |
} -cleanup {
|
sl@0
|
438 |
package forget foo
|
sl@0
|
439 |
} -result {}
|
sl@0
|
440 |
test pkg-2.33 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
441 |
package forget foo
|
sl@0
|
442 |
} -body {
|
sl@0
|
443 |
package ifneeded foo 1 {package provide foo 2}
|
sl@0
|
444 |
package require foo 1
|
sl@0
|
445 |
} -cleanup {
|
sl@0
|
446 |
package forget foo
|
sl@0
|
447 |
} -returnCodes error -match glob -result {attempt to provide package * failed:*}
|
sl@0
|
448 |
test pkg-2.34 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
449 |
package forget foo
|
sl@0
|
450 |
} -body {
|
sl@0
|
451 |
package ifneeded foo 1 {package provide foo 1.1}
|
sl@0
|
452 |
package require foo 1
|
sl@0
|
453 |
} -cleanup {
|
sl@0
|
454 |
package forget foo
|
sl@0
|
455 |
} -result 1.1
|
sl@0
|
456 |
test pkg-2.34.1 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
457 |
package forget foo
|
sl@0
|
458 |
} -body {
|
sl@0
|
459 |
package ifneeded foo 1.1 {package provide foo 1}
|
sl@0
|
460 |
package require foo 1
|
sl@0
|
461 |
} -cleanup {
|
sl@0
|
462 |
package forget foo
|
sl@0
|
463 |
} -result 1
|
sl@0
|
464 |
test pkg-2.34.2 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
465 |
package forget foo
|
sl@0
|
466 |
} -body {
|
sl@0
|
467 |
package ifneeded foo 1.1 {package provide foo 1}
|
sl@0
|
468 |
package require foo 1.1
|
sl@0
|
469 |
} -cleanup {
|
sl@0
|
470 |
package forget foo
|
sl@0
|
471 |
} -returnCodes error -match glob -result {attempt to provide package * failed:*}
|
sl@0
|
472 |
test pkg-2.35 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
473 |
package forget foo
|
sl@0
|
474 |
} -body {
|
sl@0
|
475 |
package ifneeded foo 1 {}
|
sl@0
|
476 |
package require foo 1
|
sl@0
|
477 |
} -cleanup {
|
sl@0
|
478 |
package forget foo
|
sl@0
|
479 |
} -returnCodes error -match glob -result {attempt to provide package * failed:*}
|
sl@0
|
480 |
test pkg-2.35.1 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
481 |
package forget foo
|
sl@0
|
482 |
} -body {
|
sl@0
|
483 |
package ifneeded foo 1 {break}
|
sl@0
|
484 |
package require foo 1
|
sl@0
|
485 |
} -cleanup {
|
sl@0
|
486 |
package forget foo
|
sl@0
|
487 |
} -returnCodes error -match glob \
|
sl@0
|
488 |
-result {attempt to provide package * failed: bad return code:*}
|
sl@0
|
489 |
test pkg-2.36 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
490 |
package forget foo
|
sl@0
|
491 |
} -body {
|
sl@0
|
492 |
package ifneeded foo 1 {continue}
|
sl@0
|
493 |
package require foo 1
|
sl@0
|
494 |
} -cleanup {
|
sl@0
|
495 |
package forget foo
|
sl@0
|
496 |
} -returnCodes error -match glob \
|
sl@0
|
497 |
-result {attempt to provide package * failed: bad return code:*}
|
sl@0
|
498 |
test pkg-2.37 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
499 |
package forget foo
|
sl@0
|
500 |
} -body {
|
sl@0
|
501 |
package ifneeded foo 1 {return}
|
sl@0
|
502 |
package require foo 1
|
sl@0
|
503 |
} -cleanup {
|
sl@0
|
504 |
package forget foo
|
sl@0
|
505 |
} -returnCodes error -match glob \
|
sl@0
|
506 |
-result {attempt to provide package * failed: bad return code:*}
|
sl@0
|
507 |
test pkg-2.38 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
508 |
package forget foo
|
sl@0
|
509 |
} -body {
|
sl@0
|
510 |
package ifneeded foo 1 {proc x {} {return -code 10}; x}
|
sl@0
|
511 |
package require foo 1
|
sl@0
|
512 |
} -cleanup {
|
sl@0
|
513 |
rename x {}
|
sl@0
|
514 |
package forget foo
|
sl@0
|
515 |
} -returnCodes error -match glob \
|
sl@0
|
516 |
-result {attempt to provide package * failed: bad return code:*}
|
sl@0
|
517 |
test pkg-2.39 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
518 |
package forget foo
|
sl@0
|
519 |
set saveUnknown [package unknown]
|
sl@0
|
520 |
package unknown {package provide foo 2 ;#}
|
sl@0
|
521 |
} -body {
|
sl@0
|
522 |
package require foo 1
|
sl@0
|
523 |
} -cleanup {
|
sl@0
|
524 |
package forget foo
|
sl@0
|
525 |
package unknown $saveUnknown
|
sl@0
|
526 |
} -returnCodes error -match glob -result *
|
sl@0
|
527 |
test pkg-2.40 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
528 |
package forget foo
|
sl@0
|
529 |
set saveUnknown [package unknown]
|
sl@0
|
530 |
package unknown {break ;#}
|
sl@0
|
531 |
} -body {
|
sl@0
|
532 |
package require foo 1
|
sl@0
|
533 |
} -cleanup {
|
sl@0
|
534 |
package forget foo
|
sl@0
|
535 |
package unknown $saveUnknown
|
sl@0
|
536 |
} -returnCodes error -match glob -result {bad return code:*}
|
sl@0
|
537 |
test pkg-2.41 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
538 |
package forget foo
|
sl@0
|
539 |
set saveUnknown [package unknown]
|
sl@0
|
540 |
package unknown {continue ;#}
|
sl@0
|
541 |
} -body {
|
sl@0
|
542 |
package require foo 1
|
sl@0
|
543 |
} -cleanup {
|
sl@0
|
544 |
package forget foo
|
sl@0
|
545 |
package unknown $saveUnknown
|
sl@0
|
546 |
} -returnCodes error -match glob -result {bad return code:*}
|
sl@0
|
547 |
test pkg-2.42 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
548 |
package forget foo
|
sl@0
|
549 |
set saveUnknown [package unknown]
|
sl@0
|
550 |
package unknown {return ;#}
|
sl@0
|
551 |
} -body {
|
sl@0
|
552 |
package require foo 1
|
sl@0
|
553 |
} -cleanup {
|
sl@0
|
554 |
package forget foo
|
sl@0
|
555 |
package unknown $saveUnknown
|
sl@0
|
556 |
} -returnCodes error -match glob -result {bad return code:*}
|
sl@0
|
557 |
test pkg-2.43 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
|
sl@0
|
558 |
package forget foo
|
sl@0
|
559 |
set saveUnknown [package unknown]
|
sl@0
|
560 |
proc x args {return -code 10}
|
sl@0
|
561 |
package unknown x
|
sl@0
|
562 |
} -body {
|
sl@0
|
563 |
package require foo 1
|
sl@0
|
564 |
} -cleanup {
|
sl@0
|
565 |
rename x {}
|
sl@0
|
566 |
package forget foo
|
sl@0
|
567 |
package unknown $saveUnknown
|
sl@0
|
568 |
} -returnCodes error -match glob -result {bad return code:*}
|
sl@0
|
569 |
|
sl@0
|
570 |
|
sl@0
|
571 |
|
sl@0
|
572 |
test pkg-2.50 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
|
sl@0
|
573 |
package forget t
|
sl@0
|
574 |
foreach i {1.4 3.4 4.0a1 2.3 2.4 2.2} {
|
sl@0
|
575 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
576 |
}
|
sl@0
|
577 |
set x xxx
|
sl@0
|
578 |
package require t
|
sl@0
|
579 |
set x
|
sl@0
|
580 |
} {3.4}
|
sl@0
|
581 |
|
sl@0
|
582 |
test pkg-2.51 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
|
sl@0
|
583 |
package forget t
|
sl@0
|
584 |
foreach i {1.2b1 1.2 1.3a2 1.3} {
|
sl@0
|
585 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
586 |
}
|
sl@0
|
587 |
set x xxx
|
sl@0
|
588 |
package require t
|
sl@0
|
589 |
set x
|
sl@0
|
590 |
} {1.3}
|
sl@0
|
591 |
|
sl@0
|
592 |
test pkg-2.52 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
|
sl@0
|
593 |
package forget t
|
sl@0
|
594 |
foreach i {1.2b1 1.2 1.3 1.3a2} {
|
sl@0
|
595 |
package ifneeded t $i "set x $i; package provide t $i"
|
sl@0
|
596 |
}
|
sl@0
|
597 |
set x xxx
|
sl@0
|
598 |
package require t
|
sl@0
|
599 |
set x
|
sl@0
|
600 |
} {1.3}
|
sl@0
|
601 |
|
sl@0
|
602 |
|
sl@0
|
603 |
|
sl@0
|
604 |
test pkg-3.1 {Tcl_PackageCmd procedure} {
|
sl@0
|
605 |
list [catch {package} msg] $msg
|
sl@0
|
606 |
} {1 {wrong # args: should be "package option ?arg arg ...?"}}
|
sl@0
|
607 |
test pkg-3.2 {Tcl_PackageCmd procedure, "forget" option} {
|
sl@0
|
608 |
foreach i [package names] {
|
sl@0
|
609 |
package forget $i
|
sl@0
|
610 |
}
|
sl@0
|
611 |
package names
|
sl@0
|
612 |
} {}
|
sl@0
|
613 |
test pkg-3.3 {Tcl_PackageCmd procedure, "forget" option} {
|
sl@0
|
614 |
foreach i [package names] {
|
sl@0
|
615 |
package forget $i
|
sl@0
|
616 |
}
|
sl@0
|
617 |
package forget foo
|
sl@0
|
618 |
} {}
|
sl@0
|
619 |
test pkg-3.4 {Tcl_PackageCmd procedure, "forget" option} {
|
sl@0
|
620 |
foreach i [package names] {
|
sl@0
|
621 |
package forget $i
|
sl@0
|
622 |
}
|
sl@0
|
623 |
package ifneeded t 1.1 {first script}
|
sl@0
|
624 |
package ifneeded t 2.3 {second script}
|
sl@0
|
625 |
package ifneeded x 1.4 {x's script}
|
sl@0
|
626 |
set result {}
|
sl@0
|
627 |
lappend result [lsort [package names]] [package versions t]
|
sl@0
|
628 |
package forget t
|
sl@0
|
629 |
lappend result [lsort [package names]] [package versions t]
|
sl@0
|
630 |
} {{t x} {1.1 2.3} x {}}
|
sl@0
|
631 |
test pkg-3.5 {Tcl_PackageCmd procedure, "forget" option} {
|
sl@0
|
632 |
foreach i [package names] {
|
sl@0
|
633 |
package forget $i
|
sl@0
|
634 |
}
|
sl@0
|
635 |
package ifneeded a 1.1 {first script}
|
sl@0
|
636 |
package ifneeded b 2.3 {second script}
|
sl@0
|
637 |
package ifneeded c 1.4 {third script}
|
sl@0
|
638 |
package forget
|
sl@0
|
639 |
set result [list [lsort [package names]]]
|
sl@0
|
640 |
package forget a c
|
sl@0
|
641 |
lappend result [lsort [package names]]
|
sl@0
|
642 |
} {{a b c} b}
|
sl@0
|
643 |
test pkg-3.5.1 {Tcl_PackageCmd procedure, "forget" option} {
|
sl@0
|
644 |
# Test for Bug 415273
|
sl@0
|
645 |
package ifneeded a 1 "I should have been forgotten"
|
sl@0
|
646 |
package forget no-such-package a
|
sl@0
|
647 |
set x [package ifneeded a 1]
|
sl@0
|
648 |
package forget a
|
sl@0
|
649 |
set x
|
sl@0
|
650 |
} {}
|
sl@0
|
651 |
test pkg-3.6 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
652 |
list [catch {package ifneeded a} msg] $msg
|
sl@0
|
653 |
} {1 {wrong # args: should be "package ifneeded package version ?script?"}}
|
sl@0
|
654 |
test pkg-3.7 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
655 |
list [catch {package ifneeded a b c d} msg] $msg
|
sl@0
|
656 |
} {1 {wrong # args: should be "package ifneeded package version ?script?"}}
|
sl@0
|
657 |
test pkg-3.8 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
658 |
list [catch {package ifneeded t xyz} msg] $msg
|
sl@0
|
659 |
} {1 {expected version number but got "xyz"}}
|
sl@0
|
660 |
test pkg-3.9 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
661 |
foreach i [package names] {
|
sl@0
|
662 |
package forget $i
|
sl@0
|
663 |
}
|
sl@0
|
664 |
list [package ifneeded foo 1.1] [package names]
|
sl@0
|
665 |
} {{} {}}
|
sl@0
|
666 |
test pkg-3.10 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
667 |
package forget t
|
sl@0
|
668 |
package ifneeded t 1.4 "script for t 1.4"
|
sl@0
|
669 |
list [package names] [package ifneeded t 1.4] [package versions t]
|
sl@0
|
670 |
} {t {script for t 1.4} 1.4}
|
sl@0
|
671 |
test pkg-3.11 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
672 |
package forget t
|
sl@0
|
673 |
package ifneeded t 1.4 "script for t 1.4"
|
sl@0
|
674 |
list [package ifneeded t 1.5] [package names] [package versions t]
|
sl@0
|
675 |
} {{} t 1.4}
|
sl@0
|
676 |
test pkg-3.12 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
677 |
package forget t
|
sl@0
|
678 |
package ifneeded t 1.4 "script for t 1.4"
|
sl@0
|
679 |
package ifneeded t 1.4 "second script for t 1.4"
|
sl@0
|
680 |
list [package ifneeded t 1.4] [package names] [package versions t]
|
sl@0
|
681 |
} {{second script for t 1.4} t 1.4}
|
sl@0
|
682 |
test pkg-3.13 {Tcl_PackageCmd procedure, "ifneeded" option} {
|
sl@0
|
683 |
package forget t
|
sl@0
|
684 |
package ifneeded t 1.4 "script for t 1.4"
|
sl@0
|
685 |
package ifneeded t 1.2 "second script"
|
sl@0
|
686 |
package ifneeded t 3.1 "last script"
|
sl@0
|
687 |
list [package ifneeded t 1.2] [package versions t]
|
sl@0
|
688 |
} {{second script} {1.4 1.2 3.1}}
|
sl@0
|
689 |
test pkg-3.14 {Tcl_PackageCmd procedure, "names" option} {
|
sl@0
|
690 |
list [catch {package names a} msg] $msg
|
sl@0
|
691 |
} {1 {wrong # args: should be "package names"}}
|
sl@0
|
692 |
test pkg-3.15 {Tcl_PackageCmd procedure, "names" option} {
|
sl@0
|
693 |
foreach i [package names] {
|
sl@0
|
694 |
package forget $i
|
sl@0
|
695 |
}
|
sl@0
|
696 |
package names
|
sl@0
|
697 |
} {}
|
sl@0
|
698 |
test pkg-3.16 {Tcl_PackageCmd procedure, "names" option} {
|
sl@0
|
699 |
foreach i [package names] {
|
sl@0
|
700 |
package forget $i
|
sl@0
|
701 |
}
|
sl@0
|
702 |
package ifneeded x 1.2 {dummy}
|
sl@0
|
703 |
package provide x 1.3
|
sl@0
|
704 |
package provide y 2.4
|
sl@0
|
705 |
catch {package require z 47.16}
|
sl@0
|
706 |
lsort [package names]
|
sl@0
|
707 |
} {x y}
|
sl@0
|
708 |
test pkg-3.17 {Tcl_PackageCmd procedure, "provide" option} {
|
sl@0
|
709 |
list [catch {package provide} msg] $msg
|
sl@0
|
710 |
} {1 {wrong # args: should be "package provide package ?version?"}}
|
sl@0
|
711 |
test pkg-3.18 {Tcl_PackageCmd procedure, "provide" option} {
|
sl@0
|
712 |
list [catch {package provide a b c} msg] $msg
|
sl@0
|
713 |
} {1 {wrong # args: should be "package provide package ?version?"}}
|
sl@0
|
714 |
test pkg-3.19 {Tcl_PackageCmd procedure, "provide" option} {
|
sl@0
|
715 |
package forget t
|
sl@0
|
716 |
package provide t
|
sl@0
|
717 |
} {}
|
sl@0
|
718 |
test pkg-3.20 {Tcl_PackageCmd procedure, "provide" option} {
|
sl@0
|
719 |
package forget t
|
sl@0
|
720 |
package provide t 2.3
|
sl@0
|
721 |
package provide t
|
sl@0
|
722 |
} {2.3}
|
sl@0
|
723 |
test pkg-3.21 {Tcl_PackageCmd procedure, "provide" option} {
|
sl@0
|
724 |
package forget t
|
sl@0
|
725 |
list [catch {package provide t a.b} msg] $msg
|
sl@0
|
726 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
727 |
test pkg-3.22 {Tcl_PackageCmd procedure, "require" option} !tip268 {
|
sl@0
|
728 |
list [catch {package require} msg] $msg
|
sl@0
|
729 |
} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
|
sl@0
|
730 |
test pkg-3.22-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
|
sl@0
|
731 |
list [catch {package require} msg] $msg
|
sl@0
|
732 |
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
|
sl@0
|
733 |
test pkg-3.23 {Tcl_PackageCmd procedure, "require" option} !tip268 {
|
sl@0
|
734 |
list [catch {package require a b c} msg] $msg
|
sl@0
|
735 |
} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
|
sl@0
|
736 |
test pkg-3.24 {Tcl_PackageCmd procedure, "require" option} !tip268 {
|
sl@0
|
737 |
list [catch {package require -exact a b c} msg] $msg
|
sl@0
|
738 |
} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
|
sl@0
|
739 |
test pkg-3.24-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
|
sl@0
|
740 |
list [catch {package require -exact a b c} msg] $msg
|
sl@0
|
741 |
# Exact syntax: -exact name version
|
sl@0
|
742 |
# name ?requirement...?
|
sl@0
|
743 |
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
|
sl@0
|
744 |
test pkg-3.25 {Tcl_PackageCmd procedure, "require" option} !tip268 {
|
sl@0
|
745 |
list [catch {package require -bs a b} msg] $msg
|
sl@0
|
746 |
} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
|
sl@0
|
747 |
test pkg-3.26 {Tcl_PackageCmd procedure, "require" option} {
|
sl@0
|
748 |
list [catch {package require x a.b} msg] $msg
|
sl@0
|
749 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
750 |
test pkg-3.27 {Tcl_PackageCmd procedure, "require" option} {
|
sl@0
|
751 |
list [catch {package require -exact x a.b} msg] $msg
|
sl@0
|
752 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
753 |
test pkg-3.28 {Tcl_PackageCmd procedure, "require" option} !tip268 {
|
sl@0
|
754 |
list [catch {package require -exact x} msg] $msg
|
sl@0
|
755 |
} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
|
sl@0
|
756 |
test pkg-3.28-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
|
sl@0
|
757 |
list [catch {package require -exact x} msg] $msg
|
sl@0
|
758 |
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
|
sl@0
|
759 |
test pkg-3.29 {Tcl_PackageCmd procedure, "require" option} !tip268 {
|
sl@0
|
760 |
list [catch {package require -exact} msg] $msg
|
sl@0
|
761 |
} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
|
sl@0
|
762 |
test pkg-3.29-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
|
sl@0
|
763 |
list [catch {package require -exact} msg] $msg
|
sl@0
|
764 |
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
|
sl@0
|
765 |
test pkg-3.30 {Tcl_PackageCmd procedure, "require" option} {
|
sl@0
|
766 |
package forget t
|
sl@0
|
767 |
package provide t 2.3
|
sl@0
|
768 |
package require t 2.1
|
sl@0
|
769 |
} {2.3}
|
sl@0
|
770 |
test pkg-3.31 {Tcl_PackageCmd procedure, "require" option} {
|
sl@0
|
771 |
package forget t
|
sl@0
|
772 |
list [catch {package require t} msg] $msg
|
sl@0
|
773 |
} {1 {can't find package t}}
|
sl@0
|
774 |
test pkg-3.32 {Tcl_PackageCmd procedure, "require" option} {
|
sl@0
|
775 |
package forget t
|
sl@0
|
776 |
package ifneeded t 2.3 "error {synthetic error}"
|
sl@0
|
777 |
list [catch {package require t 2.3} msg] $msg
|
sl@0
|
778 |
} {1 {synthetic error}}
|
sl@0
|
779 |
test pkg-3.33 {Tcl_PackageCmd procedure, "unknown" option} {
|
sl@0
|
780 |
list [catch {package unknown a b} msg] $msg
|
sl@0
|
781 |
} {1 {wrong # args: should be "package unknown ?command?"}}
|
sl@0
|
782 |
test pkg-3.34 {Tcl_PackageCmd procedure, "unknown" option} {
|
sl@0
|
783 |
package unknown "test script"
|
sl@0
|
784 |
package unknown
|
sl@0
|
785 |
} {test script}
|
sl@0
|
786 |
test pkg-3.35 {Tcl_PackageCmd procedure, "unknown" option} {
|
sl@0
|
787 |
package unknown "test script"
|
sl@0
|
788 |
package unknown {}
|
sl@0
|
789 |
package unknown
|
sl@0
|
790 |
} {}
|
sl@0
|
791 |
test pkg-3.36 {Tcl_PackageCmd procedure, "vcompare" option} {
|
sl@0
|
792 |
list [catch {package vcompare a} msg] $msg
|
sl@0
|
793 |
} {1 {wrong # args: should be "package vcompare version1 version2"}}
|
sl@0
|
794 |
test pkg-3.37 {Tcl_PackageCmd procedure, "vcompare" option} {
|
sl@0
|
795 |
list [catch {package vcompare a b c} msg] $msg
|
sl@0
|
796 |
} {1 {wrong # args: should be "package vcompare version1 version2"}}
|
sl@0
|
797 |
test pkg-3.38 {Tcl_PackageCmd procedure, "vcompare" option} {
|
sl@0
|
798 |
list [catch {package vcompare x.y 3.4} msg] $msg
|
sl@0
|
799 |
} {1 {expected version number but got "x.y"}}
|
sl@0
|
800 |
test pkg-3.39 {Tcl_PackageCmd procedure, "vcompare" option} {
|
sl@0
|
801 |
list [catch {package vcompare 2.1 a.b} msg] $msg
|
sl@0
|
802 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
803 |
test pkg-3.40 {Tcl_PackageCmd procedure, "vcompare" option} {
|
sl@0
|
804 |
package vc 2.1 2.3
|
sl@0
|
805 |
} {-1}
|
sl@0
|
806 |
test pkg-3.41 {Tcl_PackageCmd procedure, "vcompare" option} {
|
sl@0
|
807 |
package vc 2.2.4 2.2.4
|
sl@0
|
808 |
} {0}
|
sl@0
|
809 |
test pkg-3.42 {Tcl_PackageCmd procedure, "versions" option} {
|
sl@0
|
810 |
list [catch {package versions} msg] $msg
|
sl@0
|
811 |
} {1 {wrong # args: should be "package versions package"}}
|
sl@0
|
812 |
test pkg-3.43 {Tcl_PackageCmd procedure, "versions" option} {
|
sl@0
|
813 |
list [catch {package versions a b} msg] $msg
|
sl@0
|
814 |
} {1 {wrong # args: should be "package versions package"}}
|
sl@0
|
815 |
test pkg-3.44 {Tcl_PackageCmd procedure, "versions" option} {
|
sl@0
|
816 |
package forget t
|
sl@0
|
817 |
package versions t
|
sl@0
|
818 |
} {}
|
sl@0
|
819 |
test pkg-3.45 {Tcl_PackageCmd procedure, "versions" option} {
|
sl@0
|
820 |
package forget t
|
sl@0
|
821 |
package provide t 2.3
|
sl@0
|
822 |
package versions t
|
sl@0
|
823 |
} {}
|
sl@0
|
824 |
test pkg-3.46 {Tcl_PackageCmd procedure, "versions" option} {
|
sl@0
|
825 |
package forget t
|
sl@0
|
826 |
package ifneeded t 2.3 x
|
sl@0
|
827 |
package ifneeded t 2.4 y
|
sl@0
|
828 |
package versions t
|
sl@0
|
829 |
} {2.3 2.4}
|
sl@0
|
830 |
test pkg-3.47 {Tcl_PackageCmd procedure, "vsatisfies" option} !tip268 {
|
sl@0
|
831 |
list [catch {package vsatisfies a} msg] $msg
|
sl@0
|
832 |
} {1 {wrong # args: should be "package vsatisfies version1 version2"}}
|
sl@0
|
833 |
test pkg-3.47-268 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
|
sl@0
|
834 |
list [catch {package vsatisfies a} msg] $msg
|
sl@0
|
835 |
} {1 {wrong # args: should be "package vsatisfies version requirement requirement..."}}
|
sl@0
|
836 |
test pkg-3.48 {Tcl_PackageCmd procedure, "vsatisfies" option} !tip268 {
|
sl@0
|
837 |
list [catch {package vsatisfies a b c} msg] $msg
|
sl@0
|
838 |
} {1 {wrong # args: should be "package vsatisfies version1 version2"}}
|
sl@0
|
839 |
test pkg-3.49 {Tcl_PackageCmd procedure, "vsatisfies" option} {
|
sl@0
|
840 |
list [catch {package vsatisfies x.y 3.4} msg] $msg
|
sl@0
|
841 |
} {1 {expected version number but got "x.y"}}
|
sl@0
|
842 |
test pkg-3.50 {Tcl_PackageCmd procedure, "vsatisfies" option} {
|
sl@0
|
843 |
list [catch {package vcompare 2.1 a.b} msg] $msg
|
sl@0
|
844 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
845 |
test pkg-3.51 {Tcl_PackageCmd procedure, "vsatisfies" option} {
|
sl@0
|
846 |
package vs 2.3 2.1
|
sl@0
|
847 |
} {1}
|
sl@0
|
848 |
test pkg-3.52 {Tcl_PackageCmd procedure, "vsatisfies" option} {
|
sl@0
|
849 |
package vs 2.3 1.2
|
sl@0
|
850 |
} {0}
|
sl@0
|
851 |
test pkg-3.53 {Tcl_PackageCmd procedure, "versions" option} !tip268 {
|
sl@0
|
852 |
list [catch {package foo} msg] $msg
|
sl@0
|
853 |
} {1 {bad option "foo": must be forget, ifneeded, names, present, provide, require, unknown, vcompare, versions, or vsatisfies}}
|
sl@0
|
854 |
test pkg-3.53-268 {Tcl_PackageCmd procedure, "versions" option} tip268 {
|
sl@0
|
855 |
list [catch {package foo} msg] $msg
|
sl@0
|
856 |
} {1 {bad option "foo": must be forget, ifneeded, names, prefer, present, provide, require, unknown, vcompare, versions, or vsatisfies}}
|
sl@0
|
857 |
|
sl@0
|
858 |
test pkg-3.54 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
|
sl@0
|
859 |
list [catch {package vsatisfies 2.1 2.1-3.2-4.5} msg] $msg
|
sl@0
|
860 |
} {1 {expected versionMin-versionMax but got "2.1-3.2-4.5"}}
|
sl@0
|
861 |
|
sl@0
|
862 |
test pkg-3.55 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
|
sl@0
|
863 |
list [catch {package vsatisfies 2.1 3.2-x.y} msg] $msg
|
sl@0
|
864 |
} {1 {expected version number but got "x.y"}}
|
sl@0
|
865 |
|
sl@0
|
866 |
test pkg-3.56 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
|
sl@0
|
867 |
list [catch {package vsatisfies 2.1 x.y-3.2} msg] $msg
|
sl@0
|
868 |
} {1 {expected version number but got "x.y"}}
|
sl@0
|
869 |
|
sl@0
|
870 |
# No tests for FindPackage; can't think up anything detectable
|
sl@0
|
871 |
# errors.
|
sl@0
|
872 |
|
sl@0
|
873 |
test pkg-4.1 {TclFreePackageInfo procedure} {
|
sl@0
|
874 |
interp create foo
|
sl@0
|
875 |
foo eval {
|
sl@0
|
876 |
package ifneeded t 2.3 x
|
sl@0
|
877 |
package ifneeded t 2.4 y
|
sl@0
|
878 |
package ifneeded x 3.1 z
|
sl@0
|
879 |
package provide q 4.3
|
sl@0
|
880 |
package unknown "will this get freed?"
|
sl@0
|
881 |
}
|
sl@0
|
882 |
interp delete foo
|
sl@0
|
883 |
} {}
|
sl@0
|
884 |
test pkg-4.2 {TclFreePackageInfo procedure} -body {
|
sl@0
|
885 |
interp create foo
|
sl@0
|
886 |
foo eval {
|
sl@0
|
887 |
package ifneeded t 2.3 x
|
sl@0
|
888 |
package ifneeded t 2.4 y
|
sl@0
|
889 |
package ifneeded x 3.1 z
|
sl@0
|
890 |
package provide q 4.3
|
sl@0
|
891 |
}
|
sl@0
|
892 |
foo alias z kill
|
sl@0
|
893 |
proc kill {} {
|
sl@0
|
894 |
interp delete foo
|
sl@0
|
895 |
}
|
sl@0
|
896 |
foo eval package require x 3.1
|
sl@0
|
897 |
} -returnCodes error -match glob -result *
|
sl@0
|
898 |
|
sl@0
|
899 |
test pkg-5.1 {CheckVersion procedure} {
|
sl@0
|
900 |
list [catch {package vcompare 1 2.1} msg] $msg
|
sl@0
|
901 |
} {0 -1}
|
sl@0
|
902 |
test pkg-5.2 {CheckVersion procedure} {
|
sl@0
|
903 |
list [catch {package vcompare .1 2.1} msg] $msg
|
sl@0
|
904 |
} {1 {expected version number but got ".1"}}
|
sl@0
|
905 |
test pkg-5.3 {CheckVersion procedure} {
|
sl@0
|
906 |
list [catch {package vcompare 111.2a.3 2.1} msg] $msg
|
sl@0
|
907 |
} {1 {expected version number but got "111.2a.3"}}
|
sl@0
|
908 |
test pkg-5.4 {CheckVersion procedure} {
|
sl@0
|
909 |
list [catch {package vcompare 1.2.3. 2.1} msg] $msg
|
sl@0
|
910 |
} {1 {expected version number but got "1.2.3."}}
|
sl@0
|
911 |
test pkg-5.5 {CheckVersion procedure} {
|
sl@0
|
912 |
list [catch {package vcompare 1.2..3 2.1} msg] $msg
|
sl@0
|
913 |
} {1 {expected version number but got "1.2..3"}}
|
sl@0
|
914 |
|
sl@0
|
915 |
test pkg-6.1 {ComparePkgVersions procedure} {
|
sl@0
|
916 |
package vcompare 1.23 1.22
|
sl@0
|
917 |
} {1}
|
sl@0
|
918 |
test pkg-6.2 {ComparePkgVersions procedure} {
|
sl@0
|
919 |
package vcompare 1.22.1.2.3 1.22.1.2.3
|
sl@0
|
920 |
} {0}
|
sl@0
|
921 |
test pkg-6.3 {ComparePkgVersions procedure} {
|
sl@0
|
922 |
package vcompare 1.21 1.22
|
sl@0
|
923 |
} {-1}
|
sl@0
|
924 |
test pkg-6.4 {ComparePkgVersions procedure} {
|
sl@0
|
925 |
package vcompare 1.21 1.21.2
|
sl@0
|
926 |
} {-1}
|
sl@0
|
927 |
test pkg-6.5 {ComparePkgVersions procedure} {
|
sl@0
|
928 |
package vcompare 1.21.1 1.21
|
sl@0
|
929 |
} {1}
|
sl@0
|
930 |
test pkg-6.6 {ComparePkgVersions procedure} {
|
sl@0
|
931 |
package vsatisfies 1.21.1 1.21
|
sl@0
|
932 |
} {1}
|
sl@0
|
933 |
test pkg-6.7 {ComparePkgVersions procedure} {
|
sl@0
|
934 |
package vsatisfies 2.22.3 1.21
|
sl@0
|
935 |
} {0}
|
sl@0
|
936 |
test pkg-6.8 {ComparePkgVersions procedure} {
|
sl@0
|
937 |
package vsatisfies 1 1
|
sl@0
|
938 |
} {1}
|
sl@0
|
939 |
test pkg-6.9 {ComparePkgVersions procedure} {
|
sl@0
|
940 |
package vsatisfies 2 1
|
sl@0
|
941 |
} {0}
|
sl@0
|
942 |
|
sl@0
|
943 |
test pkg-7.1 {Tcl_PkgPresent procedure, any version} {
|
sl@0
|
944 |
package forget t
|
sl@0
|
945 |
package provide t 2.4
|
sl@0
|
946 |
package present t
|
sl@0
|
947 |
} {2.4}
|
sl@0
|
948 |
test pkg-7.2 {Tcl_PkgPresent procedure, correct version} {
|
sl@0
|
949 |
package forget t
|
sl@0
|
950 |
package provide t 2.4
|
sl@0
|
951 |
package present t 2.4
|
sl@0
|
952 |
} {2.4}
|
sl@0
|
953 |
test pkg-7.3 {Tcl_PkgPresent procedure, satisfying version} {
|
sl@0
|
954 |
package forget t
|
sl@0
|
955 |
package provide t 2.4
|
sl@0
|
956 |
package present t 2.0
|
sl@0
|
957 |
} {2.4}
|
sl@0
|
958 |
test pkg-7.4 {Tcl_PkgPresent procedure, not satisfying version} {
|
sl@0
|
959 |
package forget t
|
sl@0
|
960 |
package provide t 2.4
|
sl@0
|
961 |
list [catch {package present t 2.6} msg] $msg
|
sl@0
|
962 |
} {1 {version conflict for package "t": have 2.4, need 2.6}}
|
sl@0
|
963 |
test pkg-7.5 {Tcl_PkgPresent procedure, not satisfying version} {
|
sl@0
|
964 |
package forget t
|
sl@0
|
965 |
package provide t 2.4
|
sl@0
|
966 |
list [catch {package present t 1.0} msg] $msg
|
sl@0
|
967 |
} {1 {version conflict for package "t": have 2.4, need 1.0}}
|
sl@0
|
968 |
test pkg-7.6 {Tcl_PkgPresent procedure, exact version} {
|
sl@0
|
969 |
package forget t
|
sl@0
|
970 |
package provide t 2.4
|
sl@0
|
971 |
package present -exact t 2.4
|
sl@0
|
972 |
} {2.4}
|
sl@0
|
973 |
test pkg-7.7 {Tcl_PkgPresent procedure, not exact version} {
|
sl@0
|
974 |
package forget t
|
sl@0
|
975 |
package provide t 2.4
|
sl@0
|
976 |
list [catch {package present -exact t 2.3} msg] $msg
|
sl@0
|
977 |
} {1 {version conflict for package "t": have 2.4, need 2.3}}
|
sl@0
|
978 |
test pkg-7.8 {Tcl_PkgPresent procedure, unknown package} {
|
sl@0
|
979 |
package forget t
|
sl@0
|
980 |
list [catch {package present t} msg] $msg
|
sl@0
|
981 |
} {1 {package t is not present}}
|
sl@0
|
982 |
test pkg-7.9 {Tcl_PkgPresent procedure, unknown package} {
|
sl@0
|
983 |
package forget t
|
sl@0
|
984 |
list [catch {package present t 2.4} msg] $msg
|
sl@0
|
985 |
} {1 {package t 2.4 is not present}}
|
sl@0
|
986 |
test pkg-7.10 {Tcl_PkgPresent procedure, unknown package} {
|
sl@0
|
987 |
package forget t
|
sl@0
|
988 |
list [catch {package present -exact t 2.4} msg] $msg
|
sl@0
|
989 |
} {1 {package t 2.4 is not present}}
|
sl@0
|
990 |
test pkg-7.11 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
991 |
list [catch {package present} msg] $msg
|
sl@0
|
992 |
} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
|
sl@0
|
993 |
test pkg-7.12 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
994 |
list [catch {package present a b c} msg] $msg
|
sl@0
|
995 |
} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
|
sl@0
|
996 |
test pkg-7.13 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
997 |
list [catch {package present -exact a b c} msg] $msg
|
sl@0
|
998 |
} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
|
sl@0
|
999 |
test pkg-7.14 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
1000 |
list [catch {package present -bs a b} msg] $msg
|
sl@0
|
1001 |
} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
|
sl@0
|
1002 |
test pkg-7.15 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
1003 |
list [catch {package present x a.b} msg] $msg
|
sl@0
|
1004 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
1005 |
test pkg-7.16 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
1006 |
list [catch {package present -exact x a.b} msg] $msg
|
sl@0
|
1007 |
} {1 {expected version number but got "a.b"}}
|
sl@0
|
1008 |
test pkg-7.17 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
1009 |
list [catch {package present -exact x} msg] $msg
|
sl@0
|
1010 |
} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
|
sl@0
|
1011 |
test pkg-7.18 {Tcl_PackageCmd procedure, "present" option} {
|
sl@0
|
1012 |
list [catch {package present -exact} msg] $msg
|
sl@0
|
1013 |
} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
|
sl@0
|
1014 |
|
sl@0
|
1015 |
|
sl@0
|
1016 |
# Note: It is correct that the result of the very first test,
|
sl@0
|
1017 |
# i.e. "5.0 5.0a0" is 1, i.e. that version 5.0a0 satisfies a 5.0
|
sl@0
|
1018 |
# requirement.
|
sl@0
|
1019 |
|
sl@0
|
1020 |
# The requirement "5.0" internally translates first to "5.0-6", and
|
sl@0
|
1021 |
# then to its final form of "5.0a0-6a0". These translations are
|
sl@0
|
1022 |
# explicitly specified by the TIP (Search for "padded/extended
|
sl@0
|
1023 |
# internally with 'a0'"). This was done intentionally for exactly the
|
sl@0
|
1024 |
# tested case, that an alpha package can satisfy a requirement for the
|
sl@0
|
1025 |
# regular package. An example would be a package FOO requiring Tcl 8.X
|
sl@0
|
1026 |
# for its operation. It can be used with Tcl 8.Xa0. Without our
|
sl@0
|
1027 |
# translation that would not be possible.
|
sl@0
|
1028 |
|
sl@0
|
1029 |
set n 0
|
sl@0
|
1030 |
foreach {r p vs vc} {
|
sl@0
|
1031 |
5.0 5.0a0 1 1
|
sl@0
|
1032 |
5.0a0 5.0 1 -1
|
sl@0
|
1033 |
|
sl@0
|
1034 |
8.5a0 8.5a5 1 -1
|
sl@0
|
1035 |
8.5a0 8.5b1 1 -1
|
sl@0
|
1036 |
8.5a0 8.5.1 1 -1
|
sl@0
|
1037 |
8.5a0 8.6a0 1 -1
|
sl@0
|
1038 |
8.5a0 8.6b0 1 -1
|
sl@0
|
1039 |
8.5a0 8.6.0 1 -1
|
sl@0
|
1040 |
8.5a6 8.5a5 0 1
|
sl@0
|
1041 |
8.5a6 8.5b1 1 -1
|
sl@0
|
1042 |
8.5a6 8.5.1 1 -1
|
sl@0
|
1043 |
8.5a6 8.6a0 1 -1
|
sl@0
|
1044 |
8.5a6 8.6b0 1 -1
|
sl@0
|
1045 |
8.5a6 8.6.0 1 -1
|
sl@0
|
1046 |
8.5b0 8.5a5 0 1
|
sl@0
|
1047 |
8.5b0 8.5b1 1 -1
|
sl@0
|
1048 |
8.5b0 8.5.1 1 -1
|
sl@0
|
1049 |
8.5b0 8.6a0 1 -1
|
sl@0
|
1050 |
8.5b0 8.6b0 1 -1
|
sl@0
|
1051 |
8.5b0 8.6.0 1 -1
|
sl@0
|
1052 |
8.5b2 8.5a5 0 1
|
sl@0
|
1053 |
8.5b2 8.5b1 0 1
|
sl@0
|
1054 |
8.5b2 8.5.1 1 -1
|
sl@0
|
1055 |
8.5b2 8.6a0 1 -1
|
sl@0
|
1056 |
8.5b2 8.6b0 1 -1
|
sl@0
|
1057 |
8.5b2 8.6.0 1 -1
|
sl@0
|
1058 |
8.5 8.5a5 1 1
|
sl@0
|
1059 |
8.5 8.5b1 1 1
|
sl@0
|
1060 |
8.5 8.5.1 1 -1
|
sl@0
|
1061 |
8.5 8.6a0 1 -1
|
sl@0
|
1062 |
8.5 8.6b0 1 -1
|
sl@0
|
1063 |
8.5 8.6.0 1 -1
|
sl@0
|
1064 |
8.5.0 8.5a5 0 1
|
sl@0
|
1065 |
8.5.0 8.5b1 0 1
|
sl@0
|
1066 |
8.5.0 8.5.1 1 -1
|
sl@0
|
1067 |
8.5.0 8.6a0 1 -1
|
sl@0
|
1068 |
8.5.0 8.6b0 1 -1
|
sl@0
|
1069 |
8.5.0 8.6.0 1 -1
|
sl@0
|
1070 |
} {
|
sl@0
|
1071 |
test package-vsatisfies-1.$n {package vsatisfies} tip268 {
|
sl@0
|
1072 |
package vsatisfies $p $r
|
sl@0
|
1073 |
} $vs
|
sl@0
|
1074 |
|
sl@0
|
1075 |
test package-vcompare-1.$n {package vcompare} tip268 {
|
sl@0
|
1076 |
package vcompare $r $p
|
sl@0
|
1077 |
} $vc
|
sl@0
|
1078 |
|
sl@0
|
1079 |
incr n
|
sl@0
|
1080 |
}
|
sl@0
|
1081 |
|
sl@0
|
1082 |
set n 0
|
sl@0
|
1083 |
foreach {required provided satisfied} {
|
sl@0
|
1084 |
8.5a0- 8.5a5 1
|
sl@0
|
1085 |
8.5a0- 8.5b1 1
|
sl@0
|
1086 |
8.5a0- 8.5.1 1
|
sl@0
|
1087 |
8.5a0- 8.6a0 1
|
sl@0
|
1088 |
8.5a0- 8.6b0 1
|
sl@0
|
1089 |
8.5a0- 8.6.0 1
|
sl@0
|
1090 |
8.5a6- 8.5a5 0
|
sl@0
|
1091 |
8.5a6- 8.5b1 1
|
sl@0
|
1092 |
8.5a6- 8.5.1 1
|
sl@0
|
1093 |
8.5a6- 8.6a0 1
|
sl@0
|
1094 |
8.5a6- 8.6b0 1
|
sl@0
|
1095 |
8.5a6- 8.6.0 1
|
sl@0
|
1096 |
8.5b0- 8.5a5 0
|
sl@0
|
1097 |
8.5b0- 8.5b1 1
|
sl@0
|
1098 |
8.5b0- 8.5.1 1
|
sl@0
|
1099 |
8.5b0- 8.6a0 1
|
sl@0
|
1100 |
8.5b0- 8.6b0 1
|
sl@0
|
1101 |
8.5b0- 8.6.0 1
|
sl@0
|
1102 |
8.5b2- 8.5a5 0
|
sl@0
|
1103 |
8.5b2- 8.5b1 0
|
sl@0
|
1104 |
8.5b2- 8.5.1 1
|
sl@0
|
1105 |
8.5b2- 8.6a0 1
|
sl@0
|
1106 |
8.5b2- 8.6b0 1
|
sl@0
|
1107 |
8.5b2- 8.6.0 1
|
sl@0
|
1108 |
8.5- 8.5a5 1
|
sl@0
|
1109 |
8.5- 8.5b1 1
|
sl@0
|
1110 |
8.5- 8.5.1 1
|
sl@0
|
1111 |
8.5- 8.6a0 1
|
sl@0
|
1112 |
8.5- 8.6b0 1
|
sl@0
|
1113 |
8.5- 8.6.0 1
|
sl@0
|
1114 |
8.5.0- 8.5a5 0
|
sl@0
|
1115 |
8.5.0- 8.5b1 0
|
sl@0
|
1116 |
8.5.0- 8.5.1 1
|
sl@0
|
1117 |
8.5.0- 8.6a0 1
|
sl@0
|
1118 |
8.5.0- 8.6b0 1
|
sl@0
|
1119 |
8.5.0- 8.6.0 1
|
sl@0
|
1120 |
8.5a0-7 8.5a5 0
|
sl@0
|
1121 |
8.5a0-7 8.5b1 0
|
sl@0
|
1122 |
8.5a0-7 8.5.1 0
|
sl@0
|
1123 |
8.5a0-7 8.6a0 0
|
sl@0
|
1124 |
8.5a0-7 8.6b0 0
|
sl@0
|
1125 |
8.5a0-7 8.6.0 0
|
sl@0
|
1126 |
8.5a6-7 8.5a5 0
|
sl@0
|
1127 |
8.5a6-7 8.5b1 0
|
sl@0
|
1128 |
8.5a6-7 8.5.1 0
|
sl@0
|
1129 |
8.5a6-7 8.6a0 0
|
sl@0
|
1130 |
8.5a6-7 8.6b0 0
|
sl@0
|
1131 |
8.5a6-7 8.6.0 0
|
sl@0
|
1132 |
8.5b0-7 8.5a5 0
|
sl@0
|
1133 |
8.5b0-7 8.5b1 0
|
sl@0
|
1134 |
8.5b0-7 8.5.1 0
|
sl@0
|
1135 |
8.5b0-7 8.6a0 0
|
sl@0
|
1136 |
8.5b0-7 8.6b0 0
|
sl@0
|
1137 |
8.5b0-7 8.6.0 0
|
sl@0
|
1138 |
8.5b2-7 8.5a5 0
|
sl@0
|
1139 |
8.5b2-7 8.5b1 0
|
sl@0
|
1140 |
8.5b2-7 8.5.1 0
|
sl@0
|
1141 |
8.5b2-7 8.6a0 0
|
sl@0
|
1142 |
8.5b2-7 8.6b0 0
|
sl@0
|
1143 |
8.5b2-7 8.6.0 0
|
sl@0
|
1144 |
8.5-7 8.5a5 0
|
sl@0
|
1145 |
8.5-7 8.5b1 0
|
sl@0
|
1146 |
8.5-7 8.5.1 0
|
sl@0
|
1147 |
8.5-7 8.6a0 0
|
sl@0
|
1148 |
8.5-7 8.6b0 0
|
sl@0
|
1149 |
8.5-7 8.6.0 0
|
sl@0
|
1150 |
8.5.0-7 8.5a5 0
|
sl@0
|
1151 |
8.5.0-7 8.5b1 0
|
sl@0
|
1152 |
8.5.0-7 8.5.1 0
|
sl@0
|
1153 |
8.5.0-7 8.6a0 0
|
sl@0
|
1154 |
8.5.0-7 8.6b0 0
|
sl@0
|
1155 |
8.5.0-7 8.6.0 0
|
sl@0
|
1156 |
8.5a0-8.6.1 8.5a5 1
|
sl@0
|
1157 |
8.5a0-8.6.1 8.5b1 1
|
sl@0
|
1158 |
8.5a0-8.6.1 8.5.1 1
|
sl@0
|
1159 |
8.5a0-8.6.1 8.6a0 1
|
sl@0
|
1160 |
8.5a0-8.6.1 8.6b0 1
|
sl@0
|
1161 |
8.5a0-8.6.1 8.6.0 1
|
sl@0
|
1162 |
8.5a6-8.6.1 8.5a5 0
|
sl@0
|
1163 |
8.5a6-8.6.1 8.5b1 1
|
sl@0
|
1164 |
8.5a6-8.6.1 8.5.1 1
|
sl@0
|
1165 |
8.5a6-8.6.1 8.6a0 1
|
sl@0
|
1166 |
8.5a6-8.6.1 8.6b0 1
|
sl@0
|
1167 |
8.5a6-8.6.1 8.6.0 1
|
sl@0
|
1168 |
8.5b0-8.6.1 8.5a5 0
|
sl@0
|
1169 |
8.5b0-8.6.1 8.5b1 1
|
sl@0
|
1170 |
8.5b0-8.6.1 8.5.1 1
|
sl@0
|
1171 |
8.5b0-8.6.1 8.6a0 1
|
sl@0
|
1172 |
8.5b0-8.6.1 8.6b0 1
|
sl@0
|
1173 |
8.5b0-8.6.1 8.6.0 1
|
sl@0
|
1174 |
8.5b2-8.6.1 8.5a5 0
|
sl@0
|
1175 |
8.5b2-8.6.1 8.5b1 0
|
sl@0
|
1176 |
8.5b2-8.6.1 8.5.1 1
|
sl@0
|
1177 |
8.5b2-8.6.1 8.6a0 1
|
sl@0
|
1178 |
8.5b2-8.6.1 8.6b0 1
|
sl@0
|
1179 |
8.5b2-8.6.1 8.6.0 1
|
sl@0
|
1180 |
8.5-8.6.1 8.5a5 1
|
sl@0
|
1181 |
8.5-8.6.1 8.5b1 1
|
sl@0
|
1182 |
8.5-8.6.1 8.5.1 1
|
sl@0
|
1183 |
8.5-8.6.1 8.6a0 1
|
sl@0
|
1184 |
8.5-8.6.1 8.6b0 1
|
sl@0
|
1185 |
8.5-8.6.1 8.6.0 1
|
sl@0
|
1186 |
8.5.0-8.6.1 8.5a5 0
|
sl@0
|
1187 |
8.5.0-8.6.1 8.5b1 0
|
sl@0
|
1188 |
8.5.0-8.6.1 8.5.1 1
|
sl@0
|
1189 |
8.5.0-8.6.1 8.6a0 1
|
sl@0
|
1190 |
8.5.0-8.6.1 8.6b0 1
|
sl@0
|
1191 |
8.5.0-8.6.1 8.6.0 1
|
sl@0
|
1192 |
8.5a0-8.5a0 8.5a0 1
|
sl@0
|
1193 |
8.5a0-8.5a0 8.5b1 0
|
sl@0
|
1194 |
8.5a0-8.5a0 8.4 0
|
sl@0
|
1195 |
8.5b0-8.5b0 8.5a5 0
|
sl@0
|
1196 |
8.5b0-8.5b0 8.5b0 1
|
sl@0
|
1197 |
8.5b0-8.5b0 8.5.1 0
|
sl@0
|
1198 |
8.5-8.5 8.5a5 0
|
sl@0
|
1199 |
8.5-8.5 8.5b1 0
|
sl@0
|
1200 |
8.5-8.5 8.5 1
|
sl@0
|
1201 |
8.5-8.5 8.5.1 0
|
sl@0
|
1202 |
8.5.0-8.5.0 8.5a5 0
|
sl@0
|
1203 |
8.5.0-8.5.0 8.5b1 0
|
sl@0
|
1204 |
8.5.0-8.5.0 8.5.0 1
|
sl@0
|
1205 |
8.5.0-8.5.0 8.5.1 0
|
sl@0
|
1206 |
8.5.0-8.5.0 8.6a0 0
|
sl@0
|
1207 |
8.5.0-8.5.0 8.6b0 0
|
sl@0
|
1208 |
8.5.0-8.5.0 8.6.0 0
|
sl@0
|
1209 |
8.2 9 0
|
sl@0
|
1210 |
8.2- 9 1
|
sl@0
|
1211 |
8.2-8.5 9 0
|
sl@0
|
1212 |
8.2-9.1 9 1
|
sl@0
|
1213 |
|
sl@0
|
1214 |
8.5-8.5 8.5b1 0
|
sl@0
|
1215 |
8.5a0-8.5 8.5b1 0
|
sl@0
|
1216 |
8.5a0-8.5.1 8.5b1 1
|
sl@0
|
1217 |
|
sl@0
|
1218 |
8.5-8.5 8.5 1
|
sl@0
|
1219 |
8.5.0-8.5.0 8.5 1
|
sl@0
|
1220 |
8.5a0-8.5.0 8.5 0
|
sl@0
|
1221 |
|
sl@0
|
1222 |
} {
|
sl@0
|
1223 |
test package-vsatisfies-2.$n "package vsatisfies $provided $required" tip268 {
|
sl@0
|
1224 |
package vsatisfies $provided $required
|
sl@0
|
1225 |
} $satisfied
|
sl@0
|
1226 |
incr n
|
sl@0
|
1227 |
}
|
sl@0
|
1228 |
|
sl@0
|
1229 |
test package-vsatisfies-3.0 "package vsatisfies multiple" tip268 {
|
sl@0
|
1230 |
# yes no
|
sl@0
|
1231 |
package vsatisfies 8.4 8.4 7.3
|
sl@0
|
1232 |
} 1
|
sl@0
|
1233 |
|
sl@0
|
1234 |
test package-vsatisfies-3.1 "package vsatisfies multiple" tip268 {
|
sl@0
|
1235 |
# no yes
|
sl@0
|
1236 |
package vsatisfies 8.4 7.3 8.4
|
sl@0
|
1237 |
} 1
|
sl@0
|
1238 |
|
sl@0
|
1239 |
test package-vsatisfies-3.2 "package vsatisfies multiple" tip268 {
|
sl@0
|
1240 |
# yes yes
|
sl@0
|
1241 |
package vsatisfies 8.4.2 8.4 8.4.1
|
sl@0
|
1242 |
} 1
|
sl@0
|
1243 |
|
sl@0
|
1244 |
test package-vsatisfies-3.3 "package vsatisfies multiple" tip268 {
|
sl@0
|
1245 |
# no no
|
sl@0
|
1246 |
package vsatisfies 8.4 7.3 6.1
|
sl@0
|
1247 |
} 0
|
sl@0
|
1248 |
|
sl@0
|
1249 |
|
sl@0
|
1250 |
proc prefer {args} {
|
sl@0
|
1251 |
set ip [interp create]
|
sl@0
|
1252 |
lappend res [$ip eval {package prefer}]
|
sl@0
|
1253 |
foreach mode $args {
|
sl@0
|
1254 |
lappend res [$ip eval [list package prefer $mode]]
|
sl@0
|
1255 |
}
|
sl@0
|
1256 |
interp delete $ip
|
sl@0
|
1257 |
return $res
|
sl@0
|
1258 |
}
|
sl@0
|
1259 |
|
sl@0
|
1260 |
test package-prefer-1.0 {default} tip268 {
|
sl@0
|
1261 |
prefer
|
sl@0
|
1262 |
} stable
|
sl@0
|
1263 |
|
sl@0
|
1264 |
test package-prefer-1.1 {default} tip268 {
|
sl@0
|
1265 |
set ::env(TCL_PKG_PREFER_LATEST) stable ; # value not relevant!
|
sl@0
|
1266 |
set res [prefer]
|
sl@0
|
1267 |
unset ::env(TCL_PKG_PREFER_LATEST)
|
sl@0
|
1268 |
set res
|
sl@0
|
1269 |
} latest
|
sl@0
|
1270 |
|
sl@0
|
1271 |
test package-prefer-2.0 {wrong\#args} tip268 {
|
sl@0
|
1272 |
catch {package prefer foo bar} msg
|
sl@0
|
1273 |
set msg
|
sl@0
|
1274 |
} {wrong # args: should be "package prefer ?latest|stable?"}
|
sl@0
|
1275 |
|
sl@0
|
1276 |
test package-prefer-2.1 {bogus argument} tip268 {
|
sl@0
|
1277 |
catch {package prefer foo} msg
|
sl@0
|
1278 |
set msg
|
sl@0
|
1279 |
} {bad preference "foo": must be latest or stable}
|
sl@0
|
1280 |
|
sl@0
|
1281 |
test package-prefer-3.0 {set, keep} tip268 {
|
sl@0
|
1282 |
package prefer stable
|
sl@0
|
1283 |
} stable
|
sl@0
|
1284 |
|
sl@0
|
1285 |
test package-prefer-3.1 {set stable, keep} tip268 {
|
sl@0
|
1286 |
prefer stable
|
sl@0
|
1287 |
} {stable stable}
|
sl@0
|
1288 |
|
sl@0
|
1289 |
test package-prefer-3.2 {set latest, change} tip268 {
|
sl@0
|
1290 |
prefer latest
|
sl@0
|
1291 |
} {stable latest}
|
sl@0
|
1292 |
|
sl@0
|
1293 |
test package-prefer-3.3 {set latest, keep} tip268 {
|
sl@0
|
1294 |
prefer latest latest
|
sl@0
|
1295 |
} {stable latest latest}
|
sl@0
|
1296 |
|
sl@0
|
1297 |
test package-prefer-3.4 {set stable, rejected} tip268 {
|
sl@0
|
1298 |
prefer latest stable
|
sl@0
|
1299 |
} {stable latest latest}
|
sl@0
|
1300 |
|
sl@0
|
1301 |
rename prefer {}
|
sl@0
|
1302 |
|
sl@0
|
1303 |
|
sl@0
|
1304 |
set auto_path $oldPath
|
sl@0
|
1305 |
package unknown $oldPkgUnknown
|
sl@0
|
1306 |
concat
|
sl@0
|
1307 |
|
sl@0
|
1308 |
cleanupTests
|
sl@0
|
1309 |
}
|
sl@0
|
1310 |
|
sl@0
|
1311 |
# cleanup
|
sl@0
|
1312 |
interp delete $i
|
sl@0
|
1313 |
::tcltest::cleanupTests
|
sl@0
|
1314 |
return
|