Mercurial > hg > xemacs-beta
annotate tests/gtk/event-stream-tests.el @ 4709:db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
are missing. This is done with Bill Perry's stated permission, in private
email to me.
author | Jerry James <james@xemacs.org> |
---|---|
date | Mon, 05 Oct 2009 11:08:59 -0600 |
parents | cef5f57bb9e2 |
children | ba07c880114a |
rev | line source |
---|---|
4709
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
1 ;; This file is part of XEmacs. |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
2 ;; |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
3 ;; XEmacs is free software; you can redistribute it and/or modify it |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
4 ;; under the terms of the GNU General Public License as published by the |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
5 ;; Free Software Foundation; either version 2, or (at your option) any |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
6 ;; later version. |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
7 ;; |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
8 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
9 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
10 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
11 ;; for more details. |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
12 ;; |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
13 ;; You should have received a copy of the GNU General Public License |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
14 ;; along with XEmacs; see the file COPYING. If not, write to |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
15 ;; the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
16 ;; Boston, MA 02111-1301, USA. */ |
db7068430402
Add explicit GPL v2 or later notices to Bill Perry's code, where such notices
Jerry James <james@xemacs.org>
parents:
4021
diff
changeset
|
17 |
462 | 18 ;also do this: make two frames, one viewing "*scratch*", the other "foo". |
19 ;in *scratch*, type (sit-for 20)^J | |
20 ;wait a couple of seconds, move cursor to foo, type "a" | |
21 ;a should be inserted in foo. Cursor highlighting should not change in | |
22 ;the meantime. | |
23 | |
24 ;do it with sleep-for. move cursor into foo, then back into *scratch* | |
25 ;before typing. | |
26 ;repeat also with (accept-process-output nil 20) | |
27 | |
28 ;make sure ^G aborts sit-for, sleep-for and accept-process-output: | |
29 | |
30 (defun tst () | |
31 (list (condition-case c | |
32 (sleep-for 20) | |
33 (quit c)) | |
34 (read-char))) | |
35 | |
36 (tst)^Ja^G ==> ((quit) 97) with no signal | |
37 (tst)^J^Ga ==> ((quit) 97) with no signal | |
38 (tst)^Jabc^G ==> ((quit) 97) with no signal, and "bc" inserted in buffer | |
39 | |
40 ; with sit-for only do the 2nd test. | |
41 ; Do all 3 tests with (accept-proccess-output nil 20) | |
42 | |
43 /* | |
44 Additional test cases for accept-process-output, sleep-for, sit-for. | |
45 Be sure you do all of the above checking for C-g and focus, too! | |
46 | |
47 ; Make sure that timer handlers are run during, not after sit-for: | |
48 (defun timer-check () | |
4021 | 49 (add-timeout 2 #'(lambda (ignore) (message "timer ran")) nil) |
462 | 50 (sit-for 5) |
51 (message "after sit-for")) | |
52 | |
53 ; The first message should appear after 2 seconds, and the final message | |
54 ; 3 seconds after that. | |
55 ; repeat above test with (sleep-for 5) and (accept-process-output nil 5) | |
56 | |
57 ; Make sure that process filters are run during, not after sit-for. | |
58 (defun fubar () | |
59 (message "sit-for = %s" (sit-for 30))) | |
60 (add-hook 'post-command-hook 'fubar) | |
61 | |
62 ; Now type M-x shell RET | |
63 ; wait for the shell prompt then send: ls RET | |
64 ; the output of ls should fill immediately, and not wait 30 seconds. | |
65 | |
66 ; repeat above test with (sleep-for 30) and (accept-process-output nil 30) | |
67 | |
68 | |
69 | |
70 ; Make sure that recursive invocations return immediately: | |
71 (defmacro test-diff-time (start end) | |
72 `(+ (* (- (car ,end) (car ,start)) 65536.0) | |
73 (- (cadr ,end) (cadr ,start)) | |
74 (/ (- (caddr ,end) (caddr ,start)) 1000000.0))) | |
75 | |
76 (defun testee (ignore) | |
77 (sit-for 10)) | |
78 | |
79 (defun test-them () | |
80 (let ((start (current-time)) | |
81 end) | |
82 (add-timeout 2 'testee nil) | |
83 (sit-for 5) | |
84 (add-timeout 2 'testee nil) | |
85 (sleep-for 5) | |
86 (add-timeout 2 'testee nil) | |
87 (accept-process-output nil 5) | |
88 (setq end (current-time)) | |
89 (test-diff-time start end))) | |
90 | |
91 (test-them) should sit for 15 seconds. |