os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/notify.test
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/notify.test Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,326 @@
1.4 +# -*- tcl -*-
1.5 +#
1.6 +# notify.test --
1.7 +#
1.8 +# This file tests several functions in the file, 'generic/tclNotify.c'.
1.9 +#
1.10 +# This file contains a collection of tests for one or more of the Tcl
1.11 +# built-in commands. Sourcing this file into Tcl runs the tests and
1.12 +# generates output for errors. No output means no errors were found.
1.13 +#
1.14 +# Copyright (c) 2003 by Kevin B. Kenny. All rights reserved.
1.15 +#
1.16 +# See the file "license.terms" for information on usage and redistribution
1.17 +# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
1.18 +#
1.19 +# RCS: @(#) $Id: notify.test,v 1.2.2.1 2003/10/06 13:55:38 dgp Exp $
1.20 +
1.21 +if {[lsearch [namespace children] ::tcltest] == -1} {
1.22 + package require tcltest 2
1.23 + namespace import -force ::tcltest::*
1.24 +}
1.25 +
1.26 +testConstraint testevent [llength [info commands testevent]]
1.27 +
1.28 +test notify-1.1 {Tcl_QueueEvent and delivery of a single event} \
1.29 + -constraints {testevent} \
1.30 + -body {
1.31 + set delivered {}
1.32 + after 10 set done 1
1.33 + testevent queue one tail {lappend delivered one; expr 1}
1.34 + vwait done
1.35 + set delivered
1.36 + } \
1.37 + -result {one}
1.38 +
1.39 +test notify-1.2 {Tcl_QueueEvent and delivery of events in order} \
1.40 + -constraints {testevent} \
1.41 + -body {
1.42 + set delivered {}
1.43 + after 10 set done 1
1.44 + testevent queue one tail {lappend delivered one; expr 1}
1.45 + testevent queue two tail {lappend delivered two; expr 1}
1.46 + testevent queue three tail {lappend delivered three; expr 1}
1.47 + vwait done
1.48 + set delivered
1.49 + } \
1.50 + -result {one two three}
1.51 +
1.52 +test notify-1.3 {Tcl_QueueEvent at head} \
1.53 + -constraints {testevent} \
1.54 + -body {
1.55 + set delivered {}
1.56 + after 10 set done 1
1.57 + testevent queue one head {lappend delivered one; expr 1}
1.58 + vwait done
1.59 + set delivered
1.60 + } \
1.61 + -result one
1.62 +
1.63 +test notify-1.4 {Tcl_QueueEvent multiple events at head} \
1.64 + -constraints {testevent} \
1.65 + -body {
1.66 + set delivered {}
1.67 + after 10 set done 1
1.68 + testevent queue one head {lappend delivered one; expr 1}
1.69 + testevent queue two head {lappend delivered two; expr 1}
1.70 + testevent queue three head {lappend delivered three; expr 1}
1.71 + vwait done
1.72 + set delivered
1.73 + } \
1.74 + -result {three two one}
1.75 +
1.76 +test notify-1.5 {Tcl_QueueEvent marker event into an empty queue} \
1.77 + -constraints {testevent} \
1.78 + -body {
1.79 + set delivered {}
1.80 + after 10 set done 1
1.81 + testevent queue one mark {lappend delivered one; expr 1}
1.82 + vwait done
1.83 + set delivered
1.84 + } \
1.85 + -result one
1.86 +
1.87 +test notify-1.6 {Tcl_QueueEvent first marker event in a nonempty queue} \
1.88 + -constraints {testevent} \
1.89 + -body {
1.90 + set delivered {}
1.91 + after 10 set done 1
1.92 + testevent queue one tail {lappend delivered one; expr 1}
1.93 + testevent queue two mark {lappend delivered two; expr 1}
1.94 + testevent queue three head {lappend delivered three; expr 1}
1.95 + vwait done
1.96 + set delivered
1.97 + } \
1.98 + -result {three two one}
1.99 +
1.100 +test notify-1.7 {Tcl_QueueEvent second marker event} \
1.101 + -constraints {testevent} \
1.102 + -body {
1.103 + set delivered {}
1.104 + after 10 set done 1
1.105 + testevent queue one mark {lappend delivered one; expr 1}
1.106 + testevent queue two mark {lappend delivered two; expr 1}
1.107 + vwait done
1.108 + set delivered
1.109 + } \
1.110 + -result {one two}
1.111 +
1.112 +test notify-1.8 {Tcl_QueueEvent preexisting event following second marker} \
1.113 + -constraints {testevent} \
1.114 + -body {
1.115 + set delivered {}
1.116 + after 10 set done 1
1.117 + testevent queue one mark {lappend delivered one; expr 1}
1.118 + testevent queue two tail {lappend delivered two; expr 1}
1.119 + testevent queue three mark {lappend delivered three; expr 1}
1.120 + vwait done
1.121 + set delivered
1.122 + } \
1.123 + -result {one three two}
1.124 +
1.125 +test notify-2.1 {remove sole element, don't replace } \
1.126 + -constraints {testevent} \
1.127 + -body {
1.128 + set delivered {}
1.129 + after 10 set done 1
1.130 + testevent queue one tail {lappend delivered one; expr 1}
1.131 + testevent delete one
1.132 + vwait done
1.133 + set delivered
1.134 + } \
1.135 + -result {}
1.136 +
1.137 +test notify-2.2 {remove and replace sole element} \
1.138 + -constraints {testevent} \
1.139 + -body {
1.140 + set delivered {}
1.141 + after 10 set done 1
1.142 + testevent queue one tail {lappend delivered one; expr 1}
1.143 + testevent delete one
1.144 + testevent queue two tail {lappend delivered two; expr 1}
1.145 + vwait done
1.146 + set delivered
1.147 + } \
1.148 + -result two
1.149 +
1.150 +test notify-2.3 {remove first element} \
1.151 + -constraints {testevent} \
1.152 + -body {
1.153 + set delivered {}
1.154 + after 10 set done 1
1.155 + testevent queue one tail {lappend delivered one; expr 1}
1.156 + testevent queue two tail {lappend delivered two; expr 1}
1.157 + testevent delete one
1.158 + vwait done
1.159 + set delivered
1.160 + } \
1.161 + -result {two}
1.162 +
1.163 +test notify-2.4 {remove and replace first element} \
1.164 + -constraints {testevent} \
1.165 + -body {
1.166 + set delivered {}
1.167 + after 10 set done 1
1.168 + testevent queue one tail {lappend delivered one; expr 1}
1.169 + testevent queue two tail {lappend delivered two; expr 1}
1.170 + testevent delete one
1.171 + testevent queue three head {lappend delivered three; expr 1};
1.172 + vwait done
1.173 + set delivered
1.174 + } \
1.175 + -result {three two}
1.176 +
1.177 +test notify-2.5 {remove last element} \
1.178 + -constraints {testevent} \
1.179 + -body {
1.180 + set delivered {}
1.181 + after 10 set done 1
1.182 + testevent queue one tail {lappend delivered one; expr 1}
1.183 + testevent queue two tail {lappend delivered two; expr 1}
1.184 + testevent delete two
1.185 + vwait done
1.186 + set delivered
1.187 + } \
1.188 + -result {one}
1.189 +
1.190 +
1.191 +test notify-2.6 {remove and replace last element} \
1.192 + -constraints {testevent} \
1.193 + -body {
1.194 + set delivered {}
1.195 + after 10 set done 1
1.196 + testevent queue one tail {lappend delivered one; expr 1}
1.197 + testevent queue two tail {lappend delivered two; expr 1}
1.198 + testevent delete two
1.199 + testevent queue three tail {lappend delivered three; expr 1};
1.200 + vwait done
1.201 + set delivered
1.202 + } \
1.203 + -result {one three}
1.204 +
1.205 +test notify-2.7 {remove a middle element} \
1.206 + -constraints {testevent} \
1.207 + -body {
1.208 + set delivered {}
1.209 + after 10 set done 1
1.210 + testevent queue one tail {lappend delivered one; expr 1}
1.211 + testevent queue two tail {lappend delivered two; expr 1}
1.212 + testevent queue three tail {lappend delivered three; expr 1}
1.213 + testevent delete two
1.214 + vwait done
1.215 + set delivered
1.216 + } \
1.217 + -result {one three}
1.218 +
1.219 +test notify-2.8 {remove a marker event that's the sole event in the queue} \
1.220 + -constraints {testevent} \
1.221 + -body {
1.222 + set delivered {}
1.223 + after 10 set done 1
1.224 + testevent queue one mark {lappend delivered one; expr 1}
1.225 + testevent delete one
1.226 + vwait done
1.227 + set delivered
1.228 + } \
1.229 + -result {}
1.230 +
1.231 +test notify-2.9 {remove and replace a marker event that's the sole event} \
1.232 + -constraints {testevent} \
1.233 + -body {
1.234 + set delivered {}
1.235 + after 10 set done 1
1.236 + testevent queue one mark {lappend delivered one; expr 1}
1.237 + testevent delete one
1.238 + testevent queue two mark {lappend delivered two; expr 1}
1.239 + vwait done
1.240 + set delivered
1.241 + } \
1.242 + -result two
1.243 +
1.244 +test notify-2.10 {remove marker event from head} \
1.245 + -constraints {testevent} \
1.246 + -body {
1.247 + set delivered {}
1.248 + after 10 set done 1
1.249 + testevent queue one mark {lappend delivered one; expr 1}
1.250 + testevent queue two mark {lappend delivered two; expr 1}
1.251 + testevent delete one
1.252 + vwait done
1.253 + set delivered
1.254 + } \
1.255 + -result two
1.256 +
1.257 +test notify-2.11 {remove and replace marker event at head} \
1.258 + -constraints {testevent} \
1.259 + -body {
1.260 + set delivered {}
1.261 + after 10 set done 1
1.262 + testevent queue one mark {lappend delivered one; expr 1}
1.263 + testevent queue two tail {lappend delivered two; expr 1}
1.264 + testevent delete one
1.265 + testevent queue three mark {lappend delivered three; expr 1}
1.266 + vwait done
1.267 + set delivered
1.268 + } \
1.269 + -result {three two}
1.270 +
1.271 +test notify-2.12 {remove marker event at tail} \
1.272 + -constraints {testevent} \
1.273 + -body {
1.274 + set delivered {}
1.275 + after 10 set done 1
1.276 + testevent queue one mark {lappend delivered one; expr 1}
1.277 + testevent queue two mark {lappend delivered two; expr 1}
1.278 + testevent delete two
1.279 + vwait done
1.280 + set delivered
1.281 + } \
1.282 + -result {one}
1.283 +
1.284 +test notify-2.13 {remove and replace marker event at tail} \
1.285 + -constraints {testevent} \
1.286 + -body {
1.287 + set delivered {}
1.288 + after 10 set done 1
1.289 + testevent queue one mark {lappend delivered one; expr 1}
1.290 + testevent queue two mark {lappend delivered two; expr 1}
1.291 + testevent delete two
1.292 + testevent queue three mark {lappend delivered three; expr 1}
1.293 + vwait done
1.294 + set delivered
1.295 + } \
1.296 + -result {one three}
1.297 +
1.298 +test notify-2.14 {remove marker event from middle} \
1.299 + -constraints {testevent} \
1.300 + -body {
1.301 + set delivered {}
1.302 + after 10 set done 1
1.303 + testevent queue one mark {lappend delivered one; expr 1}
1.304 + testevent queue two mark {lappend delivered two; expr 1}
1.305 + testevent queue three mark {lappend delivered three; expr 1}
1.306 + testevent delete two
1.307 + vwait done
1.308 + set delivered
1.309 + } \
1.310 + -result {one three}
1.311 +
1.312 +test notify-2.15 {remove and replace marker event at middle} \
1.313 + -constraints {testevent} \
1.314 + -body {
1.315 + set delivered {}
1.316 + after 10 set done 1
1.317 + testevent queue one mark {lappend delivered one; expr 1}
1.318 + testevent queue two mark {lappend delivered two; expr 1}
1.319 + testevent queue three tail {lappend delivered three; expr 1}
1.320 + testevent delete two
1.321 + testevent queue four mark {lappend delivered four; expr 1};
1.322 + vwait done
1.323 + set delivered
1.324 + } \
1.325 + -result {one four three}
1.326 +
1.327 +# cleanup
1.328 +::tcltest::cleanupTests
1.329 +return