summaryrefslogtreecommitdiffstats
path: root/contrib/tcl/tests/event.test
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tcl/tests/event.test')
-rw-r--r--contrib/tcl/tests/event.test145
1 files changed, 76 insertions, 69 deletions
diff --git a/contrib/tcl/tests/event.test b/contrib/tcl/tests/event.test
index 6741836..027f7e0 100644
--- a/contrib/tcl/tests/event.test
+++ b/contrib/tcl/tests/event.test
@@ -8,7 +8,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# "@(#) event.test 1.27 97/06/23 18:21:18"
+# "@(#) event.test 1.35 97/08/11 11:58:38"
if {[string compare test [info procs test]] == 1} then {source defs}
@@ -46,7 +46,7 @@ if {[catch {testfilehandler create 0 off off}] == 0 } {
testfilehandler close
set result
} {{0 1} {0 2} {0 2}}
- test event-1.3 {Tcl_DeleteFileHandler} {
+ test event-1.3 {Tcl_DeleteFileHandler} {nonPortable} {
testfilehandler close
testfilehandler create 2 disabled disabled
testfilehandler create 1 readable writable
@@ -66,7 +66,7 @@ if {[catch {testfilehandler create 0 off off}] == 0 } {
set result
} {{0 1} {1 1} {1 2} {0 0}}
- test event-2.1 {Tcl_DeleteFileHandler} {
+ test event-2.1 {Tcl_DeleteFileHandler} {nonPortable} {
testfilehandler close
testfilehandler create 2 disabled disabled
testfilehandler create 1 readable writable
@@ -84,7 +84,7 @@ if {[catch {testfilehandler create 0 off off}] == 0 } {
testfilehandler close
set result
} {{0 1} {1 1} {1 2} {0 0}}
- test event-2.2 {Tcl_DeleteFileHandler, fd reused & events still pending} {
+ test event-2.2 {Tcl_DeleteFileHandler, fd reused & events still pending} {nonPortable} {
testfilehandler close
testfilehandler create 0 readable writable
testfilehandler fillpartial 0
@@ -109,7 +109,7 @@ if {[catch {testfilehandler create 0 off off}] == 0 } {
set result
} {0 0}
- test event-4.1 {FileHandlerEventProc, race between event and disabling } {
+ test event-4.1 {FileHandlerEventProc, race between event and disabling} {nonPortable} {
update
testfilehandler close
testfilehandler create 2 disabled disabled
@@ -128,7 +128,7 @@ if {[catch {testfilehandler create 0 off off}] == 0 } {
testfilehandler close
set result
} {{0 1} {1 1} {1 2} {0 0}}
- test event-4.2 {FileHandlerEventProc, TCL_FILE_EVENTS off } {
+ test event-4.2 {FileHandlerEventProc, TCL_FILE_EVENTS off} {nonPortable} {
update
testfilehandler close
testfilehandler create 1 readable writable
@@ -208,70 +208,75 @@ test event-6.1 {BgErrorDeleteProc procedure} {
} {Unmodified
}
-test event-7.1 {tkerror/bgerror backwards compabitility} {
- catch {rename bgerror {}}
- proc tkerror {x y} {
- return [expr $x + $y]
- }
- list [tkerror 4 7] [bgerror 8 -3]
-} {11 5}
-test event-7.2 {tkerror/bgerror backwards compabitility} {
- proc bgerror {x y} {
- return [expr 1 + $x + $y]
+test event-7.1 {bgerror / regular} {
+ set errRes {}
+ proc bgerror {err} {
+ global errRes;
+ set errRes $err;
}
- list [tkerror 6 -2] [bgerror 7 2]
-} {5 10}
-test event-7.3 {tkerror/bgerror backwards compabitility} {
- proc bgerror {x y} {
- return [expr 1 + $x + $y]
+ after 0 {error err1}
+ vwait errRes;
+ set errRes;
+} err1
+
+test event-7.2 {bgerror / accumulation} {
+ set errRes {}
+ proc bgerror {err} {
+ global errRes;
+ lappend errRes $err;
}
- set result [list [info commands bgerror] [info commands tkerror]]
- rename tkerror {}
- lappend result [info commands bgerror] [info commands tkerror]
-} {bgerror tkerror {} {}}
-test event-7.4 {tkerror/bgerror backwards compabitility} {
- proc tkerror {x y} {
- return [expr 1 + $x + $y]
+ after 0 {error err1}
+ after 0 {error err2}
+ after 0 {error err3}
+ update
+ set errRes;
+} {err1 err2 err3}
+
+test event-7.3 {bgerror / accumulation / break} {
+ set errRes {}
+ proc bgerror {err} {
+ global errRes;
+ lappend errRes $err;
+ return -code break "skip!";
}
- set result [list [info commands bgerror] [info commands tkerror]]
- rename bgerror {}
- lappend result [info commands bgerror] [info commands tkerror]
-} {bgerror tkerror {} {}}
-test event-7.5 {tkerror/bgerror backwards compabitility} {
- proc tkerror {x y} {
- return [expr 1 + $x + $y]
+ after 0 {error err1}
+ after 0 {error err2}
+ after 0 {error err3}
+ update
+ set errRes;
+} err1
+
+test event-7.4 {tkerror is nothing special anymore to tcl} {
+ set errRes {}
+ # we don't just rename bgerror to empty because it could then
+ # be autoloaded...
+ proc bgerror {err} {
+ global errRes;
+ lappend errRes "bg:$err";
}
- rename tkerror foo
- list [info commands bgerror] [info commands tkerror] [foo 4 3]
-} {{} {} 8}
-test event-7.6 {tkerror/bgerror backwards compabitility} {
- proc bgerror {x y} {
- return [expr 1 + $x + $y]
+ proc tkerror {err} {
+ global errRes;
+ lappend errRes "tk:$err";
}
- catch {rename foo {}}
- rename bgerror foo
- list [info commands bgerror] [info commands tkerror] [foo 4 3]
-} {{} {} 8}
-test event-7.7 {tkerror/bgerror backwards compabitility} {
- proc foo args {return $args}
- catch {rename tkerror {}}
- rename foo tkerror
- list [info commands bgerror] [info commands tkerror] [info commands foo] [tkerror a b c d]
-} {bgerror tkerror {} {a b c d}}
-test event-7.8 {tkerror/bgerror backwards compabitility} {
- proc foo args {return $args}
- catch {rename bgerror {}}
- rename foo bgerror
- list [info commands bgerror] [info commands tkerror] [info commands foo] [tkerror a b c d]
-} {bgerror tkerror {} {a b c d}}
-test event-7.9 {tkerror/bgerror backwards compabitility} {
- proc bgerror args {return $args}
- list [catch {rename bgerror tkerror} msg] $msg
-} {1 {can't rename to "tkerror": command already exists}}
+ after 0 {error err1}
+ update
+ rename tkerror {}
+ set errRes
+} bg:err1
+
+# someday : add a test checking that
+# when there is no bgerror, an error msg goes to stderr
+# ideally one would use sub interp and transfer a fake stderr
+# to it, unfortunatly the current interp tcl API does not allow
+# that. the other option would be to use fork a test but it
+# then becomes more a file/exec test than a bgerror test.
+
+# end of bgerror tests
catch {rename bgerror {}}
+
if {[info commands testexithandler] != ""} {
- test event-8.1 {Tcl_CreateExitHandler procedure} {unixOrPc} {
+ test event-8.1 {Tcl_CreateExitHandler procedure} {stdio} {
set child [open |[list [info nameofexecutable]] r+]
puts $child "testexithandler create 41; testexithandler create 4"
puts $child "testexithandler create 6; exit"
@@ -284,7 +289,7 @@ even 4
odd 41
}
- test event-9.1 {Tcl_DeleteExitHandler procedure} {unixOrPc} {
+ test event-9.1 {Tcl_DeleteExitHandler procedure} {stdio} {
set child [open |[list [info nameofexecutable]] r+]
puts $child "testexithandler create 41; testexithandler create 4"
puts $child "testexithandler create 6; testexithandler delete 41"
@@ -297,7 +302,7 @@ odd 41
even 6
even 4
}
- test event-9.2 {Tcl_DeleteExitHandler procedure} {unixOrPc} {
+ test event-9.2 {Tcl_DeleteExitHandler procedure} {stdio} {
set child [open |[list [info nameofexecutable]] r+]
puts $child "testexithandler create 41; testexithandler create 4"
puts $child "testexithandler create 6; testexithandler delete 4"
@@ -310,7 +315,7 @@ even 4
even 6
odd 41
}
- test event-9.3 {Tcl_DeleteExitHandler procedure} {unixOrPc} {
+ test event-9.3 {Tcl_DeleteExitHandler procedure} {stdio} {
set child [open |[list [info nameofexecutable]] r+]
puts $child "testexithandler create 41; testexithandler create 4"
puts $child "testexithandler create 6; testexithandler delete 6"
@@ -323,7 +328,7 @@ odd 41
even 4
odd 41
}
- test event-9.4 {Tcl_DeleteExitHandler procedure} {unixOrPc} {
+ test event-9.4 {Tcl_DeleteExitHandler procedure} {stdio} {
set child [open |[list [info nameofexecutable]] r+]
puts $child "testexithandler create 41; testexithandler delete 41"
puts $child "testexithandler create 16; exit"
@@ -335,7 +340,7 @@ odd 41
}
}
-test event-10.1 {Tcl_Exit procedure} {unixOrPc} {
+test event-10.1 {Tcl_Exit procedure} {stdio} {
set child [open |[list [info nameofexecutable]] r+]
puts $child "exit 3"
list [catch {close $child} msg] $msg [lindex $errorCode 0] \
@@ -357,6 +362,7 @@ test event-11.4 {Tcl_VwaitCmd procedure} {
foreach i [after info] {
after cancel $i
}
+ after 10; update; # On Mac make sure update won't take long
after 100 {set x x-done}
after 200 {set y y-done}
after 300 {set z z-done}
@@ -372,7 +378,7 @@ foreach i [after info] {
after cancel $i
}
-test event-11.5 {Tcl_VwaitCmd procedure: round robin scheduling, 2 sources} {
+test event-11.5 {Tcl_VwaitCmd procedure: round robin scheduling, 2 sources} {socket} {
set f1 [open test1 w]
proc accept {s args} {
puts $s foobar
@@ -435,8 +441,9 @@ test event-12.4 {Tcl_UpdateCmd procedure} {
foreach i [after info] {
after cancel $i
}
+ after 10; update; # On Mac make sure update won't take long
after 200 {set x x-done}
- after 500 {set y y-done}
+ after 600 {set y y-done}
after idle {set z z-done}
set x before
set y before
OpenPOWER on IntegriCloud