summaryrefslogtreecommitdiffstats
path: root/tests/info.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/info.test')
-rw-r--r--tests/info.test517
1 files changed, 0 insertions, 517 deletions
diff --git a/tests/info.test b/tests/info.test
deleted file mode 100644
index 4522520..0000000
--- a/tests/info.test
+++ /dev/null
@@ -1,517 +0,0 @@
-# Commands covered: info
-#
-# 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) 1991-1994 The Regents of the University of California.
-# Copyright (c) 1994-1997 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: info.test,v 1.6 1999/04/16 00:47:29 stanton Exp $
-
-if {[lsearch [namespace children] ::tcltest] == -1} {
- source [file join [pwd] [file dirname [info script]] defs.tcl]
-}
-
-# Set up namespaces needed to test operation of "info args", "info body",
-# "info default", and "info procs" with imported procedures.
-
-catch {namespace delete test_ns_info1 test_ns_info2}
-
-namespace eval test_ns_info1 {
- namespace export *
- proc p {x} {return "x=$x"}
- proc q {{y 27} z} {return "y=$y"}
-}
-
-
-test info-1.1 {info args option} {
- proc t1 {a bbb c} {return foo}
- info args t1
-} {a bbb c}
-test info-1.2 {info args option} {
- proc t1 {{a default1} {bbb default2} {c default3} args} {return foo}
- info a t1
-} {a bbb c args}
-test info-1.3 {info args option} {
- proc t1 "" {return foo}
- info args t1
-} {}
-test info-1.4 {info args option} {
- catch {rename t1 {}}
- list [catch {info args t1} msg] $msg
-} {1 {"t1" isn't a procedure}}
-test info-1.5 {info args option} {
- list [catch {info args set} msg] $msg
-} {1 {"set" isn't a procedure}}
-test info-1.6 {info args option} {
- proc t1 {a b} {set c 123; set d $c}
- t1 1 2
- info args t1
-} {a b}
-test info-1.7 {info args option} {
- catch {namespace delete test_ns_info2}
- namespace eval test_ns_info2 {
- namespace import ::test_ns_info1::*
- list [info args p] [info args q]
- }
-} {x {y z}}
-
-test info-2.1 {info body option} {
- proc t1 {} {body of t1}
- info body t1
-} {body of t1}
-test info-2.2 {info body option} {
- list [catch {info body set} msg] $msg
-} {1 {"set" isn't a procedure}}
-test info-2.3 {info body option} {
- list [catch {info args set 1} msg] $msg
-} {1 {wrong # args: should be "info args procname"}}
-test info-2.4 {info body option} {
- catch {namespace delete test_ns_info2}
- namespace eval test_ns_info2 {
- namespace import ::test_ns_info1::*
- list [info body p] [info body q]
- }
-} {{return "x=$x"} {return "y=$y"}}
-
-# "info cmdcount" is no longer accurate for compiled commands! The expected
-# result for info-3.1 used to be "3" and is now "1" since the "set"s have
-# been compiled away.
-test info-3.1 {info cmdcount option} {
- set x [info cmdcount]
- set y 12345
- set z [info cm]
- expr $z-$x
-} 1
-test info-3.2 {info cmdcount option} {
- list [catch {info cmdcount 1} msg] $msg
-} {1 {wrong # args: should be "info cmdcount"}}
-
-test info-4.1 {info commands option} {
- proc t1 {} {}
- proc t2 {} {}
- set x " [info commands] "
- list [string match {* t1 *} $x] [string match {* t2 *} $x] \
- [string match {* set *} $x] [string match {* list *} $x]
-} {1 1 1 1}
-test info-4.2 {info commands option} {
- proc t1 {} {}
- rename t1 {}
- set x [info comm]
- string match {* t1 *} $x
-} 0
-test info-4.3 {info commands option} {
- proc _t1_ {} {}
- proc _t2_ {} {}
- info commands _t1_
-} _t1_
-test info-4.4 {info commands option} {
- proc _t1_ {} {}
- proc _t2_ {} {}
- lsort [info commands _t*]
-} {_t1_ _t2_}
-catch {rename _t1_ {}}
-catch {rename _t2_ {}}
-test info-4.5 {info commands option} {
- list [catch {info commands a b} msg] $msg
-} {1 {wrong # args: should be "info commands ?pattern?"}}
-
-test info-5.1 {info complete option} {
- list [catch {info complete} msg] $msg
-} {1 {wrong # args: should be "info complete command"}}
-test info-5.2 {info complete option} {
- info complete abc
-} 1
-test info-5.2 {info complete option} {
- info complete "\{abcd "
-} 0
-test info-5.3 {info complete option} {
- info complete {# Comment should be complete command}
-} 1
-
-test info-6.1 {info default option} {
- proc t1 {a b {c d} {e "long default value"}} {}
- info default t1 a value
-} 0
-test info-6.2 {info default option} {
- proc t1 {a b {c d} {e "long default value"}} {}
- set value 12345
- info d t1 a value
- set value
-} {}
-test info-6.3 {info default option} {
- proc t1 {a b {c d} {e "long default value"}} {}
- info default t1 c value
-} 1
-test info-6.4 {info default option} {
- proc t1 {a b {c d} {e "long default value"}} {}
- set value 12345
- info default t1 c value
- set value
-} d
-test info-6.5 {info default option} {
- proc t1 {a b {c d} {e "long default value"}} {}
- set value 12345
- set x [info default t1 e value]
- list $x $value
-} {1 {long default value}}
-test info-6.6 {info default option} {
- list [catch {info default a b} msg] $msg
-} {1 {wrong # args: should be "info default procname arg varname"}}
-test info-6.7 {info default option} {
- list [catch {info default _nonexistent_ a b} msg] $msg
-} {1 {"_nonexistent_" isn't a procedure}}
-test info-6.8 {info default option} {
- proc t1 {a b} {}
- list [catch {info default t1 x value} msg] $msg
-} {1 {procedure "t1" doesn't have an argument "x"}}
-test info-6.9 {info default option} {
- catch {unset a}
- set a(0) 88
- proc t1 {a b} {}
- list [catch {info default t1 a a} msg] $msg
-} {1 {couldn't store default value in variable "a"}}
-test info-6.10 {info default option} {
- catch {unset a}
- set a(0) 88
- proc t1 {{a 18} b} {}
- list [catch {info default t1 a a} msg] $msg
-} {1 {couldn't store default value in variable "a"}}
-test info-6.11 {info default option} {
- catch {namespace delete test_ns_info2}
- namespace eval test_ns_info2 {
- namespace import ::test_ns_info1::*
- list [info default p x foo] $foo [info default q y bar] $bar
- }
-} {0 {} 1 27}
-catch {unset a}
-
-test info-7.1 {info exists option} {
- set value foo
- info exists value
-} 1
-catch {unset _nonexistent_}
-test info-7.2 {info exists option} {
- info exists _nonexistent_
-} 0
-test info-7.3 {info exists option} {
- proc t1 {x} {return [info exists x]}
- t1 2
-} 1
-test info-7.4 {info exists option} {
- proc t1 {x} {
- global _nonexistent_
- return [info exists _nonexistent_]
- }
- t1 2
-} 0
-test info-7.5 {info exists option} {
- proc t1 {x} {
- set y 47
- return [info exists y]
- }
- t1 2
-} 1
-test info-7.6 {info exists option} {
- proc t1 {x} {return [info exists value]}
- t1 2
-} 0
-test info-7.7 {info exists option} {
- catch {unset x}
- set x(2) 44
- list [info exists x] [info exists x(1)] [info exists x(2)]
-} {1 0 1}
-catch {unset x}
-test info-7.8 {info exists option} {
- list [catch {info exists} msg] $msg
-} {1 {wrong # args: should be "info exists varName"}}
-test info-7.9 {info exists option} {
- list [catch {info exists 1 2} msg] $msg
-} {1 {wrong # args: should be "info exists varName"}}
-
-test info-8.1 {info globals option} {
- set x 1
- set y 2
- set value 23
- set a " [info globals] "
- list [string match {* x *} $a] [string match {* y *} $a] \
- [string match {* value *} $a] [string match {* _foobar_ *} $a]
-} {1 1 1 0}
-test info-8.2 {info globals option} {
- set _xxx1 1
- set _xxx2 2
- lsort [info g _xxx*]
-} {_xxx1 _xxx2}
-test info-8.3 {info globals option} {
- list [catch {info globals 1 2} msg] $msg
-} {1 {wrong # args: should be "info globals ?pattern?"}}
-
-test info-9.1 {info level option} {
- info level
-} 0
-test info-9.2 {info level option} {
- proc t1 {a b} {
- set x [info le]
- set y [info level 1]
- list $x $y
- }
- t1 146 testString
-} {1 {t1 146 testString}}
-test info-9.3 {info level option} {
- proc t1 {a b} {
- t2 [expr $a*2] $b
- }
- proc t2 {x y} {
- list [info level] [info level 1] [info level 2] [info level -1] \
- [info level 0]
- }
- t1 146 {a {b c} {{{c}}}}
-} {2 {t1 146 {a {b c} {{{c}}}}} {t2 292 {a {b c} {{{c}}}}} {t1 146 {a {b c} {{{c}}}}} {t2 292 {a {b c} {{{c}}}}}}
-test info-9.4 {info level option} {
- proc t1 {} {
- set x [info level]
- set y [info level 1]
- list $x $y
- }
- t1
-} {1 t1}
-test info-9.5 {info level option} {
- list [catch {info level 1 2} msg] $msg
-} {1 {wrong # args: should be "info level ?number?"}}
-test info-9.6 {info level option} {
- list [catch {info level 123a} msg] $msg
-} {1 {expected integer but got "123a"}}
-test info-9.7 {info level option} {
- list [catch {info level 0} msg] $msg
-} {1 {bad level "0"}}
-test info-9.8 {info level option} {
- proc t1 {} {info level -1}
- list [catch {t1} msg] $msg
-} {1 {bad level "-1"}}
-test info-9.9 {info level option} {
- proc t1 {x} {info level $x}
- list [catch {t1 -3} msg] $msg
-} {1 {bad level "-3"}}
-
-set savedLibrary $tcl_library
-test info-10.1 {info library option} {
- list [catch {info library x} msg] $msg
-} {1 {wrong # args: should be "info library"}}
-test info-10.2 {info library option} {
- set tcl_library 12345
- info library
-} {12345}
-test info-10.3 {info library option} {
- unset tcl_library
- list [catch {info library} msg] $msg
-} {1 {no library has been specified for Tcl}}
-set tcl_library $savedLibrary
-
-test info-11.1 {info loaded option} {
- list [catch {info loaded a b} msg] $msg
-} {1 {wrong # args: should be "info loaded ?interp?"}}
-test info-11.2 {info loaded option} {
- list [catch {info loaded {}}] [catch {info loaded gorp} msg] $msg
-} {0 1 {could not find interpreter "gorp"}}
-
-test info-12.1 {info locals option} {
- set a 22
- proc t1 {x y} {
- set b 13
- set c testing
- global a
- return [info locals]
- }
- lsort [t1 23 24]
-} {b c x y}
-test info-12.2 {info locals option} {
- proc t1 {x y} {
- set xx1 2
- set xx2 3
- set y 4
- return [info loc x*]
- }
- lsort [t1 2 3]
-} {x xx1 xx2}
-test info-12.3 {info locals option} {
- list [catch {info locals 1 2} msg] $msg
-} {1 {wrong # args: should be "info locals ?pattern?"}}
-test info-12.4 {info locals option} {
- info locals
-} {}
-test info-12.5 {info locals option} {
- proc t1 {} {return [info locals]}
- t1
-} {}
-test info-12.6 {info locals vs unset compiled locals} {
- proc t1 {lst} {
- foreach $lst $lst {}
- unset lst
- return [info locals]
- }
- lsort [t1 {a b c c d e f}]
-} {a b c d e f}
-test info-12.7 {info locals with temporary variables} {
- proc t1 {} {
- foreach a {b c} {}
- info locals
- }
- t1
-} {a}
-
-test info-13.1 {info nameofexecutable option} {
- list [catch {info nameofexecutable foo} msg] $msg
-} {1 {wrong # args: should be "info nameofexecutable"}}
-
-test info-14.1 {info patchlevel option} {
- set a [info patchlevel]
- regexp {[0-9]+\.[0-9]+([p[0-9]+)?} $a
-} 1
-test info-14.2 {info patchlevel option} {
- list [catch {info patchlevel a} msg] $msg
-} {1 {wrong # args: should be "info patchlevel"}}
-test info-14.3 {info patchlevel option} {
- set t $tcl_patchLevel
- unset tcl_patchLevel
- set result [list [catch {info patchlevel} msg] $msg]
- set tcl_patchLevel $t
- set result
-} {1 {can't read "tcl_patchLevel": no such variable}}
-
-test info-15.1 {info procs option} {
- proc t1 {} {}
- proc t2 {} {}
- set x " [info procs] "
- list [string match {* t1 *} $x] [string match {* t2 *} $x] \
- [string match {* _undefined_ *} $x]
-} {1 1 0}
-test info-15.2 {info procs option} {
- proc _tt1 {} {}
- proc _tt2 {} {}
- lsort [info pr _tt*]
-} {_tt1 _tt2}
-catch {rename _tt1 {}}
-catch {rename _tt2 {}}
-test info-15.3 {info procs option} {
- list [catch {info procs 2 3} msg] $msg
-} {1 {wrong # args: should be "info procs ?pattern?"}}
-test info-15.4 {info procs option} {
- catch {namespace delete test_ns_info2}
- namespace eval test_ns_info2 {
- namespace import ::test_ns_info1::*
- proc r {} {}
- list [info procs] [info procs p*]
- }
-} {{p q r} p}
-
-test info-16.1 {info script option} {
- list [catch {info script x} msg] $msg
-} {1 {wrong # args: should be "info script"}}
-test info-16.2 {info script option} {
- file tail [info sc]
-} "info.test"
-removeFile gorp.info
-makeFile "info script\n" gorp.info
-test info-16.3 {info script option} {
- list [source gorp.info] [file tail [info script]]
-} [list gorp.info info.test]
-test info-16.4 {resetting "info script" after errors} {
- catch {source ~_nobody_/foo}
- file tail [info script]
-} "info.test"
-test info-16.5 {resetting "info script" after errors} {
- catch {source _nonexistent_}
- file tail [info script]
-} "info.test"
-removeFile gorp.info
-
-test info-17.1 {info sharedlibextension option} {
- list [catch {info sharedlibextension foo} msg] $msg
-} {1 {wrong # args: should be "info sharedlibextension"}}
-
-test info-18.1 {info tclversion option} {
- set x [info tclversion]
- scan $x "%d.%d%c" a b c
-} 2
-test info-18.2 {info tclversion option} {
- list [catch {info t 2} msg] $msg
-} {1 {wrong # args: should be "info tclversion"}}
-test info-18.3 {info tclversion option} {
- set t $tcl_version
- unset tcl_version
- set result [list [catch {info tclversion} msg] $msg]
- set tcl_version $t
- set result
-} {1 {can't read "tcl_version": no such variable}}
-
-test info-19.1 {info vars option} {
- set a 1
- set b 2
- proc t1 {x y} {
- global a b
- set c 33
- return [info vars]
- }
- lsort [t1 18 19]
-} {a b c x y}
-test info-19.2 {info vars option} {
- set xxx1 1
- set xxx2 2
- proc t1 {xxa y} {
- global xxx1 xxx2
- set c 33
- return [info vars x*]
- }
- lsort [t1 18 19]
-} {xxa xxx1 xxx2}
-test info-19.3 {info vars option} {
- lsort [info vars]
-} [lsort [info globals]]
-test info-19.4 {info vars option} {
- list [catch {info vars a b} msg] $msg
-} {1 {wrong # args: should be "info vars ?pattern?"}}
-test info-19.5 {info vars with temporary variables} {
- proc t1 {} {
- foreach a {b c} {}
- info vars
- }
- t1
-} {a}
-
-test info-20.1 {miscellaneous error conditions} {
- list [catch {info} msg] $msg
-} {1 {wrong # args: should be "info option ?arg arg ...?"}}
-test info-20.2 {miscellaneous error conditions} {
- list [catch {info gorp} msg] $msg
-} {1 {bad option "gorp": must be args, body, cmdcount, commands, complete, default, exists, globals, hostname, level, library, loaded, locals, nameofexecutable, patchlevel, procs, script, sharedlibextension, tclversion, or vars}}
-test info-20.3 {miscellaneous error conditions} {
- list [catch {info c} msg] $msg
-} {1 {ambiguous option "c": must be args, body, cmdcount, commands, complete, default, exists, globals, hostname, level, library, loaded, locals, nameofexecutable, patchlevel, procs, script, sharedlibextension, tclversion, or vars}}
-test info-20.4 {miscellaneous error conditions} {
- list [catch {info l} msg] $msg
-} {1 {ambiguous option "l": must be args, body, cmdcount, commands, complete, default, exists, globals, hostname, level, library, loaded, locals, nameofexecutable, patchlevel, procs, script, sharedlibextension, tclversion, or vars}}
-test info-20.5 {miscellaneous error conditions} {
- list [catch {info s} msg] $msg
-} {1 {ambiguous option "s": must be args, body, cmdcount, commands, complete, default, exists, globals, hostname, level, library, loaded, locals, nameofexecutable, patchlevel, procs, script, sharedlibextension, tclversion, or vars}}
-
-# cleanup
-catch {namespace delete test_ns_info1 test_ns_info2}
-::tcltest::cleanupTests
-return
-
-
-
-
-
-
-
-
-
-
-
-