From 2720d411cf7260e87ce6e6e641a576c57ef3e046 Mon Sep 17 00:00:00 2001 From: dkf Date: Thu, 24 Jan 2002 20:34:49 +0000 Subject: Added test for meaning of tcl_platform(wordSize) --- ChangeLog | 5 +++++ tests/platform.test | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index b3b1b45..1300d0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-01-24 Donal K. Fellows + + * tests/platform.test (platform-2.1): Added test to make sure that + the meaning of tcl_platform(wordSize) is what I think it is. + 2001-12-02 Donal K. Fellows * tests/platform.test (platform-1.1): diff --git a/tests/platform.test b/tests/platform.test index 288cc72..19001ee 100644 --- a/tests/platform.test +++ b/tests/platform.test @@ -25,6 +25,17 @@ test platform-1.1 {TclpSetVariables: tcl_platform} { set result } {byteOrder machine os osVersion platform 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)}] + # 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)}] +} {1 -1} + # cleanup ::tcltest::cleanupTests return -- cgit v0.12