annotate test/occur-testsuite.el @ 107546:59e2de1eaab1

* process.c (Fmake_network_process): Don't apply Bug#5173 fix for Windows.
author Chong Yidong <cyd@stupidchicken.com>
date Fri, 26 Mar 2010 20:45:32 -0400
parents 1039cde2a81b
children bfde3c2dbef5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
107477
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
1 ;;; occur-testsuite.el --- Test suite for occur.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
2
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
3 ;; Copyright (C) 2010 Free Software Foundation, Inc.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
4
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
5 ;; Author: Juri Linkov <juri@jurta.org>
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
6 ;; Keywords: matching, internal
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
7
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
9
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
10 ;; GNU Emacs is free software: you can redistribute it and/or modify
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
12 ;; the Free Software Foundation, either version 3 of the License, or
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
13 ;; (at your option) any later version.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
14
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
19
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
22
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
23 ;;; Commentary:
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
24
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
25 ;; Type M-x test-occur RET to test the functionality of `occur'.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
26
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
27 ;;; Code:
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
28
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
29 (defconst occur-tests
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
30 '(
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
31 ;; * Test one-line matches (at bob, eob, bol, eol).
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
32 ("x" 0 "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
33 xa
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
34 b
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
35 cx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
36 xd
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
37 xex
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
38 fx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
39 " "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
40 5 matches for \"x\" in buffer: *temp*
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
41 1:xa
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
42 3:cx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
43 4:xd
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
44 5:xex
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
45 6:fx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
46 ")
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
47 ;; * Test multi-line matches, this is the first test from
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
48 ;; http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg01008.html
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
49 ;; where numbers are replaced with letters.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
50 ("a\na" 0 "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
51 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
52 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
53 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
54 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
55 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
56 " "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
57 2 matches for \"a^Ja\" in buffer: *temp*
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
58 1:a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
59 :a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
60 3:a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
61 :a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
62 ")
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
63 ;; * Test multi-line matches, this is the second test from
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
64 ;; http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg01008.html
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
65 ;; where numbers are replaced with letters.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
66 ("a\nb" 0 "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
67 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
68 b
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
69 c
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
70 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
71 b
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
72 " "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
73 2 matches for \"a^Jb\" in buffer: *temp*
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
74 1:a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
75 :b
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
76 4:a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
77 :b
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
78 ")
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
79 ;; * Test line numbers for multi-line matches with empty last match line.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
80 ("a\n" 0 "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
81 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
82
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
83 c
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
84 a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
85
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
86 " "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
87 2 matches for \"a^J\" in buffer: *temp*
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
88 1:a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
89 :
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
90 4:a
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
91 :
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
92 ")
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
93 ;; * Test multi-line matches with 3 match lines.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
94 ("x\n.x\n" 0 "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
95 ax
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
96 bx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
97 c
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
98 d
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
99 ex
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
100 fx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
101 " "\
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
102 2 matches for \"x^J.x^J\" in buffer: *temp*
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
103 1:ax
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
104 :bx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
105 :c
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
106 5:ex
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
107 :fx
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
108 :
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
109 ")
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
110 )
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
111 "List of tests for `occur'.
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
112 Each element has the format:
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
113 \(REGEXP NLINES INPUT-BUFFER-STRING OUTPUT-BUFFER-STRING).")
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
114
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
115 (defun test-occur ()
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
116 (interactive)
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
117 (let ((count 1)
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
118 failed
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
119 (occur-hook nil))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
120 (dolist (test occur-tests)
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
121 (let ((regexp (nth 0 test))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
122 (nlines (nth 1 test))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
123 (input-buffer-string (nth 2 test))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
124 (output-buffer-string (nth 3 test)))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
125 (save-excursion
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
126 (with-temp-buffer
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
127 (insert input-buffer-string)
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
128 (occur regexp nlines)
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
129 (unless (equal output-buffer-string
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
130 (with-current-buffer "*Occur*"
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
131 (buffer-string)))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
132 (setq failed (cons count failed))))))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
133 (setq count (1+ count)))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
134 (if failed
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
135 (message "FAILED TESTS: %S" (reverse failed))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
136 (message "SUCCESS"))))
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
137
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
138 (provide 'occur-testsuite)
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
139
1039cde2a81b * occur-testsuite.el: New file.
Juri Linkov <juri@jurta.org>
parents:
diff changeset
140 ;;; occur-testsuite.el ends here