Mercurial > hg > xemacs-beta
annotate tests/automated/os-tests.el @ 5652:cc6f0266bc36
Avoid #'delq in core Lisp, for the sake of style, a very slightly smaller binary
lisp/ChangeLog addition:
2012-05-01 Aidan Kehoe <kehoea@parhasard.net>
Avoid #'delq in core code, for the sake of style and a (very
slightly) smaller binary.
* behavior.el (disable-behavior):
* behavior.el (compute-behavior-group-children):
* buff-menu.el (buffers-tab-items):
* byte-optimize.el (byte-optimize-delay-constants-math):
* byte-optimize.el (byte-optimize-logmumble):
* byte-optimize.el (byte-decompile-bytecode-1):
* byte-optimize.el (byte-optimize-lapcode):
* bytecomp.el:
* bytecomp.el (byte-compile-arglist-warn):
* bytecomp.el (byte-compile-warn-about-unresolved-functions):
* bytecomp.el (byte-compile-lambda):
* bytecomp.el (byte-compile-out-toplevel):
* bytecomp.el (byte-compile-insert):
* bytecomp.el (byte-compile-defalias-warn):
* cl-macs.el (cl-upcase-arg):
* cl-macs.el (cl-transform-lambda):
* cl-macs.el (cl-do-proclaim):
* cl-macs.el (defstruct):
* cl-macs.el (cl-make-type-test):
* cl-macs.el (define-compiler-macro):
* cl-macs.el (delete-duplicates):
* cus-edit.el (widget-face-value-delete):
* cus-edit.el (face-history):
* easymenu.el (easy-menu-remove):
* files.el (files-fetch-hook-value):
* files.el (file-expand-wildcards):
* font-lock.el (font-lock-update-removed-keyword-alist):
* font-lock.el (font-lock-remove-keywords):
* frame.el (frame-initialize):
* frame.el (frame-notice-user-settings):
* frame.el (set-frame-font):
* frame.el (delete-other-frames):
* frame.el (get-frame-for-buffer-noselect):
* gnuserv.el (gnuserv-kill-buffer-function):
* gnuserv.el (gnuserv-check-device):
* gnuserv.el (gnuserv-kill-client):
* gnuserv.el (gnuserv-buffer-done-1):
* gtk-font-menu.el (gtk-reset-device-font-menus):
* gutter-items.el (buffers-tab-items):
* gutter.el (set-gutter-element-visible-p):
* info.el (Info-find-file-node):
* info.el (Info-history-add):
* info.el (Info-build-annotation-completions):
* info.el (Info-index):
* info.el (Info-reannotate-node):
* itimer.el (delete-itimer):
* itimer.el (start-itimer):
* lib-complete.el (lib-complete:cache-completions):
* loadhist.el (unload-feature):
* menubar-items.el (build-buffers-menu-internal):
* menubar.el (delete-menu-item):
* menubar.el (relabel-menu-item):
* msw-font-menu.el (mswindows-reset-device-font-menus):
* mule/make-coding-system.el (fixed-width-generate-helper):
* next-error.el (next-error-find-buffer):
* obsolete.el:
* obsolete.el (find-non-ascii-charset-string):
* obsolete.el (find-non-ascii-charset-region):
* occur.el (multi-occur-by-filename-regexp):
* occur.el (occur-1):
* packages.el (packages-package-hierarchy-directory-names):
* packages.el (package-get-key-1):
* process.el (setenv):
* simple.el (undo):
* simple.el (handle-pre-motion-command-current-command-is-motion):
* sound.el (load-sound-file):
* wid-edit.el (widget-field-value-delete):
* wid-edit.el (widget-checklist-match-inline):
* wid-edit.el (widget-checklist-match-find):
* wid-edit.el (widget-editable-list-delete-at):
* wid-edit.el (widget-editable-list-entry-create):
* window.el (quit-window):
* x-font-menu.el (x-reset-device-font-menus-core):
1. Replace (delq nil (mapcar ....)) with analogous (mapcan ...)
forms; this is in non-dumped files, it was done previously in
dumped files.
2. Replace (delq FOO (copy-sequence BAR)) with (remove* FOO BAR),
where #'eq and #'eql are equivalent
3. Replace (delq FOO BAR) with (delete* FOO BAR), where FOO is not
a non-fixnum number. Saves a little space in the dumped file
(since the compiler macro adds :test #'eq to the delete* call if
it's not clear that FOO is not a non-fixnum number).
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Tue, 01 May 2012 16:17:42 +0100 |
parents | 071b810ceb18 |
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 |