Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/tests/notify.test @ 68

Last change on this file since 68 was 25, checked in by landauf, 16 years ago

added tcl to libs

File size: 8.6 KB
Line 
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.3 2003/10/06 14:32:22 dgp Exp $
17
18if {[lsearch [namespace children] ::tcltest] == -1} {
19    package require tcltest 2
20    namespace import -force ::tcltest::*
21}
22
23testConstraint testevent [llength [info commands testevent]]
24
25test notify-1.1 {Tcl_QueueEvent and delivery of a single event} \
26    -constraints {testevent} \
27    -body {
28        set delivered {}
29        after 10 set done 1
30        testevent queue one tail {lappend delivered one; expr 1}
31        vwait done
32        set delivered
33    } \
34    -result {one}
35
36test notify-1.2 {Tcl_QueueEvent and delivery of events in order} \
37    -constraints {testevent} \
38    -body {
39        set delivered {}
40        after 10 set done 1
41        testevent queue one tail {lappend delivered one; expr 1}
42        testevent queue two tail {lappend delivered two; expr 1}
43        testevent queue three tail {lappend delivered three; expr 1}
44        vwait done
45        set delivered
46    } \
47    -result {one two three}
48
49test notify-1.3 {Tcl_QueueEvent at head} \
50    -constraints {testevent} \
51    -body {
52        set delivered {}
53        after 10 set done 1
54        testevent queue one head {lappend delivered one; expr 1}
55        vwait done
56        set delivered
57    } \
58    -result one
59
60test notify-1.4 {Tcl_QueueEvent multiple events at head} \
61    -constraints {testevent} \
62    -body {
63        set delivered {}
64        after 10 set done 1
65        testevent queue one head {lappend delivered one; expr 1}
66        testevent queue two head {lappend delivered two; expr 1}
67        testevent queue three head {lappend delivered three; expr 1}
68        vwait done
69        set delivered
70    } \
71    -result {three two one}
72
73test notify-1.5 {Tcl_QueueEvent marker event into an empty queue} \
74    -constraints {testevent} \
75    -body {
76        set delivered {}
77        after 10 set done 1
78        testevent queue one mark {lappend delivered one; expr 1}
79        vwait done
80        set delivered
81    } \
82    -result one
83
84test notify-1.6 {Tcl_QueueEvent first marker event in a nonempty queue} \
85    -constraints {testevent}  \
86    -body {
87        set delivered {}
88        after 10 set done 1
89        testevent queue one tail {lappend delivered one; expr 1}
90        testevent queue two mark {lappend delivered two; expr 1}
91        testevent queue three head {lappend delivered three; expr 1}
92        vwait done
93        set delivered
94    } \
95    -result {three two one}
96
97test notify-1.7 {Tcl_QueueEvent second marker event} \
98    -constraints {testevent} \
99    -body {
100        set delivered {}
101        after 10 set done 1
102        testevent queue one mark {lappend delivered one; expr 1}
103        testevent queue two mark {lappend delivered two; expr 1}
104        vwait done
105        set delivered
106    } \
107    -result {one two}
108
109test notify-1.8 {Tcl_QueueEvent preexisting event following second marker} \
110    -constraints {testevent} \
111    -body {
112        set delivered {}
113        after 10 set done 1
114        testevent queue one mark {lappend delivered one; expr 1}
115        testevent queue two tail {lappend delivered two; expr 1}
116        testevent queue three mark {lappend delivered three; expr 1}
117        vwait done
118        set delivered
119    } \
120    -result {one three two}
121
122test notify-2.1 {remove sole element, don't replace } \
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        vwait done
130        set delivered
131    } \
132    -result {}
133
134test notify-2.2 {remove and replace sole 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 delete one
141        testevent queue two tail {lappend delivered two; expr 1}
142        vwait done
143        set delivered
144    } \
145    -result two
146
147test notify-2.3 {remove first element} \
148    -constraints {testevent} \
149    -body {
150        set delivered {}
151        after 10 set done 1
152        testevent queue one tail {lappend delivered one; expr 1}
153        testevent queue two tail {lappend delivered two; expr 1}
154        testevent delete one
155        vwait done
156        set delivered
157    } \
158    -result {two}
159
160test notify-2.4 {remove and replace first element} \
161    -constraints {testevent} \
162    -body {
163        set delivered {}
164        after 10 set done 1
165        testevent queue one tail {lappend delivered one; expr 1}
166        testevent queue two tail {lappend delivered two; expr 1}
167        testevent delete one
168        testevent queue three head {lappend delivered three; expr 1};
169        vwait done
170        set delivered
171    } \
172    -result {three two}
173
174test notify-2.5 {remove last element} \
175    -constraints {testevent} \
176    -body {
177        set delivered {}
178        after 10 set done 1
179        testevent queue one tail {lappend delivered one; expr 1}
180        testevent queue two tail {lappend delivered two; expr 1}
181        testevent delete two
182        vwait done
183        set delivered
184    } \
185    -result {one}
186
187
188test notify-2.6 {remove and replace last element} \
189    -constraints {testevent} \
190    -body {
191        set delivered {}
192        after 10 set done 1
193        testevent queue one tail {lappend delivered one; expr 1}
194        testevent queue two tail {lappend delivered two; expr 1}
195        testevent delete two
196        testevent queue three tail {lappend delivered three; expr 1};
197        vwait done
198        set delivered
199    } \
200    -result {one three}
201
202test notify-2.7 {remove a middle element} \
203    -constraints {testevent} \
204    -body {
205        set delivered {}
206        after 10 set done 1
207        testevent queue one tail {lappend delivered one; expr 1}
208        testevent queue two tail {lappend delivered two; expr 1}
209        testevent queue three tail {lappend delivered three; expr 1}
210        testevent delete two
211        vwait done
212        set delivered
213    } \
214    -result {one three}
215
216test notify-2.8 {remove a marker event that's the sole event in the queue} \
217    -constraints {testevent} \
218    -body {
219        set delivered {}
220        after 10 set done 1
221        testevent queue one mark {lappend delivered one; expr 1}
222        testevent delete one
223        vwait done
224        set delivered
225    } \
226    -result {}
227
228test notify-2.9 {remove and replace a marker event that's the sole event} \
229    -constraints {testevent} \
230    -body {
231        set delivered {}
232        after 10 set done 1
233        testevent queue one mark {lappend delivered one; expr 1}
234        testevent delete one
235        testevent queue two mark {lappend delivered two; expr 1}
236        vwait done
237        set delivered
238    } \
239    -result two
240
241test notify-2.10 {remove marker event from head} \
242    -constraints {testevent} \
243    -body {
244        set delivered {}
245        after 10 set done 1
246        testevent queue one mark {lappend delivered one; expr 1}
247        testevent queue two mark {lappend delivered two; expr 1}
248        testevent delete one
249        vwait done
250        set delivered
251    } \
252    -result two
253
254test notify-2.11 {remove and replace marker event at head} \
255    -constraints {testevent} \
256    -body {
257        set delivered {}
258        after 10 set done 1
259        testevent queue one mark {lappend delivered one; expr 1}
260        testevent queue two tail {lappend delivered two; expr 1}
261        testevent delete one
262        testevent queue three mark {lappend delivered three; expr 1}
263        vwait done
264        set delivered
265    } \
266    -result {three two}
267
268test notify-2.12 {remove marker event at tail} \
269    -constraints {testevent} \
270    -body {
271        set delivered {}
272        after 10 set done 1
273        testevent queue one mark {lappend delivered one; expr 1}
274        testevent queue two mark {lappend delivered two; expr 1}
275        testevent delete two
276        vwait done
277        set delivered
278    } \
279    -result {one}
280
281test notify-2.13 {remove and replace marker event at tail} \
282    -constraints {testevent} \
283    -body {
284        set delivered {}
285        after 10 set done 1
286        testevent queue one mark {lappend delivered one; expr 1}
287        testevent queue two mark {lappend delivered two; expr 1}
288        testevent delete two
289        testevent queue three mark {lappend delivered three; expr 1}
290        vwait done
291        set delivered
292    } \
293    -result {one three}
294
295test notify-2.14 {remove marker event from middle} \
296    -constraints {testevent} \
297    -body {
298        set delivered {}
299        after 10 set done 1
300        testevent queue one mark {lappend delivered one; expr 1}
301        testevent queue two mark {lappend delivered two; expr 1}
302        testevent queue three mark {lappend delivered three; expr 1}
303        testevent delete two
304        vwait done
305        set delivered
306    } \
307    -result {one three}
308
309test notify-2.15 {remove and replace marker event at middle} \
310    -constraints {testevent} \
311    -body {
312        set delivered {}
313        after 10 set done 1
314        testevent queue one mark {lappend delivered one; expr 1}
315        testevent queue two mark {lappend delivered two; expr 1}
316        testevent queue three tail {lappend delivered three; expr 1}
317        testevent delete two
318        testevent queue four mark {lappend delivered four; expr 1};
319        vwait done
320        set delivered
321    } \
322    -result {one four three}
323
324# cleanup
325::tcltest::cleanupTests
326return
Note: See TracBrowser for help on using the repository browser.