URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [insight/] [tcl/] [tests/] [init.test] - Rev 1765
Compare with Previous | Blame | View Log
# Functionality covered: this file contains a collection of tests for the# auto loading and namespaces.## Sourcing this file into Tcl runs the tests and generates output for# errors. No output means no errors were found.## Copyright (c) 1997 Sun Microsystems, Inc.## See the file "license.terms" for information on usage and redistribution# of this file, and for a DISCLAIMER OF ALL WARRANTIES.## RCS: @(#) $Id: init.test,v 1.1.1.1 2002-01-16 10:25:36 markom Exp $if {[string compare test [info procs test]] == 1} then {source defs}# Clear out any namespaces called test_ns_*catch {eval namespace delete [namespace children :: test_ns_*]}# Six cases - white box testingtest init-1.1 {auto_qualify - absolute cmd - namespace} {auto_qualify ::foo::bar ::blue} ::foo::bartest init-1.2 {auto_qualify - absolute cmd - global} {auto_qualify ::global ::sub} globaltest init-1.3 {auto_qualify - no colons cmd - global} {auto_qualify nocolons ::} nocolonstest init-1.4 {auto_qualify - no colons cmd - namespace} {auto_qualify nocolons ::sub} {::sub::nocolons nocolons}test init-1.5 {auto_qualify - colons in cmd - global} {auto_qualify foo::bar ::} ::foo::bartest init-1.6 {auto_qualify - colons in cmd - namespace} {auto_qualify foo::bar ::sub} {::sub::foo::bar ::foo::bar}# Some additional teststest init-1.7 {auto_qualify - multiples colons 1} {auto_qualify :::foo::::bar ::blue} ::foo::bartest init-1.8 {auto_qualify - multiple colons 2} {auto_qualify :::foo ::bar} foo# we use a sub interp and auto_reset and double the tests because there is 2# places where auto_loading occur (before loading the indexes files and after)set testInterp [interp create]interp eval $testInterp [list set VERBOSE $VERBOSE]interp eval $testInterp [list set TESTS $TESTS]interp eval $testInterp {if {[string compare test [info procs test]] == 1} then {source defs}auto_resetcatch {rename parray {}}test init-2.0 {load parray - stage 1} {set ret [catch {namespace eval ::test {parray}} error]rename parray {} ; # remove it, for the next test - that should not fail.list $ret $error} {1 {no value given for parameter "a" to "parray"}}test init-2.1 {load parray - stage 2} {set ret [catch {namespace eval ::test {parray}} error]list $ret $error} {1 {no value given for parameter "a" to "parray"}}auto_resetcatch {rename ::safe::setLogCmd {}}#unset auto_index(::safe::setLogCmd)#unset auto_oldpathtest init-2.2 {load ::safe::setLogCmd - stage 1} {::safe::setLogCmdrename ::safe::setLogCmd {} ; # should not fail} {}test init-2.3 {load ::safe::setLogCmd - stage 2} {::safe::setLogCmdrename ::safe::setLogCmd {} ; # should not fail} {}auto_resetcatch {rename ::safe::setLogCmd {}}test init-2.4 {load safe:::setLogCmd - stage 1} {safe:::setLogCmd ; # intentionally 3 :rename ::safe::setLogCmd {} ; # should not fail} {}test init-2.5 {load safe:::setLogCmd - stage 2} {safe:::setLogCmd ; # intentionally 3 :rename ::safe::setLogCmd {} ; # should not fail} {}auto_resetcatch {rename ::safe::setLogCmd {}}test init-2.6 {load setLogCmd from safe:: - stage 1} {namespace eval safe setLogCmdrename ::safe::setLogCmd {} ; # should not fail} {}test init-2.7 {oad setLogCmd from safe:: - stage 2} {namespace eval safe setLogCmdrename ::safe::setLogCmd {} ; # should not fail} {}auto_resetpackage require http 2.0catch {rename ::http::geturl {}}test init-2.8 {load http::geturl (package)} {# 3 ':' on purposeset ret [catch {namespace eval ::test {http:::geturl}} error]# removing it, for the next test. should not fail.rename ::http::geturl {} ;list $ret $error} {1 {no value given for parameter "url" to "http:::geturl"}}test init-3.0 {random stuff in the auto_index, should still work} {set auto_index(foo:::bar::blah) {namespace eval foo {namespace eval bar {proc blah {} {return 1}}}}foo:::bar::blah} 1}interp delete $testInterp
