summaryrefslogtreecommitdiffstats
path: root/tests/pkg.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pkg.test')
-rw-r--r--tests/pkg.test295
1 files changed, 101 insertions, 194 deletions
diff --git a/tests/pkg.test b/tests/pkg.test
index 68d2a92..b935a3f 100644
--- a/tests/pkg.test
+++ b/tests/pkg.test
@@ -1,3 +1,4 @@
+# -*- tcl -*-
# Commands covered: pkg
#
# This file contains a collection of tests for one or more of the Tcl
@@ -11,27 +12,23 @@
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
if {[lsearch [namespace children] ::tcltest] == -1} {
- package require tcltest 2
+ package require tcltest 2.3.4
namespace import -force ::tcltest::*
}
# Do all this in a slave interp to avoid garbaging the
# package list
set i [interp create]
-interp eval $i [list set argv $argv]
-interp eval $i [list package require tcltest 2]
-interp eval $i [list namespace import -force ::tcltest::*]
-interp eval $i {
+tcltest::loadIntoSlaveInterpreter $i {*}$argv
-eval package forget [package names]
+interp eval $i {
+namespace import -force ::tcltest::*
+package forget {*}[package names]
set oldPkgUnknown [package unknown]
package unknown {}
set oldPath $auto_path
set auto_path ""
-testConstraint tip268 [info exists tcl_platform(tip,268)]
-testConstraint !tip268 [expr {![info exists tcl_platform(tip,268)]}]
-
test pkg-1.1 {Tcl_PkgProvide procedure} {
package forget t
package provide t 2.3
@@ -57,7 +54,7 @@ test pkg-1.5 {Tcl_PkgProvide procedure} {
package provide t 2.3
} {}
-test pkg-1.6 {Tcl_PkgProvide procedure} tip268 {
+test pkg-1.6 {Tcl_PkgProvide procedure} {
package forget t
package provide t 2.3a1
} {}
@@ -67,7 +64,7 @@ foreach v {
2.3k1 2a3a2 2ab3 2.a4 2.b4 2b.4 2a.4 2ba4 2a4b1
2b4a1 2b3b2
} {
- test pkg-1.7.$n {Tcl_PkgProvide procedure} tip268 {
+ test pkg-1.7.$n {Tcl_PkgProvide procedure} {
package forget t
list [catch {package provide t $v} msg] $msg
} [list 1 "expected version number but got \"$v\""]
@@ -135,24 +132,14 @@ test pkg-2.7 {Tcl_PkgRequire procedure, can't find suitable version} {
}
list [catch {package require t 4.1} msg] $msg
} {1 {can't find package t 4.1}}
-test pkg-2.8 {Tcl_PkgRequire procedure, can't find suitable version} !tip268 {
- package forget t
- package unknown {}
- foreach i {1.4 3.4 2.3 2.4 2.2} {
- package ifneeded t $i "set x $i"
- }
- list [catch {package require -exact t 1.3} msg] $msg
-
-} {1 {can't find package t 1.3}}
-test pkg-2.8-268 {Tcl_PkgRequire procedure, can't find suitable version} tip268 {
+test pkg-2.8 {Tcl_PkgRequire procedure, can't find suitable version} {
package forget t
package unknown {}
foreach i {1.4 3.4 2.3 2.4 2.2} {
package ifneeded t $i "set x $i"
}
list [catch {package require -exact t 1.3} msg] $msg
-
-} {1 {can't find package t 1.3}}
+} {1 {can't find package t exactly 1.3}}
test pkg-2.9 {Tcl_PkgRequire procedure, can't find suitable version} {
package forget t
package unknown {}
@@ -161,7 +148,7 @@ test pkg-2.9 {Tcl_PkgRequire procedure, can't find suitable version} {
test pkg-2.10 {Tcl_PkgRequire procedure, error in ifneeded script} -body {
package forget t
package ifneeded t 2.1 {package provide t 2.1; error "ifneeded test"}
- list [catch {package require t 2.1} msg] $msg $errorInfo
+ list [catch {package require t 2.1} msg] $msg $::errorInfo
} -match glob -result {1 {ifneeded test} {ifneeded test
while executing
"error "ifneeded test""
@@ -181,24 +168,7 @@ test pkg-2.12 {Tcl_PkgRequire procedure, self-deleting script} {
package require t 1.2
set x
} {1.2}
-test pkg-2.13-!268 {Tcl_PkgRequire procedure, "package unknown" support} !tip268 {
- proc pkgUnknown args {
- global x
- set x $args
- package provide [lindex $args 0] [lindex $args 1]
- }
- package forget t
- foreach i {1.4 3.4 2.3 2.4 2.2} {
- package ifneeded t $i "set x $i"
- }
- package unknown pkgUnknown
- set x xxx
- package require -exact t 1.5
- package unknown {}
- set x
-} {t 1.5 -exact}
-
-test pkg-2.13-268 {Tcl_PkgRequire procedure, "package unknown" support} tip268 {
+test pkg-2.13 {Tcl_PkgRequire procedure, "package unknown" support} {
proc pkgUnknown args {
# args = name requirement
# requirement = v-v (for exact version)
@@ -216,7 +186,6 @@ test pkg-2.13-268 {Tcl_PkgRequire procedure, "package unknown" support} tip268 {
package unknown {}
set x
} {t 1.5-1.5}
-
test pkg-2.14 {Tcl_PkgRequire procedure, "package unknown" support} {
proc pkgUnknown args {
package ifneeded t 1.2 "set x loaded; package provide t 1.2"
@@ -228,20 +197,7 @@ test pkg-2.14 {Tcl_PkgRequire procedure, "package unknown" support} {
package unknown {}
set result
} {1.2 loaded}
-test pkg-2.15 {Tcl_PkgRequire procedure, "package unknown" support} !tip268 {
- proc pkgUnknown args {
- global x
- set x $args
- package provide [lindex $args 0] 2.0
- }
- package forget {a b}
- package unknown pkgUnknown
- set x xxx
- package require {a b}
- package unknown {}
- set x
-} {{a b} {}}
-test pkg-2.15-268 {Tcl_PkgRequire procedure, "package unknown" support} tip268 {
+test pkg-2.15 {Tcl_PkgRequire procedure, "package unknown" support} {
proc pkgUnknown args {
global x
set x $args
@@ -254,31 +210,13 @@ test pkg-2.15-268 {Tcl_PkgRequire procedure, "package unknown" support} tip268 {
package unknown {}
set x
} {{a b} 0-}
-test pkg-2.16 {Tcl_PkgRequire procedure, "package unknown" error} !tip268 {
- proc pkgUnknown args {
- error "testing package unknown"
- }
- package forget t
- package unknown pkgUnknown
- set result [list [catch {package require t} msg] $msg $errorInfo]
- package unknown {}
- set result
-} {1 {testing package unknown} {testing package unknown
- while executing
-"error "testing package unknown""
- (procedure "pkgUnknown" line 2)
- invoked from within
-"pkgUnknown t {}"
- ("package unknown" script)
- invoked from within
-"package require t"}}
-test pkg-2.16-268 {Tcl_PkgRequire procedure, "package unknown" error} tip268 {
+test pkg-2.16 {Tcl_PkgRequire procedure, "package unknown" error} {
proc pkgUnknown args {
error "testing package unknown"
}
package forget t
package unknown pkgUnknown
- set result [list [catch {package require t} msg] $msg $errorInfo]
+ set result [list [catch {package require t} msg] $msg $::errorInfo]
package unknown {}
set result
} {1 {testing package unknown} {testing package unknown
@@ -290,22 +228,7 @@ test pkg-2.16-268 {Tcl_PkgRequire procedure, "package unknown" error} tip268 {
("package unknown" script)
invoked from within
"package require t"}}
-test pkg-2.17 {Tcl_PkgRequire procedure, "package unknown" doesn't load package} !tip268 {
- proc pkgUnknown args {
- global x
- set x $args
- }
- package forget t
- foreach i {1.4 3.4 2.3 2.4 2.2} {
- package ifneeded t $i "set x $i"
- }
- package unknown pkgUnknown
- set x xxx
- set result [list [catch {package require -exact t 1.5} msg] $msg $x]
- package unknown {}
- set result
-} {1 {can't find package t 1.5} {t 1.5 -exact}}
-test pkg-2.17-268 {Tcl_PkgRequire procedure, "package unknown" doesn't load package} tip268 {
+test pkg-2.17 {Tcl_PkgRequire procedure, "package unknown" doesn't load package} {
proc pkgUnknown args {
global x
set x $args
@@ -319,7 +242,7 @@ test pkg-2.17-268 {Tcl_PkgRequire procedure, "package unknown" doesn't load pack
set result [list [catch {package require -exact t 1.5} msg] $msg $x]
package unknown {}
set result
-} {1 {can't find package t 1.5} {t 1.5-1.5}}
+} {1 {can't find package t exactly 1.5} {t 1.5-1.5}}
test pkg-2.18 {Tcl_PkgRequire procedure, version checks} {
package forget t
package provide t 2.3
@@ -350,28 +273,23 @@ test pkg-2.23 {Tcl_PkgRequire procedure, version checks} {
package provide t 2.3
package require -exact t 2.3
} {2.3}
-test pkg-2.24 {Tcl_PkgRequire procedure, version checks} !tip268 {
+test pkg-2.24 {Tcl_PkgRequire procedure, version checks} {
package forget t
package provide t 2.3
list [catch {package require -exact t 2.2} msg] $msg
-} {1 {version conflict for package "t": have 2.3, need 2.2}}
-test pkg-2.24-268 {Tcl_PkgRequire procedure, version checks} tip268 {
- package forget t
- package provide t 2.3
- list [catch {package require -exact t 2.2} msg] $msg
-} {1 {version conflict for package "t": have 2.3, need 2.2}}
+} {1 {version conflict for package "t": have 2.3, need exactly 2.2}}
test pkg-2.25 {Tcl_PkgRequire procedure, error in ifneeded script} -body {
package forget t
package ifneeded t 2.1 {package provide t 2.1; error "ifneeded test" EI}
- list [catch {package require t 2.1} msg] $msg $errorInfo
+ list [catch {package require t 2.1} msg] $msg $::errorInfo
} -match glob -result {1 {ifneeded test} {EI
("package ifneeded*" script)
invoked from within
-"package require t 2.1"}} -constraints knownBug
+"package require t 2.1"}}
test pkg-2.26 {Tcl_PkgRequire procedure, error in ifneeded script} -body {
package forget t
package ifneeded t 2.1 {package provide t 2.1; foreach x 1 {error "ifneeded test" EI}}
- list [catch {package require t 2.1} msg] $msg $errorInfo
+ list [catch {package require t 2.1} msg] $msg $::errorInfo
} -match glob -result {1 {ifneeded test} {EI
("foreach" body line 1)
invoked from within
@@ -450,7 +368,7 @@ test pkg-2.34 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
package require foo 1
} -cleanup {
package forget foo
-} -result 1.1
+} -returnCodes error -match glob -result {attempt to provide package * failed:*}
test pkg-2.34.1 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
package forget foo
} -body {
@@ -458,7 +376,7 @@ test pkg-2.34.1 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
package require foo 1
} -cleanup {
package forget foo
-} -result 1
+} -returnCodes error -match glob -result {attempt to provide package * failed:*}
test pkg-2.34.2 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
package forget foo
} -body {
@@ -505,10 +423,9 @@ test pkg-2.37 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
test pkg-2.38 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
package forget foo
} -body {
- package ifneeded foo 1 {proc x {} {return -code 10}; x}
+ package ifneeded foo 1 {return -level 0 -code 10}
package require foo 1
} -cleanup {
- rename x {}
package forget foo
} -returnCodes error -match glob \
-result {attempt to provide package * failed: bad return code:*}
@@ -555,19 +472,23 @@ test pkg-2.42 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
test pkg-2.43 {Tcl_PkgRequire: consistent return values (1162286)} -setup {
package forget foo
set saveUnknown [package unknown]
- proc x args {return -code 10}
- package unknown x
+ package unknown {return -level 0 -code 10 ;#}
} -body {
package require foo 1
} -cleanup {
- rename x {}
package forget foo
package unknown $saveUnknown
} -returnCodes error -match glob -result {bad return code:*}
+test pkg-2.44 {Tcl_PkgRequire: exact version matching (1578344)} -setup {
+ package provide demo 1.2.3
+} -body {
+ package require -exact demo 1.2
+} -cleanup {
+ package forget demo
+} -returnCodes error -result {version conflict for package "demo": have 1.2.3, need exactly 1.2}
-
-test pkg-2.50 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
+test pkg-2.50 {Tcl_PkgRequire procedure, picking best stable version} {
package forget t
foreach i {1.4 3.4 4.0a1 2.3 2.4 2.2} {
package ifneeded t $i "set x $i; package provide t $i"
@@ -577,7 +498,7 @@ test pkg-2.50 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
set x
} {3.4}
-test pkg-2.51 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
+test pkg-2.51 {Tcl_PkgRequire procedure, picking best stable version} {
package forget t
foreach i {1.2b1 1.2 1.3a2 1.3} {
package ifneeded t $i "set x $i; package provide t $i"
@@ -587,7 +508,7 @@ test pkg-2.51 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
set x
} {1.3}
-test pkg-2.52 {Tcl_PkgRequire procedure, picking best stable version} tip268 {
+test pkg-2.52 {Tcl_PkgRequire procedure, picking best stable version} {
package forget t
foreach i {1.2b1 1.2 1.3 1.3a2} {
package ifneeded t $i "set x $i; package provide t $i"
@@ -722,42 +643,26 @@ test pkg-3.21 {Tcl_PackageCmd procedure, "provide" option} {
package forget t
list [catch {package provide t a.b} msg] $msg
} {1 {expected version number but got "a.b"}}
-test pkg-3.22 {Tcl_PackageCmd procedure, "require" option} !tip268 {
- list [catch {package require} msg] $msg
-} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
-test pkg-3.22-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
+test pkg-3.22 {Tcl_PackageCmd procedure, "require" option} {
list [catch {package require} msg] $msg
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
-test pkg-3.23 {Tcl_PackageCmd procedure, "require" option} !tip268 {
- list [catch {package require a b c} msg] $msg
-} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
-test pkg-3.24 {Tcl_PackageCmd procedure, "require" option} !tip268 {
- list [catch {package require -exact a b c} msg] $msg
-} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
-test pkg-3.24-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
+
+test pkg-3.24 {Tcl_PackageCmd procedure, "require" option} {
list [catch {package require -exact a b c} msg] $msg
# Exact syntax: -exact name version
# name ?requirement...?
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
-test pkg-3.25 {Tcl_PackageCmd procedure, "require" option} !tip268 {
- list [catch {package require -bs a b} msg] $msg
-} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
+
test pkg-3.26 {Tcl_PackageCmd procedure, "require" option} {
list [catch {package require x a.b} msg] $msg
} {1 {expected version number but got "a.b"}}
test pkg-3.27 {Tcl_PackageCmd procedure, "require" option} {
list [catch {package require -exact x a.b} msg] $msg
} {1 {expected version number but got "a.b"}}
-test pkg-3.28 {Tcl_PackageCmd procedure, "require" option} !tip268 {
- list [catch {package require -exact x} msg] $msg
-} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
-test pkg-3.28-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
+test pkg-3.28 {Tcl_PackageCmd procedure, "require" option} {
list [catch {package require -exact x} msg] $msg
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
-test pkg-3.29 {Tcl_PackageCmd procedure, "require" option} !tip268 {
- list [catch {package require -exact} msg] $msg
-} {1 {wrong # args: should be "package require ?-exact? package ?version?"}}
-test pkg-3.29-268 {Tcl_PackageCmd procedure, "require" option} tip268 {
+test pkg-3.29 {Tcl_PackageCmd procedure, "require" option} {
list [catch {package require -exact} msg] $msg
} {1 {wrong # args: should be "package require ?-exact? package ?requirement...?"}}
test pkg-3.30 {Tcl_PackageCmd procedure, "require" option} {
@@ -825,15 +730,10 @@ test pkg-3.46 {Tcl_PackageCmd procedure, "versions" option} {
package ifneeded t 2.4 y
package versions t
} {2.3 2.4}
-test pkg-3.47 {Tcl_PackageCmd procedure, "vsatisfies" option} !tip268 {
- list [catch {package vsatisfies a} msg] $msg
-} {1 {wrong # args: should be "package vsatisfies version1 version2"}}
-test pkg-3.47-268 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
+test pkg-3.47 {Tcl_PackageCmd procedure, "vsatisfies" option} {
list [catch {package vsatisfies a} msg] $msg
} {1 {wrong # args: should be "package vsatisfies version requirement requirement..."}}
-test pkg-3.48 {Tcl_PackageCmd procedure, "vsatisfies" option} !tip268 {
- list [catch {package vsatisfies a b c} msg] $msg
-} {1 {wrong # args: should be "package vsatisfies version1 version2"}}
+
test pkg-3.49 {Tcl_PackageCmd procedure, "vsatisfies" option} {
list [catch {package vsatisfies x.y 3.4} msg] $msg
} {1 {expected version number but got "x.y"}}
@@ -846,25 +746,23 @@ test pkg-3.51 {Tcl_PackageCmd procedure, "vsatisfies" option} {
test pkg-3.52 {Tcl_PackageCmd procedure, "vsatisfies" option} {
package vs 2.3 1.2
} {0}
-test pkg-3.53 {Tcl_PackageCmd procedure, "versions" option} !tip268 {
- list [catch {package foo} msg] $msg
-} {1 {bad option "foo": must be forget, ifneeded, names, present, provide, require, unknown, vcompare, versions, or vsatisfies}}
-test pkg-3.53-268 {Tcl_PackageCmd procedure, "versions" option} tip268 {
+test pkg-3.53 {Tcl_PackageCmd procedure, "versions" option} {
list [catch {package foo} msg] $msg
} {1 {bad option "foo": must be forget, ifneeded, names, prefer, present, provide, require, unknown, vcompare, versions, or vsatisfies}}
-test pkg-3.54 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
+test pkg-3.54 {Tcl_PackageCmd procedure, "vsatisfies" option} {
list [catch {package vsatisfies 2.1 2.1-3.2-4.5} msg] $msg
} {1 {expected versionMin-versionMax but got "2.1-3.2-4.5"}}
-test pkg-3.55 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
+test pkg-3.55 {Tcl_PackageCmd procedure, "vsatisfies" option} {
list [catch {package vsatisfies 2.1 3.2-x.y} msg] $msg
} {1 {expected version number but got "x.y"}}
-test pkg-3.56 {Tcl_PackageCmd procedure, "vsatisfies" option} tip268 {
+test pkg-3.56 {Tcl_PackageCmd procedure, "vsatisfies" option} {
list [catch {package vsatisfies 2.1 x.y-3.2} msg] $msg
} {1 {expected version number but got "x.y"}}
+
# No tests for FindPackage; can't think up anything detectable
# errors.
@@ -972,7 +870,7 @@ test pkg-7.7 {Tcl_PkgPresent procedure, not exact version} {
package forget t
package provide t 2.4
list [catch {package present -exact t 2.3} msg] $msg
-} {1 {version conflict for package "t": have 2.4, need 2.3}}
+} {1 {version conflict for package "t": have 2.4, need exactly 2.3}}
test pkg-7.8 {Tcl_PkgPresent procedure, unknown package} {
package forget t
list [catch {package present t} msg] $msg
@@ -985,50 +883,36 @@ test pkg-7.10 {Tcl_PkgPresent procedure, unknown package} {
package forget t
list [catch {package present -exact t 2.4} msg] $msg
} {1 {package t 2.4 is not present}}
-test pkg-7.11 {Tcl_PackageCmd procedure, "present" option} !tip268 {
+test pkg-7.11 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present} msg] $msg
-} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
-test pkg-7.12 {Tcl_PackageCmd procedure, "present" option} !tip268 {
+} {1 {wrong # args: should be "package present ?-exact? package ?requirement...?"}}
+test pkg-7.12 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present a b c} msg] $msg
-} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
-test pkg-7.13 {Tcl_PackageCmd procedure, "present" option} !tip268 {
+} {1 {expected version number but got "b"}}
+test pkg-7.13 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present -exact a b c} msg] $msg
-} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
-test pkg-7.14 {Tcl_PackageCmd procedure, "present" option} !tip268 {
+} {1 {wrong # args: should be "package present ?-exact? package ?requirement...?"}}
+test pkg-7.14 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present -bs a b} msg] $msg
-} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
+} {1 {expected version number but got "a"}}
test pkg-7.15 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present x a.b} msg] $msg
} {1 {expected version number but got "a.b"}}
test pkg-7.16 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present -exact x a.b} msg] $msg
} {1 {expected version number but got "a.b"}}
-test pkg-7.17 {Tcl_PackageCmd procedure, "present" option} !tip268 {
+test pkg-7.17 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present -exact x} msg] $msg
-} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
-test pkg-7.18 {Tcl_PackageCmd procedure, "present" option} !tip268 {
+} {1 {wrong # args: should be "package present ?-exact? package ?requirement...?"}}
+test pkg-7.18 {Tcl_PackageCmd procedure, "present" option} {
list [catch {package present -exact} msg] $msg
-} {1 {wrong # args: should be "package present ?-exact? package ?version?"}}
+} {1 {wrong # args: should be "package present ?-exact? package ?requirement...?"}}
-# Note: It is correct that the result of the very first test,
-# i.e. "5.0 5.0a0" is 1, i.e. that version 5.0a0 satisfies a 5.0
-# requirement.
-# The requirement "5.0" internally translates first to "5.0-6", and
-# then to its final form of "5.0a0-6a0". These translations are
-# explicitly specified by the TIP (Search for "padded/extended
-# internally with 'a0'"). This was done intentionally for exactly the
-# tested case, that an alpha package can satisfy a requirement for the
-# regular package. An example would be a package FOO requiring Tcl 8.X
-# for its operation. It can be used with Tcl 8.Xa0. Without our
-# translation that would not be possible.
set n 0
foreach {r p vs vc} {
- 5.0 5.0a0 1 1
- 5.0a0 5.0 1 -1
-
8.5a0 8.5a5 1 -1
8.5a0 8.5b1 1 -1
8.5a0 8.5.1 1 -1
@@ -1065,20 +949,43 @@ foreach {r p vs vc} {
8.5.0 8.6a0 1 -1
8.5.0 8.6b0 1 -1
8.5.0 8.6.0 1 -1
+ 10 8 0 1
+ 8 10 0 -1
+ 0.0.1.2 0.1.2 1 -1
} {
- test package-vsatisfies-1.$n {package vsatisfies} tip268 {
+ test package-vsatisfies-1.$n {package vsatisfies} {
package vsatisfies $p $r
} $vs
- test package-vcompare-1.$n {package vcompare} tip268 {
+ test package-vcompare-1.$n {package vcompare} {
package vcompare $r $p
} $vc
incr n
}
+test package-vcompare-2.0 {package vcompare at 32bit boundary} {
+ package vcompare [expr {1<<31}] [expr {(1<<31)-1}]
+} 1
+
+# Note: It is correct that the result of the very first test,
+# i.e. "5.0 5.0a0" is 1, i.e. that version 5.0a0 satisfies a 5.0
+# requirement.
+
+# The requirement "5.0" internally translates first to "5.0-6", and
+# then to its final form of "5.0a0-6a0". These translations are
+# explicitly specified by the TIP (Search for "padded/extended
+# internally with 'a0'"). This was done intentionally for exactly the
+# tested case, that an alpha package can satisfy a requirement for the
+# regular package. An example would be a package FOO requiring Tcl 8.X
+# for its operation. It can be used with Tcl 8.Xa0. Without our
+# translation that would not be possible.
+
set n 0
foreach {required provided satisfied} {
+ 5.0 5.0a0 1
+ 5.0a0 5.0 1
+
8.5a0- 8.5a5 1
8.5a0- 8.5b1 1
8.5a0- 8.5.1 1
@@ -1218,28 +1125,28 @@ foreach {required provided satisfied} {
8.5a0-8.5.0 8.5 0
} {
- test package-vsatisfies-2.$n "package vsatisfies $provided $required" tip268 {
+ test package-vsatisfies-2.$n "package vsatisfies $provided $required" {
package vsatisfies $provided $required
} $satisfied
incr n
}
-test package-vsatisfies-3.0 "package vsatisfies multiple" tip268 {
+test package-vsatisfies-3.0 "package vsatisfies multiple" {
# yes no
package vsatisfies 8.4 8.4 7.3
} 1
-test package-vsatisfies-3.1 "package vsatisfies multiple" tip268 {
+test package-vsatisfies-3.1 "package vsatisfies multiple" {
# no yes
package vsatisfies 8.4 7.3 8.4
} 1
-test package-vsatisfies-3.2 "package vsatisfies multiple" tip268 {
+test package-vsatisfies-3.2 "package vsatisfies multiple" {
# yes yes
package vsatisfies 8.4.2 8.4 8.4.1
} 1
-test package-vsatisfies-3.3 "package vsatisfies multiple" tip268 {
+test package-vsatisfies-3.3 "package vsatisfies multiple" {
# no no
package vsatisfies 8.4 7.3 6.1
} 0
@@ -1255,44 +1162,44 @@ proc prefer {args} {
return $res
}
-test package-prefer-1.0 {default} tip268 {
+test package-prefer-1.0 {default} {
prefer
} stable
-test package-prefer-1.1 {default} tip268 {
+test package-prefer-1.1 {default} {
set ::env(TCL_PKG_PREFER_LATEST) stable ; # value not relevant!
set res [prefer]
unset ::env(TCL_PKG_PREFER_LATEST)
set res
} latest
-test package-prefer-2.0 {wrong\#args} tip268 {
+test package-prefer-2.0 {wrong\#args} {
catch {package prefer foo bar} msg
set msg
} {wrong # args: should be "package prefer ?latest|stable?"}
-test package-prefer-2.1 {bogus argument} tip268 {
+test package-prefer-2.1 {bogus argument} {
catch {package prefer foo} msg
set msg
} {bad preference "foo": must be latest or stable}
-test package-prefer-3.0 {set, keep} tip268 {
+test package-prefer-3.0 {set, keep} {
package prefer stable
} stable
-test package-prefer-3.1 {set stable, keep} tip268 {
+test package-prefer-3.1 {set stable, keep} {
prefer stable
} {stable stable}
-test package-prefer-3.2 {set latest, change} tip268 {
+test package-prefer-3.2 {set latest, change} {
prefer latest
} {stable latest}
-test package-prefer-3.3 {set latest, keep} tip268 {
+test package-prefer-3.3 {set latest, keep} {
prefer latest latest
} {stable latest latest}
-test package-prefer-3.4 {set stable, rejected} tip268 {
+test package-prefer-3.4 {set stable, rejected} {
prefer latest stable
} {stable latest latest}