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

通讯编程

开发平台:

Visual C++

  1. #  -*- tcl -*-
  2. #
  3. # notify.test --
  4. #
  5. # This file tests several functions in the file, 'generic/tclNotify.c'.
  6. #
  7. # This file contains a collection of tests for one or more of the Tcl
  8. # built-in commands.  Sourcing this file into Tcl runs the tests and
  9. # generates output for errors.  No output means no errors were found.
  10. #
  11. # Copyright (c) 2003 by Kevin B. Kenny.  All rights reserved.
  12. #
  13. # See the file "license.terms" for information on usage and redistribution
  14. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  15. #
  16. # RCS: @(#) $Id: notify.test,v 1.2.2.1 2003/10/06 13:55:38 dgp Exp $
  17. if {[lsearch [namespace children] ::tcltest] == -1} {
  18.     package require tcltest 2
  19.     namespace import -force ::tcltest::*
  20. }
  21. testConstraint testevent [llength [info commands testevent]]
  22. test notify-1.1 {Tcl_QueueEvent and delivery of a single event} 
  23.     -constraints {testevent} 
  24.     -body {
  25. set delivered {}
  26. after 10 set done 1
  27. testevent queue one tail {lappend delivered one; expr 1}
  28. vwait done
  29. set delivered
  30.     } 
  31.     -result {one}
  32. test notify-1.2 {Tcl_QueueEvent and delivery of events in order} 
  33.     -constraints {testevent} 
  34.     -body {
  35. set delivered {}
  36. after 10 set done 1
  37. testevent queue one tail {lappend delivered one; expr 1}
  38. testevent queue two tail {lappend delivered two; expr 1}
  39. testevent queue three tail {lappend delivered three; expr 1}
  40. vwait done
  41. set delivered
  42.     } 
  43.     -result {one two three}
  44. test notify-1.3 {Tcl_QueueEvent at head} 
  45.     -constraints {testevent} 
  46.     -body {
  47. set delivered {}
  48. after 10 set done 1
  49. testevent queue one head {lappend delivered one; expr 1}
  50. vwait done
  51. set delivered
  52.     } 
  53.     -result one
  54. test notify-1.4 {Tcl_QueueEvent multiple events at head} 
  55.     -constraints {testevent} 
  56.     -body {
  57. set delivered {}
  58. after 10 set done 1
  59. testevent queue one head {lappend delivered one; expr 1}
  60. testevent queue two head {lappend delivered two; expr 1}
  61. testevent queue three head {lappend delivered three; expr 1}
  62. vwait done
  63. set delivered
  64.     } 
  65.     -result {three two one}
  66. test notify-1.5 {Tcl_QueueEvent marker event into an empty queue} 
  67.     -constraints {testevent} 
  68.     -body {
  69. set delivered {}
  70. after 10 set done 1
  71. testevent queue one mark {lappend delivered one; expr 1}
  72. vwait done
  73. set delivered
  74.     } 
  75.     -result one
  76. test notify-1.6 {Tcl_QueueEvent first marker event in a nonempty queue} 
  77.     -constraints {testevent}  
  78.     -body {
  79. set delivered {}
  80. after 10 set done 1
  81. testevent queue one tail {lappend delivered one; expr 1}
  82. testevent queue two mark {lappend delivered two; expr 1}
  83. testevent queue three head {lappend delivered three; expr 1}
  84. vwait done
  85. set delivered
  86.     } 
  87.     -result {three two one}
  88. test notify-1.7 {Tcl_QueueEvent second marker event} 
  89.     -constraints {testevent} 
  90.     -body {
  91. set delivered {}
  92. after 10 set done 1
  93. testevent queue one mark {lappend delivered one; expr 1}
  94. testevent queue two mark {lappend delivered two; expr 1}
  95. vwait done
  96. set delivered
  97.     } 
  98.     -result {one two}
  99. test notify-1.8 {Tcl_QueueEvent preexisting event following second marker} 
  100.     -constraints {testevent} 
  101.     -body {
  102. set delivered {}
  103. after 10 set done 1
  104. testevent queue one mark {lappend delivered one; expr 1}
  105. testevent queue two tail {lappend delivered two; expr 1}
  106. testevent queue three mark {lappend delivered three; expr 1}
  107. vwait done
  108. set delivered
  109.     } 
  110.     -result {one three two}
  111. test notify-2.1 {remove sole element, don't replace } 
  112.     -constraints {testevent} 
  113.     -body {
  114. set delivered {}
  115. after 10 set done 1
  116. testevent queue one tail {lappend delivered one; expr 1}
  117. testevent delete one
  118. vwait done
  119. set delivered
  120.     } 
  121.     -result {}
  122. test notify-2.2 {remove and replace sole element} 
  123.     -constraints {testevent} 
  124.     -body {
  125. set delivered {}
  126. after 10 set done 1
  127. testevent queue one tail {lappend delivered one; expr 1}
  128. testevent delete one
  129. testevent queue two tail {lappend delivered two; expr 1}
  130. vwait done
  131. set delivered
  132.     } 
  133.     -result two
  134. test notify-2.3 {remove first element} 
  135.     -constraints {testevent} 
  136.     -body {
  137. set delivered {}
  138. after 10 set done 1
  139. testevent queue one tail {lappend delivered one; expr 1}
  140. testevent queue two tail {lappend delivered two; expr 1}
  141. testevent delete one
  142. vwait done
  143. set delivered
  144.     } 
  145.     -result {two}
  146. test notify-2.4 {remove and replace first element} 
  147.     -constraints {testevent} 
  148.     -body {
  149. set delivered {}
  150. after 10 set done 1
  151. testevent queue one tail {lappend delivered one; expr 1}
  152. testevent queue two tail {lappend delivered two; expr 1}
  153. testevent delete one
  154. testevent queue three head {lappend delivered three; expr 1};
  155. vwait done
  156. set delivered
  157.     } 
  158.     -result {three two}
  159. test notify-2.5 {remove last element} 
  160.     -constraints {testevent} 
  161.     -body {
  162. set delivered {}
  163. after 10 set done 1
  164. testevent queue one tail {lappend delivered one; expr 1}
  165. testevent queue two tail {lappend delivered two; expr 1}
  166. testevent delete two
  167. vwait done
  168. set delivered
  169.     } 
  170.     -result {one}
  171. test notify-2.6 {remove and replace last element} 
  172.     -constraints {testevent} 
  173.     -body {
  174. set delivered {}
  175. after 10 set done 1
  176. testevent queue one tail {lappend delivered one; expr 1}
  177. testevent queue two tail {lappend delivered two; expr 1}
  178. testevent delete two
  179. testevent queue three tail {lappend delivered three; expr 1};
  180. vwait done
  181. set delivered
  182.     } 
  183.     -result {one three}
  184. test notify-2.7 {remove a middle element} 
  185.     -constraints {testevent} 
  186.     -body {
  187. set delivered {}
  188. after 10 set done 1
  189. testevent queue one tail {lappend delivered one; expr 1}
  190. testevent queue two tail {lappend delivered two; expr 1}
  191. testevent queue three tail {lappend delivered three; expr 1}
  192. testevent delete two
  193. vwait done
  194. set delivered
  195.     } 
  196.     -result {one three}
  197. test notify-2.8 {remove a marker event that's the sole event in the queue} 
  198.     -constraints {testevent} 
  199.     -body {
  200. set delivered {}
  201. after 10 set done 1
  202. testevent queue one mark {lappend delivered one; expr 1}
  203. testevent delete one
  204. vwait done
  205. set delivered
  206.     } 
  207.     -result {}
  208. test notify-2.9 {remove and replace a marker event that's the sole event} 
  209.     -constraints {testevent} 
  210.     -body {
  211. set delivered {}
  212. after 10 set done 1
  213. testevent queue one mark {lappend delivered one; expr 1}
  214. testevent delete one
  215. testevent queue two mark {lappend delivered two; expr 1}
  216. vwait done
  217. set delivered
  218.     } 
  219.     -result two
  220. test notify-2.10 {remove marker event from head} 
  221.     -constraints {testevent} 
  222.     -body {
  223. set delivered {}
  224. after 10 set done 1
  225. testevent queue one mark {lappend delivered one; expr 1}
  226. testevent queue two mark {lappend delivered two; expr 1}
  227. testevent delete one
  228. vwait done
  229. set delivered
  230.     } 
  231.     -result two
  232. test notify-2.11 {remove and replace marker event at head} 
  233.     -constraints {testevent} 
  234.     -body {
  235. set delivered {}
  236. after 10 set done 1
  237. testevent queue one mark {lappend delivered one; expr 1}
  238. testevent queue two tail {lappend delivered two; expr 1}
  239. testevent delete one
  240. testevent queue three mark {lappend delivered three; expr 1}
  241. vwait done
  242. set delivered
  243.     } 
  244.     -result {three two}
  245. test notify-2.12 {remove marker event at tail} 
  246.     -constraints {testevent} 
  247.     -body {
  248. set delivered {}
  249. after 10 set done 1
  250. testevent queue one mark {lappend delivered one; expr 1}
  251. testevent queue two mark {lappend delivered two; expr 1}
  252. testevent delete two
  253. vwait done
  254. set delivered
  255.     } 
  256.     -result {one}
  257. test notify-2.13 {remove and replace marker event at tail} 
  258.     -constraints {testevent} 
  259.     -body {
  260. set delivered {}
  261. after 10 set done 1
  262. testevent queue one mark {lappend delivered one; expr 1}
  263. testevent queue two mark {lappend delivered two; expr 1}
  264. testevent delete two
  265. testevent queue three mark {lappend delivered three; expr 1}
  266. vwait done
  267. set delivered
  268.     } 
  269.     -result {one three}
  270. test notify-2.14 {remove marker event from middle} 
  271.     -constraints {testevent} 
  272.     -body {
  273. set delivered {}
  274. after 10 set done 1
  275. testevent queue one mark {lappend delivered one; expr 1}
  276. testevent queue two mark {lappend delivered two; expr 1}
  277. testevent queue three mark {lappend delivered three; expr 1}
  278. testevent delete two
  279. vwait done
  280. set delivered
  281.     } 
  282.     -result {one three}
  283. test notify-2.15 {remove and replace marker event at middle} 
  284.     -constraints {testevent} 
  285.     -body {
  286. set delivered {}
  287. after 10 set done 1
  288. testevent queue one mark {lappend delivered one; expr 1}
  289. testevent queue two mark {lappend delivered two; expr 1}
  290. testevent queue three tail {lappend delivered three; expr 1}
  291. testevent delete two
  292. testevent queue four mark {lappend delivered four; expr 1};
  293. vwait done
  294. set delivered
  295.     } 
  296.     -result {one four three}
  297. # cleanup
  298. ::tcltest::cleanupTests
  299. return