Mercurial > hg > xemacs-beta
annotate tests/automated/os-tests.el @ 5576:071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
lisp/ChangeLog addition:
2011-10-03 Aidan Kehoe <kehoea@parhasard.net>
* simple.el (handle-pre-motion-command-current-command-is-motion):
Implement #'keysyms-equal with #'labels + (declare (inline ...)),
instead of abusing macrolet to the same end.
* specifier.el (let-specifier):
* mule/mule-cmds.el (describe-language-environment):
* mule/mule-cmds.el (set-language-environment-coding-systems):
* mule/mule-x-init.el (x-use-halfwidth-roman-font):
* faces.el (Face-frob-property):
* keymap.el (key-sequence-list-description):
* lisp-mode.el (construct-lisp-mode-menu):
* loadhist.el (unload-feature):
* mouse.el (default-mouse-track-check-for-activation):
Declare various labels inline in dumped files when that reduces
the size of the dumped image. Declaring labels inline is normally
only worthwhile for inner loops and so on, but it's reasonable
exercise of the related code to have these changes in core.
tests/ChangeLog addition:
2011-10-03 Aidan Kehoe <kehoea@parhasard.net>
* automated/case-tests.el (uni-mappings):
* automated/database-tests.el (delete-database-files):
* automated/hash-table-tests.el (iterations):
* automated/lisp-tests.el (test1):
* automated/lisp-tests.el (a):
* automated/lisp-tests.el (cl-floor):
* automated/lisp-tests.el (foo):
* automated/lisp-tests.el (list-nreverse):
* automated/lisp-tests.el (needs-lexical-context):
* automated/mule-tests.el (featurep):
* automated/os-tests.el (original-string):
* automated/os-tests.el (with):
* automated/symbol-tests.el (check-weak-list-unique):
Replace #'flet with #'labels where appropriate in these tests,
following my own advice on style in the docstrings of those
functions.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 03 Oct 2011 20:16:14 +0100 |
parents | eed303fac325 |
children | c608d4b0b75e |
rev | line source |
---|---|
2356 | 1 ;;; os-tests.el --- test support for OS interaction |
2 | |
3 ;; Copyright (C) 2004 Free Software Foundation | |
4 | |
5 ;; Author: Stephen J. Turnbull <stephen@xemacs.org> | |
6 ;; Maintainer: Stephen J. Turnbull <stephen@xemacs.org> | |
7 ;; Created: 2004 October 28 | |
8 ;; Keywords: tests, process support | |
9 | |
10 ;; This file is part of XEmacs. | |
11 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
12 ;; XEmacs is free software: you can redistribute it and/or modify it |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
13 ;; under the terms of the GNU General Public License as published by the |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
14 ;; Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
15 ;; option) any later version. |
2356 | 16 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
17 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
18 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
19 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
20 ;; for more details. |
2356 | 21 |
22 ;; You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4199
diff
changeset
|
23 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
2356 | 24 |
25 ;;; Synched up with: Not in FSF. | |
26 | |
27 ;;; Commentary: | |
28 | |
29 ;; Test OS support. Processes, environment variables, etc. | |
30 ;; See test-harness.el for instructions on how to run these tests. | |
31 | |
32 ;; call-process-region bug reported by Katsumi Yamaoka on 2004-10-26 | |
33 ;; in <b9yvfcyuscf.fsf@jpl.org>, who suggested the basic test scheme | |
34 ;; in <b9yoeipvwn0.fsf@jpl.org>. | |
35 | |
36 ;; tac works by lines, unfortunately | |
4199 | 37 ;; #### The contortions around `executable-find' gag me, but I don't have time |
38 ;; to deal today. If we have `executable-find', we should use its value! | |
2356 | 39 (let* ((original-string "a\nb\nc\nd\n") |
4199 | 40 ;; `executable-find' is in a package and may be unavailable. |
41 (tac-cases (if (and (fboundp 'executable-find) (executable-find "tac")) | |
2356 | 42 '((1 . "c\nb\na\nd\n") |
43 (3 . "a\nc\nb\nd\n") | |
44 (5 . "a\nc\nb\nd\n") | |
45 (7 . "a\nc\nb\nd\n") | |
46 (9 . "a\nd\nc\nb\n")) | |
47 nil)) | |
4199 | 48 (cat-cases (if (and (fboundp 'executable-find) (executable-find "cat")) |
2356 | 49 '((1 . "b\nc\na\nd\n") |
50 (3 . "a\nb\nc\nd\n") | |
51 (5 . "a\nb\nc\nd\n") | |
52 (7 . "a\nb\nc\nd\n") | |
53 (9 . "a\nd\nb\nc\n")) | |
54 nil)) | |
55 cases case) | |
56 (with-temp-buffer | |
57 (Skip-Test-Unless tac-cases | |
58 "tac executable not found" | |
59 "Tests of call-process-region with region deleted after inserting | |
60 tac process output." | |
61 (setq cases tac-cases) | |
62 (while cases | |
63 (setq case (car cases) | |
64 cases (cdr cases)) | |
5576
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
65 (labels ((do-test (pos result) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
66 (erase-buffer) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
67 (insert original-string) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
68 (goto-char pos) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
69 (call-process-region 3 7 "tac" t t) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
70 (goto-char (point-min)) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
71 (Assert (looking-at result)))) |
2356 | 72 (do-test (car case) (cdr case))))) |
73 ;; if you're in that much of a hurry you can blow cat off | |
74 ;; if you've done tac, but I'm not going to bother | |
75 (Skip-Test-Unless cat-cases | |
76 "cat executable not found" | |
77 "Tests of call-process-region with region deleted after inserting | |
78 cat process output." | |
79 (setq cases cat-cases) | |
80 (while cases | |
81 (setq case (car cases) | |
82 cases (cdr cases)) | |
5576
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
83 (labels ((do-test (pos result) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
84 (erase-buffer) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
85 (insert original-string) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
86 (goto-char pos) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
87 (call-process-region 3 7 "cat" t t) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
88 (goto-char (point-min)) |
071b810ceb18
Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5540
diff
changeset
|
89 (Assert (looking-at result)))) |
2356 | 90 (do-test (car case) (cdr case))))))) |
91 | |
5540
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
92 (loop |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
93 with envvar-not-existing = (symbol-name (gensym "whatever")) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
94 with envvar-existing = (symbol-name (gensym "whatever")) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
95 with envvar-existing-val = (make-string #x10000 ?\xe1) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
96 with examples = |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
97 (list (list (format "%chome%cwhatever%c%chi-there%c$%s" |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
98 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
99 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
100 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
101 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
102 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
103 envvar-existing) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
104 (format "%chi-there%c%s" |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
105 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
106 directory-sep-char |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
107 envvar-existing-val)) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
108 (if (memq system-type '(windows-nt cygwin32)) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
109 '("//network-path/c$" "//network-path/c$") |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
110 '("/network-path/c$" "/network-path/c$")) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
111 (list (format "/home/whoever/$%s" envvar-not-existing) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
112 (format "/home/whoever/$%s" envvar-not-existing)) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
113 (list (format "/home/whoever/$%s" envvar-existing) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
114 (format "/home/whoever/%s" envvar-existing-val)) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
115 (list (format "/home/whoever/${%s}" envvar-existing) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
116 (format "/home/whoever/%s" envvar-existing-val)) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
117 (list (format "/home/whoever/${%s}" envvar-not-existing) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
118 (format "/home/whoever/${%s}" envvar-not-existing))) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
119 initially (progn (setenv envvar-not-existing nil t) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
120 (setenv envvar-existing envvar-existing-val)) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
121 for (pre post) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
122 in examples |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
123 do |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
124 (Assert (string= post (substitute-in-file-name pre)))) |
eed303fac325
Should tests for substitute-in-file-name be in syntax-tests?
Stephen J. Turnbull <stephen@xemacs.org>
parents:
5402
diff
changeset
|
125 |
2356 | 126 ;;; end of os-tests.el |