Mercurial > hg > xemacs-beta
comparison tests/gtk/event-stream-tests.el @ 462:0784d089fdc9 r21-2-46
Import from CVS: tag r21-2-46
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:44:37 +0200 |
parents | |
children | cef5f57bb9e2 |
comparison
equal
deleted
inserted
replaced
461:120ed4009e51 | 462:0784d089fdc9 |
---|---|
1 ;also do this: make two frames, one viewing "*scratch*", the other "foo". | |
2 ;in *scratch*, type (sit-for 20)^J | |
3 ;wait a couple of seconds, move cursor to foo, type "a" | |
4 ;a should be inserted in foo. Cursor highlighting should not change in | |
5 ;the meantime. | |
6 | |
7 ;do it with sleep-for. move cursor into foo, then back into *scratch* | |
8 ;before typing. | |
9 ;repeat also with (accept-process-output nil 20) | |
10 | |
11 ;make sure ^G aborts sit-for, sleep-for and accept-process-output: | |
12 | |
13 (defun tst () | |
14 (list (condition-case c | |
15 (sleep-for 20) | |
16 (quit c)) | |
17 (read-char))) | |
18 | |
19 (tst)^Ja^G ==> ((quit) 97) with no signal | |
20 (tst)^J^Ga ==> ((quit) 97) with no signal | |
21 (tst)^Jabc^G ==> ((quit) 97) with no signal, and "bc" inserted in buffer | |
22 | |
23 ; with sit-for only do the 2nd test. | |
24 ; Do all 3 tests with (accept-proccess-output nil 20) | |
25 | |
26 /* | |
27 Additional test cases for accept-process-output, sleep-for, sit-for. | |
28 Be sure you do all of the above checking for C-g and focus, too! | |
29 | |
30 ; Make sure that timer handlers are run during, not after sit-for: | |
31 (defun timer-check () | |
32 (add-timeout 2 '(lambda (ignore) (message "timer ran")) nil) | |
33 (sit-for 5) | |
34 (message "after sit-for")) | |
35 | |
36 ; The first message should appear after 2 seconds, and the final message | |
37 ; 3 seconds after that. | |
38 ; repeat above test with (sleep-for 5) and (accept-process-output nil 5) | |
39 | |
40 ; Make sure that process filters are run during, not after sit-for. | |
41 (defun fubar () | |
42 (message "sit-for = %s" (sit-for 30))) | |
43 (add-hook 'post-command-hook 'fubar) | |
44 | |
45 ; Now type M-x shell RET | |
46 ; wait for the shell prompt then send: ls RET | |
47 ; the output of ls should fill immediately, and not wait 30 seconds. | |
48 | |
49 ; repeat above test with (sleep-for 30) and (accept-process-output nil 30) | |
50 | |
51 | |
52 | |
53 ; Make sure that recursive invocations return immediately: | |
54 (defmacro test-diff-time (start end) | |
55 `(+ (* (- (car ,end) (car ,start)) 65536.0) | |
56 (- (cadr ,end) (cadr ,start)) | |
57 (/ (- (caddr ,end) (caddr ,start)) 1000000.0))) | |
58 | |
59 (defun testee (ignore) | |
60 (sit-for 10)) | |
61 | |
62 (defun test-them () | |
63 (let ((start (current-time)) | |
64 end) | |
65 (add-timeout 2 'testee nil) | |
66 (sit-for 5) | |
67 (add-timeout 2 'testee nil) | |
68 (sleep-for 5) | |
69 (add-timeout 2 'testee nil) | |
70 (accept-process-output nil 5) | |
71 (setq end (current-time)) | |
72 (test-diff-time start end))) | |
73 | |
74 (test-them) should sit for 15 seconds. |