platform.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # The file tests the tcl_platform variable
  2. #
  3. # This file contains a collection of tests for one or more of the Tcl
  4. # built-in commands.  Sourcing this file into Tcl runs the tests and
  5. # generates output for errors.  No output means no errors were found.
  6. #
  7. # Copyright (c) 1999 by Scriptics Corporation
  8. #
  9. # See the file "license.terms" for information on usage and redistribution
  10. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  11. #
  12. # RCS: @(#) 
  13. if {[lsearch [namespace children] ::tcltest] == -1} {
  14.     package require tcltest
  15.     namespace import -force ::tcltest::*
  16. }
  17. testConstraint testWinCPUID [llength [info commands testwincpuid]]
  18. test platform-1.1 {TclpSetVariables: tcl_platform} {
  19.     interp create i
  20.     i eval {catch {unset tcl_platform(debug)}}
  21.     i eval {catch {unset tcl_platform(threaded)}}
  22.     i eval {catch {unset tcl_platform(tip,268)}}
  23.     i eval {catch {unset tcl_platform(tip,280)}}
  24.     set result [i eval {lsort [array names tcl_platform]}]
  25.     interp delete i
  26.     set result
  27. } {byteOrder machine os osVersion platform user wordSize}
  28. # Test assumes twos-complement arithmetic, which is true of virtually
  29. # everything these days.  Note that this does *not* use wide(), and
  30. # this is intentional since that could make Tcl's numbers wider than
  31. # the machine-integer on some platforms...
  32. test platform-2.1 {tcl_platform(wordSize) indicates size of native word} {
  33.     set result [expr {1 << (8 * $tcl_platform(wordSize) - 1)}]
  34.     # Result must be the largest bit in a machine word, which this checks
  35.     # without assuming how wide the word really is
  36.     list [expr {$result < 0}] [expr {$result ^ ($result - 1)}]
  37. } {1 -1}
  38. # On Windows, test that the CPU ID works
  39. test platform-3.1 {CPU ID on Windows } 
  40.     -constraints testWinCPUID 
  41.     -body {
  42. set cpudata [testwincpuid 0]
  43. binary format iii 
  44.     [lindex $cpudata 1] 
  45.     [lindex $cpudata 3] 
  46.     [lindex $cpudata 2] 
  47.     } 
  48.     -match regexp 
  49.     -result {^(?:AuthenticAMD|CentaurHauls|CyrixInstead|GenuineIntel)$}
  50. # cleanup
  51. ::tcltest::cleanupTests
  52. return
  53. # Local Variables:
  54. # mode: tcl
  55. # End: