os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/notify.test
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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 
    18 if {[lsearch [namespace children] ::tcltest] == -1} {
    19     package require tcltest 2
    20     namespace import -force ::tcltest::*
    21 }
    22 
    23 testConstraint testevent [llength [info commands testevent]]
    24 
    25 test 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 
    36 test 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 
    49 test 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 
    60 test 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 
    73 test 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 
    84 test 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 
    97 test 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 
   109 test 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 
   122 test 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 
   134 test 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 
   147 test 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 
   160 test 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 
   174 test 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 
   188 test 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 
   202 test 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 
   216 test 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 
   228 test 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 
   241 test 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 
   254 test 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 
   268 test 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 
   281 test 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 
   295 test 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 
   309 test 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
   326 return