summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authordas <das>2006-12-17 03:47:06 (GMT)
committerdas <das>2006-12-17 03:47:06 (GMT)
commite948966663e0c332c86aad5aa167f86f853b9e55 (patch)
tree46ed3f955943f0b626f59adda7a6e0cc020ac4b4 /tests
parentaa3f7eb23be4f2cb040b9fd9cf025fc1740a120b (diff)
downloadtcl-e948966663e0c332c86aad5aa167f86f853b9e55.zip
tcl-e948966663e0c332c86aad5aa167f86f853b9e55.tar.gz
tcl-e948966663e0c332c86aad5aa167f86f853b9e55.tar.bz2
* tests/macOSXLoad.test (new file): add testing of .bundle loading and
* tests/load.test: unloading on Darwin (in addition to * tests/unload.test: existing tests of .dylib loading). * macosx/Tcl.xcodeproj/project.pbxproj: add building of dltest binaries so that testsuite run from Xcode can use them; fix testsuite run script. * unix/configure.in: add support for building dltest binaries as * unix/dltest/Makefile.in: .bundle (in addition to .dylib) on Darwin. * unix/Makefile.in: add stub lib dependency to dltest target. * unix/configure: autoconf-2.59
Diffstat (limited to 'tests')
-rw-r--r--tests/load.test10
-rw-r--r--tests/macOSXLoad.test35
-rw-r--r--tests/unload.test7
3 files changed, 46 insertions, 6 deletions
diff --git a/tests/load.test b/tests/load.test
index acdb025..373327f 100644
--- a/tests/load.test
+++ b/tests/load.test
@@ -10,7 +10,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: load.test,v 1.16 2006/10/09 19:15:45 msofer Exp $
+# RCS: @(#) $Id: load.test,v 1.17 2006/12/17 03:47:08 das Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -19,9 +19,10 @@ if {[lsearch [namespace children] ::tcltest] == -1} {
# Figure out what extension is used for shared libraries on this
# platform.
-
+if {![info exists ext]} {
+ set ext [info sharedlibextension]
+}
# Tests require the existence of one of the DLLs in the dltest directory.
-set ext [info sharedlibextension]
set testDir [file join [file dirname [info nameofexecutable]] dltest]
set x [file join $testDir pkga$ext]
set dll "[file tail $x]Required"
@@ -195,7 +196,8 @@ test load-9.1 {Tcl_StaticPackage, load already-loaded package into another inter
-result {{{{} Loadninepointone} {{} Tcltest}} {{{} Loadninepointone} {{} Tcltest}}} \
-cleanup { interp delete child1 ; interp delete child2 }
-
+
# cleanup
+unset ext
::tcltest::cleanupTests
return
diff --git a/tests/macOSXLoad.test b/tests/macOSXLoad.test
new file mode 100644
index 0000000..6db695e
--- /dev/null
+++ b/tests/macOSXLoad.test
@@ -0,0 +1,35 @@
+# Commands covered: load unload
+#
+# 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 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: macOSXLoad.test,v 1.1 2006/12/17 03:47:08 das Exp $
+
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ package require tcltest 2
+ namespace import -force ::tcltest::*
+}
+set oldTSF $::tcltest::testSingleFile
+set ::tcltest::testSingleFile false
+
+if {[testConstraint unix] && $tcl_platform(os) eq "Darwin" &&
+ ![string match *pkga* [info loaded]]} {
+ # On Darwin, test .bundle (un)loading in addition to .dylib
+ set ext .bundle
+ source [file join [file dirname [info script]] load.test]
+ set ext .bundle
+ source [file join [file dirname [info script]] unload.test]
+ unset -nocomplain ext
+}
+
+set ::tcltest::testSingleFile $oldTSF
+unset oldTSF
+::tcltest::cleanupTests
+return
diff --git a/tests/unload.test b/tests/unload.test
index 8af0672..d26f012 100644
--- a/tests/unload.test
+++ b/tests/unload.test
@@ -11,7 +11,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: unload.test,v 1.5 2006/03/21 11:12:29 dkf Exp $
+# RCS: @(#) $Id: unload.test,v 1.6 2006/12/17 03:47:08 das Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -20,9 +20,11 @@ if {[lsearch [namespace children] ::tcltest] == -1} {
# Figure out what extension is used for shared libraries on this
# platform.
+if {![info exists ext]} {
+ set ext [info sharedlibextension]
+}
# Tests require the existence of one of the DLLs in the dltest directory.
-set ext [info sharedlibextension]
set testDir [file join [file dirname [info nameofexecutable]] dltest]
set x [file join $testDir pkgua$ext]
set dll "[file tail $x]Required"
@@ -214,5 +216,6 @@ test unload-4.6 {basic unloading of unloadable package from a safe interpreter,
# cleanup
interp delete child
interp delete child-trusted
+unset ext
::tcltest::cleanupTests
return