diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2019-01-03 16:52:10 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2019-01-03 16:52:10 (GMT) |
commit | 2fdbadf22c26555d560602932f3063cb5e1d034a (patch) | |
tree | f2f5e3de86f5a13bb995e07a28ad7bdf5b320079 /tclsignal/tests | |
parent | fa6e0263b87ec0165be0a3a774e0bbdccc069f57 (diff) | |
parent | 39b56148245456816b3bd4b9341f4bb498644093 (diff) | |
download | blt-2fdbadf22c26555d560602932f3063cb5e1d034a.zip blt-2fdbadf22c26555d560602932f3063cb5e1d034a.tar.gz blt-2fdbadf22c26555d560602932f3063cb5e1d034a.tar.bz2 |
Merge commit '39b56148245456816b3bd4b9341f4bb498644093' as 'tclsignal'
Diffstat (limited to 'tclsignal/tests')
-rwxr-xr-x | tclsignal/tests/test_sig.tk | 31 | ||||
-rwxr-xr-x | tclsignal/tests/test_sig_async.tk | 50 |
2 files changed, 81 insertions, 0 deletions
diff --git a/tclsignal/tests/test_sig.tk b/tclsignal/tests/test_sig.tk new file mode 100755 index 0000000..feca784 --- /dev/null +++ b/tclsignal/tests/test_sig.tk @@ -0,0 +1,31 @@ +#!/usr/local/bin/wish4.1 +# ENSURE YOUR TCLLIBPATH includes /usr/local/lib/signal! +# (or uncomment the appropriate load line and comment the package line) +# --SUN +# load /usr/local/lib/signal_ext.so +# --HP +# load /usr/local/lib/signal_ext.sl +package require Signal + +signal add 21 { wm iconify . ; wm deiconify . } +signal add SIGHUP { puts "Signal 1 received" } +signal add SIGINT { puts "SIGINT received" } + +puts "Showing all the signals handled" +puts [signal print] +puts "Showing how 3 is handled" +puts [signal print 3] +puts "Showing how SIGTTOU is handled" +puts [signal print SIGTTOU] + +frame .bottom +button .bottom.b -text "Done" -command "exit 0" +button .bottom.i -text "Iconify" -command "wm iconify ." +label .l -wraplength 40m -text { +Sending this process signals 1 (HUP) or 2 (^C or INT) will print messages; signal 21 (URG) will pop it up! +} + +pack .bottom.b -side left -fill x +pack .bottom.i -side right -fill x +pack .l -side top -fill both -expand true +pack .bottom -in . -side bottom -fill x diff --git a/tclsignal/tests/test_sig_async.tk b/tclsignal/tests/test_sig_async.tk new file mode 100755 index 0000000..24ac543 --- /dev/null +++ b/tclsignal/tests/test_sig_async.tk @@ -0,0 +1,50 @@ +#!/usr/local/bin/wish4.1 +# ENSURE YOUR TCLLIBPATH includes /usr/local/lib/signal! +# (or uncomment the appropriate load line and comment the package line) +# --SUN +# load /usr/local/lib/signal_ext.so +# --HP +# load /usr/local/lib/signal_ext.sl + +# Proc to do something absurd for a long time +proc do_long_job { } { + for { set i 0 } { $i < 300000 } { incr i } { expr $i * $i } +} + +package require Signal + +signal add 21 { wm iconify . ; wm deiconify . } +signal add SIGHUP { puts "Signal 1 received" } +signal add SIGINT { puts "SIGINT received" ; error "SIGINT interrupt" } -async +signal add SIGQUIT { puts "SIGQUIT received" } -async + +puts "Showing all the signals handled" +puts [signal print] +puts "Showing how 3 is handled" +puts [signal print 3] +puts "Showing how SIGTTOU is handled" +puts [signal print SIGTTOU] + +frame .bottom +button .bottom.b -text "Done" -command "exit 0" +button .bottom.j -text "Long Job" -command do_long_job +button .bottom.i -text "Iconify" -command "wm iconify ." +label .l -wraplength 60m -justify l -text { +Sending this process SIGHUP will (eventually) result in a message; + +SIGQUIT (^\) will result in a message immediately. + +SIGINT (^C) will result in an error trace immediately. This is the result of the -async option on signal handlers + +Signal 21 (URG) will pop the dialog up! + +Pressing the "Long Job" button will perform a single, long calculation where no buttons presses will have immediate effect, but SIGINT will interrupt the calculation prematurely +} + +pack .bottom.b -side left -fill x +pack .bottom.j -side left -fill x +pack .bottom.i -side right -fill x +pack .l -side top -fill both -expand true +pack .bottom -in . -side bottom -fill x + +update |