summaryrefslogtreecommitdiffstats
path: root/tests/platform.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/platform.test')
-rw-r--r--tests/platform.test48
1 files changed, 38 insertions, 10 deletions
diff --git a/tests/platform.test b/tests/platform.test
index 19001ee..6596975 100644
--- a/tests/platform.test
+++ b/tests/platform.test
@@ -8,13 +8,20 @@
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# RCS: @(#)
-if {[lsearch [namespace children] ::tcltest] == -1} {
- package require tcltest
- namespace import -force ::tcltest::*
-}
+package require tcltest 2
+
+namespace eval ::tcl::test::platform {
+ namespace import ::tcltest::testConstraint
+ namespace import ::tcltest::test
+ namespace import ::tcltest::cleanupTests
+
+ variable ::tcl_platform
+
+::tcltest::loadTestedCommands
+catch [list package require -exact Tcltest [info patchlevel]]
+
+testConstraint testCPUID [llength [info commands testcpuid]]
test platform-1.1 {TclpSetVariables: tcl_platform} {
interp create i
@@ -23,19 +30,40 @@ test platform-1.1 {TclpSetVariables: tcl_platform} {
set result [i eval {lsort [array names tcl_platform]}]
interp delete i
set result
-} {byteOrder machine os osVersion platform user wordSize}
+} {byteOrder machine os osVersion pathSeparator platform pointerSize user wordSize}
# Test assumes twos-complement arithmetic, which is true of virtually
# everything these days. Note that this does *not* use wide(), and
# this is intentional since that could make Tcl's numbers wider than
# the machine-integer on some platforms...
test platform-2.1 {tcl_platform(wordSize) indicates size of native word} {
- set result [expr {1 << (8 * $tcl_platform(wordSize) - 1)}]
+ set result [expr {int(1 << (8 * $tcl_platform(wordSize) - 1))}]
# Result must be the largest bit in a machine word, which this checks
# without assuming how wide the word really is
- list [expr {$result < 0}] [expr {$result ^ ($result - 1)}]
+ list [expr {$result < 0}] [expr {$result ^ int($result - 1)}]
} {1 -1}
+# On Windows/UNIX, test that the CPU ID works
+
+test platform-3.1 {CPU ID on Windows/UNIX} \
+ -constraints testCPUID \
+ -body {
+ set cpudata [testcpuid 0]
+ binary format iii \
+ [lindex $cpudata 1] \
+ [lindex $cpudata 3] \
+ [lindex $cpudata 2]
+ } \
+ -match regexp \
+ -result {^(?:AuthenticAMD|CentaurHauls|CyrixInstead|GenuineIntel)$}
+
# cleanup
-::tcltest::cleanupTests
+cleanupTests
+
+}
+namespace delete ::tcl::test::platform
return
+
+# Local Variables:
+# mode: tcl
+# End: