pkg.test
来自「tcl是工具命令语言」· TEST 代码 · 共 666 行 · 第 1/2 页
TEST
666 行
# Commands covered: pkg## This file contains a collection of tests for one or more of the Tcl# built-in commands. Sourcing this file into Tcl runs the tests and# generates output for errors. No output means no errors were found.## Copyright (c) 1995-1996 Sun Microsystems, Inc.# Copyright (c) 1998-1999 by Scriptics Corporation.## See the file "license.terms" for information on usage and redistribution# of this file, and for a DISCLAIMER OF ALL WARRANTIES.## RCS: @(#) $Id: pkg.test,v 1.9 2001/08/06 19:13:29 dgp Exp $if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import -force ::tcltest::*}# Do all this in a slave interp to avoid garbaging the# package listset i [interp create]interp eval $i [list set argv $argv]interp eval $i [list package require tcltest]interp eval $i [list namespace import -force ::tcltest::*]interp eval $i {eval package forget [package names]set oldPkgUnknown [package unknown]package unknown {}set oldPath $auto_pathset auto_path ""test pkg-1.1 {Tcl_PkgProvide procedure} { package forget t package provide t 2.3} {}test pkg-1.2 {Tcl_PkgProvide procedure} { package forget t package provide t 2.3 list [catch {package provide t 2.2} msg] $msg} {1 {conflicting versions provided for package "t": 2.3, then 2.2}}test pkg-1.3 {Tcl_PkgProvide procedure} { package forget t package provide t 2.3 list [catch {package provide t 2.4} msg] $msg} {1 {conflicting versions provided for package "t": 2.3, then 2.4}}test pkg-1.4 {Tcl_PkgProvide procedure} { package forget t package provide t 2.3 list [catch {package provide t 3.3} msg] $msg} {1 {conflicting versions provided for package "t": 2.3, then 3.3}}test pkg-1.5 {Tcl_PkgProvide procedure} { package forget t package provide t 2.3 package provide t 2.3} {}test pkg-2.1 {Tcl_PkgRequire procedure, picking best version} { package forget t foreach i {1.4 3.4 2.3 2.4 2.2} { package ifneeded t $i "set x $i; package provide t $i" } set x xxx package require t set x} {3.4}test pkg-2.2 {Tcl_PkgRequire procedure, picking best version} { package forget t foreach i {1.4 3.4 2.3 2.4 2.2 3.5 3.2} { package ifneeded t $i "set x $i; package provide t $i" } set x xxx package require t set x} {3.5}test pkg-2.3 {Tcl_PkgRequire procedure, picking best version} { package forget t foreach i {3.5 2.1 2.3} { package ifneeded t $i "set x $i; package provide t $i" } set x xxx package require t 2.2 set x} {2.3}test pkg-2.4 {Tcl_PkgRequire procedure, picking best version} { package forget t foreach i {1.4 3.4 2.3 2.4 2.2} { package ifneeded t $i "set x $i; package provide t $i" } set x xxx package require -exact t 2.3 set x} {2.3}test pkg-2.5 {Tcl_PkgRequire procedure, picking best version} { package forget t foreach i {1.4 3.4 2.3 2.4 2.2} { package ifneeded t $i "set x $i; package provide t $i" } set x xxx package require t 2.1 set x} {2.4}test pkg-2.6 {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 t 2.5} msg] $msg} {1 {can't find package t 2.5}}test pkg-2.7 {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 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} { 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.9 {Tcl_PkgRequire procedure, can't find suitable version} { package forget t package unknown {} list [catch {package require t} msg] $msg} {1 {can't find package t}}test pkg-2.10 {Tcl_PkgRequire procedure, error in ifneeded script} { 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} {1 {ifneeded test} {ifneeded test while executing"error "ifneeded test"" ("package ifneeded" script) invoked from within"package require t 2.1"}}test pkg-2.11 {Tcl_PkgRequire procedure, ifneeded script doesn't provide package} { package forget t package ifneeded t 2.1 "set x invoked" set x xxx list [catch {package require t 2.1} msg] $msg $x} {1 {can't find package t 2.1} invoked}test pkg-2.12 {Tcl_PkgRequire procedure, self-deleting script} { package forget t package ifneeded t 1.2 "package forget t; set x 1.2; package provide t 1.2" set x xxx package require t 1.2 set x} {1.2}test pkg-2.13 {Tcl_PkgRequire procedure, "package unknown" support} { 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.14 {Tcl_PkgRequire procedure, "package unknown" support} { proc pkgUnknown args { package ifneeded t 1.2 "set x loaded; package provide t 1.2" } package forget t package unknown pkgUnknown set x xxx set result [list [package require t] $x] package unknown {} set result} {1.2 loaded}test pkg-2.15 {Tcl_PkgRequire procedure, "package unknown" support} { 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.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] 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.17 {Tcl_PkgRequire procedure, "package unknown" doesn't load package} { 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.18 {Tcl_PkgRequire procedure, version checks} { package forget t package provide t 2.3 package require t} {2.3}test pkg-2.19 {Tcl_PkgRequire procedure, version checks} { package forget t package provide t 2.3 package require t 2.1} {2.3}test pkg-2.20 {Tcl_PkgRequire procedure, version checks} { package forget t package provide t 2.3 package require t 2.3} {2.3}test pkg-2.21 {Tcl_PkgRequire procedure, version checks} { package forget t package provide t 2.3 list [catch {package require t 2.4} msg] $msg} {1 {version conflict for package "t": have 2.3, need 2.4}}test pkg-2.22 {Tcl_PkgRequire procedure, version checks} { package forget t package provide t 2.3 list [catch {package require t 1.2} msg] $msg} {1 {version conflict for package "t": have 2.3, need 1.2}}test pkg-2.23 {Tcl_PkgRequire procedure, version checks} { package forget t package provide t 2.3 package require -exact t 2.3} {2.3}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-3.1 {Tcl_PackageCmd procedure} { list [catch {package} msg] $msg} {1 {wrong # args: should be "package option ?arg arg ...?"}}test pkg-3.2 {Tcl_PackageCmd procedure, "forget" option} { foreach i [package names] { package forget $i } package names} {}test pkg-3.3 {Tcl_PackageCmd procedure, "forget" option} { foreach i [package names] { package forget $i } package forget foo} {}test pkg-3.4 {Tcl_PackageCmd procedure, "forget" option} { foreach i [package names] { package forget $i } package ifneeded t 1.1 {first script} package ifneeded t 2.3 {second script} package ifneeded x 1.4 {x's script} set result {} lappend result [lsort [package names]] [package versions t] package forget t lappend result [lsort [package names]] [package versions t]} {{t x} {1.1 2.3} x {}}test pkg-3.5 {Tcl_PackageCmd procedure, "forget" option} { foreach i [package names] { package forget $i } package ifneeded a 1.1 {first script} package ifneeded b 2.3 {second script} package ifneeded c 1.4 {third script} package forget set result [list [lsort [package names]]] package forget a c lappend result [lsort [package names]]} {{a b c} b}test pkg-3.5.1 {Tcl_PackageCmd procedure, "forget" option} { # Test for Bug 415273 package ifneeded a 1 "I should have been forgotten" package forget no-such-package a set x [package ifneeded a 1] package forget a set x} {}test pkg-3.6 {Tcl_PackageCmd procedure, "ifneeded" option} { list [catch {package ifneeded a} msg] $msg} {1 {wrong # args: should be "package ifneeded package version ?script?"}}test pkg-3.7 {Tcl_PackageCmd procedure, "ifneeded" option} { list [catch {package ifneeded a b c d} msg] $msg} {1 {wrong # args: should be "package ifneeded package version ?script?"}}test pkg-3.8 {Tcl_PackageCmd procedure, "ifneeded" option} { list [catch {package ifneeded t xyz} msg] $msg} {1 {expected version number but got "xyz"}}test pkg-3.9 {Tcl_PackageCmd procedure, "ifneeded" option} { foreach i [package names] { package forget $i } list [package ifneeded foo 1.1] [package names]} {{} {}}test pkg-3.10 {Tcl_PackageCmd procedure, "ifneeded" option} { package forget t package ifneeded t 1.4 "script for t 1.4" list [package names] [package ifneeded t 1.4] [package versions t]} {t {script for t 1.4} 1.4}test pkg-3.11 {Tcl_PackageCmd procedure, "ifneeded" option} { package forget t
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?