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

通讯编程

开发平台:

Visual C++

  1. # This file tests the routines in tclResult.c.
  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) 1997 by Sun Microsystems, Inc.
  8. # Copyright (c) 1998-1999 by Scriptics Corporation.
  9. #
  10. # See the file "license.terms" for information on usage and redistribution
  11. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  12. #
  13. # SCCS: @(#) result.test 1.4 97/12/08 15:07:49
  14. if {[lsearch [namespace children] ::tcltest] == -1} {
  15.     package require tcltest 2
  16.     namespace import -force ::tcltest::*
  17. }
  18. # Some tests require the testsaveresult command
  19. ::tcltest::testConstraint testsaveresult 
  20. [expr {[info commands testsaveresult] != {}}]
  21. test result-1.1 {Tcl_SaveInterpResult} {testsaveresult} {
  22.     testsaveresult small {set x 42} 0
  23. } {small result}
  24. test result-1.2 {Tcl_SaveInterpResult} {testsaveresult} {
  25.     testsaveresult append {set x 42} 0
  26. } {append result}
  27. test result-1.3 {Tcl_SaveInterpResult} {testsaveresult} {
  28.     testsaveresult dynamic {set x 42} 0
  29. } {dynamic result notCalled present}
  30. test result-1.4 {Tcl_SaveInterpResult} {testsaveresult} {
  31.     testsaveresult object {set x 42} 0
  32. } {object result same}
  33. test result-1.5 {Tcl_SaveInterpResult} {testsaveresult} {
  34.     testsaveresult small {set x 42} 1
  35. } {42}
  36. test result-1.6 {Tcl_SaveInterpResult} {testsaveresult} {
  37.     testsaveresult append {set x 42} 1
  38. } {42}
  39. test result-1.7 {Tcl_SaveInterpResult} {testsaveresult} {
  40.     testsaveresult dynamic {set x 42} 1
  41. } {42 called missing}
  42. test result-1.8 {Tcl_SaveInterpResult} {testsaveresult} {
  43.     testsaveresult object {set x 42} 1
  44. } {42 different}
  45. # Tcl_RestoreInterpResult is mostly tested by the previous tests except
  46. # for the following case
  47. test result-2.1 {Tcl_RestoreInterpResult} {testsaveresult} {
  48.     testsaveresult append {cd _foobar} 0
  49. } {append result}
  50. # Tcl_DiscardInterpResult is mostly tested by the previous tests except
  51. # for the following cases
  52. test result-3.1 {Tcl_DiscardInterpResult} {testsaveresult} {
  53.     list [catch {testsaveresult append {cd _foobar} 1} msg] $msg
  54. } {1 {couldn't change working directory to "_foobar": no such file or directory}}
  55. test result-3.2 {Tcl_DiscardInterpResult} {testsaveresult} {
  56.     testsaveresult free {set x 42} 1
  57. } {42}
  58. ::tcltest::testConstraint testsetobjerrorcode 
  59. [expr {[info commands testsetobjerrorcode] != {}}]
  60. test result-4.1 {Tcl_SetObjErrorCode - one arg} {testsetobjerrorcode} {
  61.     catch {testsetobjerrorcode 1}
  62.     list [set errorCode]
  63. } {1}
  64. test result-4.2 {Tcl_SetObjErrorCode - two args} {testsetobjerrorcode} {
  65.     catch {testsetobjerrorcode 1 2}
  66.     list [set errorCode]
  67. } {{1 2}}
  68. test result-4.3 {Tcl_SetObjErrorCode - three args} {testsetobjerrorcode} {
  69.     catch {testsetobjerrorcode 1 2 3}
  70.     list [set errorCode]
  71. } {{1 2 3}}
  72. test result-4.4 {Tcl_SetObjErrorCode - four args} {testsetobjerrorcode} {
  73.     catch {testsetobjerrorcode 1 2 3 4}
  74.     list [set errorCode]
  75. } {{1 2 3 4}}
  76. test result-4.5 {Tcl_SetObjErrorCode - five args} {testsetobjerrorcode} {
  77.     catch {testsetobjerrorcode 1 2 3 4 5}
  78.     list [set errorCode]
  79. } {{1 2 3 4 5}}
  80. ::tcltest::testConstraint testseterrorcode 
  81. [expr {[info commands testseterrorcode] != {}}]
  82. test result-5.1 {Tcl_SetErrorCode - one arg} testseterrorcode {
  83.     catch {testseterrorcode 1}
  84.     set errorCode
  85. } 1
  86. test result-5.2 {Tcl_SetErrorCode - one arg, list quoting} testseterrorcode {
  87.     catch {testseterrorcode {a b}}
  88.     set errorCode
  89. } {{a b}}
  90. test result-5.3 {Tcl_SetErrorCode - one arg, list quoting} testseterrorcode {
  91.     catch {testseterrorcode {}
  92.     llength $errorCode
  93. } 1
  94. test result-5.4 {Tcl_SetErrorCode - two args, list quoting} testseterrorcode {
  95.     catch {testseterrorcode {a b} c}
  96.     set errorCode
  97. } {{a b} c}
  98. test result-6.2 {Bug 1649062} -setup {
  99.     proc foo {} {
  100.         if {[catch {
  101.             return -code error -errorinfo custom -errorcode CUSTOM foo
  102.         } err]} {
  103.             return [list $err $::errorCode $::errorInfo]
  104.         }
  105.     }
  106.     set ::errorInfo {}
  107.     set ::errorCode {}
  108. } -body {
  109.     foo
  110. } -cleanup {
  111.     rename foo {}
  112. } -result {foo {} {}}
  113. # cleanup
  114. ::tcltest::cleanupTests
  115. return