Mercurial > hg > xemacs-beta
annotate tests/automated/os-tests.el @ 5402:308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
author | Mats Lidell <matsl@xemacs.org> |
---|---|
date | Thu, 14 Oct 2010 17:15:20 +0200 |
parents | 3660d327399f |
children | eed303fac325 |
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)) | |
65 (flet ((do-test (pos result) | |
66 (erase-buffer) | |
67 (insert original-string) | |
68 (goto-char pos) | |
69 (call-process-region 3 7 "tac" t t) | |
70 (goto-char (point-min)) | |
71 (Assert (looking-at result)))) | |
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)) | |
83 (flet ((do-test (pos result) | |
84 (erase-buffer) | |
85 (insert original-string) | |
86 (goto-char pos) | |
87 (call-process-region 3 7 "cat" t t) | |
88 (goto-char (point-min)) | |
89 (Assert (looking-at result)))) | |
90 (do-test (car case) (cdr case))))))) | |
91 | |
92 ;;; end of os-tests.el |