Mercurial > hg > xemacs-beta
annotate tests/automated/case-tests.el @ 4934:714f7c9fabb1
make it easier to debug staticpro crashes.
Add functions to print out the variable names saved during calls to
staticpro(), and change the order of enumerating staticpros to start
from 0 to make it easier to get a count to pass to the new functions.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Tue, 19 Jan 2010 01:21:39 -0600 |
parents | 189fb67ca31a |
children | 1fbf8bffa545 |
rev | line source |
---|---|
446 | 1 ;;; -*- coding: iso-8859-1 -*- |
2 | |
3 ;; Copyright (C) 2000 Free Software Foundation, Inc. | |
4 | |
5 ;; Author: Yoshiki Hayashi <yoshiki@xemacs.org> | |
6 ;; Maintainer: Yoshiki Hayashi <yoshiki@xemacs.org> | |
7 ;; Created: 2000 | |
8 ;; Keywords: tests | |
9 | |
10 ;; This file is part of XEmacs. | |
11 | |
12 ;; XEmacs is free software; you can redistribute it and/or modify it | |
13 ;; under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; XEmacs is distributed in the hope that it will be useful, but | |
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
20 ;; General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
23 ;; along with XEmacs; see the file COPYING. If not, write to the Free | |
24 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
25 ;; 02111-1307, USA. | |
26 | |
27 ;;; Synched up with: Not in FSF. | |
28 | |
29 ;;; Commentary: | |
30 | |
31 ;; Test case-table related functionality. | |
32 | |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
33 (defvar pristine-case-table nil |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
34 "The standard case table, without manipulation from case-tests.el") |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
35 |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
36 (setq pristine-case-table (or |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
37 ;; This is the compiled run; we've retained |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
38 ;; it from the interpreted run. |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
39 pristine-case-table |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
40 ;; This is the interpreted run; set it. |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
41 (copy-case-table (standard-case-table)))) |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
42 |
446 | 43 (Assert (case-table-p (standard-case-table))) |
44 ;; Old case table test. | |
45 (Assert (case-table-p (list | |
46 (make-string 256 ?a) | |
47 nil nil nil))) | |
48 (Assert (case-table-p (list | |
49 (make-string 256 ?a) | |
50 (make-string 256 ?b) | |
51 nil nil))) | |
52 (Assert (case-table-p (list | |
53 (make-string 256 ?a) | |
54 (make-string 256 ?b) | |
55 (make-string 256 ?c) | |
56 nil))) | |
57 (Assert (case-table-p (list | |
58 (make-string 256 ?a) | |
59 (make-string 256 ?b) | |
60 (make-string 256 ?c) | |
61 (make-string 256 ?d)))) | |
62 (Assert (not (case-table-p (list (make-string 256 ?a) | |
63 (make-string 256 ?b) | |
64 (make-string 256 ?c) | |
65 (make-string 254 ?d))))) | |
66 (Assert (not (case-table-p (list (make-string 256 ?a))))) | |
67 | |
68 (Assert (case-table-p (set-case-table (current-case-table)))) | |
69 | |
462 | 70 (defvar string-0-through-32 |
71 (let ((result (make-string 33 (int-to-char 0)))) | |
72 (dotimes (i 33) | |
73 (aset result i (int-to-char i))) | |
74 result) | |
75 "String containing characters from code point 0 (NUL) through 32 (SPC).") | |
76 | |
77 (defvar string-127-through-160 | |
78 (let ((result (make-string 34 (int-to-char 0)))) | |
79 (dotimes (i 34) | |
80 (aset result i (int-to-char (+ 127 i)))) | |
81 result) | |
82 "String containing characters from code point 127 (DEL) through 160 | |
83 \(no-break-space).") | |
84 | |
446 | 85 ;; Case table sanity check. |
462 | 86 (let ((downcase-string |
87 (concat string-0-through-32 | |
88 "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" | |
89 string-127-through-160 | |
90 "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ")) | |
91 (upcase-string | |
92 (concat string-0-through-32 | |
93 "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~" | |
94 string-127-through-160 | |
95 "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ")) | |
96 (table (standard-case-table))) | |
446 | 97 (dotimes (i 256) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
98 (Assert-eq (get-case-table 'downcase (int-to-char i) table) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
99 (aref downcase-string i)) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
100 (Assert-eq (get-case-table 'upcase (int-to-char i) table) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
101 (aref upcase-string i)))) |
446 | 102 |
103 (Check-Error-Message error "Char case must be downcase or upcase" | |
104 (get-case-table 'foo ?a (standard-case-table))) | |
105 | |
106 (Assert | |
107 (string= | |
108 (upcase "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz") | |
109 "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ")) | |
110 | |
111 (Assert | |
112 (string= | |
113 (upcase "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ") | |
114 "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ")) | |
115 | |
116 (Assert | |
117 (string= | |
118 (upcase " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ") | |
119 " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ")) | |
120 | |
121 (Assert | |
122 (string= | |
123 (upcase " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ") | |
124 " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ")) | |
125 | |
126 (Assert | |
127 (string= | |
128 (downcase "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz") | |
129 "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz")) | |
130 | |
131 (Assert | |
132 (string= | |
133 (downcase "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ") | |
134 "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz")) | |
135 | |
136 (Assert | |
137 (string= | |
138 (downcase " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ") | |
139 " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ")) | |
140 | |
141 (Assert | |
142 (string= | |
143 (downcase " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ") | |
144 " ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ")) | |
145 | |
146 ;; Old case table format test. | |
147 (with-temp-buffer | |
148 (set-case-table | |
462 | 149 (list |
150 (concat string-0-through-32 | |
151 "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" | |
152 string-127-through-160 | |
153 "¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ") | |
446 | 154 nil nil nil)) |
155 (Assert | |
156 (string= | |
157 (upcase "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz") | |
158 "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ")) | |
159 (Assert | |
160 (string= | |
161 (downcase "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ") | |
162 "!\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz"))) | |
163 | |
164 (with-temp-buffer | |
165 (insert "Test Buffer") | |
166 (let ((case-fold-search t)) | |
167 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
168 (Assert-eq (search-forward "test buffer" nil t) 12) |
446 | 169 (goto-char (point-min)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
170 (Assert-eq (search-forward "Test buffer" nil t) 12) |
446 | 171 (goto-char (point-min)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
172 (Assert-eq (search-forward "Test Buffer" nil t) 12) |
446 | 173 |
174 (setq case-fold-search nil) | |
175 (goto-char (point-min)) | |
176 (Assert (not (search-forward "test buffer" nil t))) | |
177 (goto-char (point-min)) | |
178 (Assert (not (search-forward "Test buffer" nil t))) | |
179 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
180 (Assert-eq (search-forward "Test Buffer" nil t) 12))) |
446 | 181 |
182 (with-temp-buffer | |
183 (insert "abcdefghijklmnäopqrstuÄvwxyz") | |
184 ;; case insensitive | |
185 (Assert (not (search-forward "ö" nil t))) | |
186 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
187 (Assert-eq 16 (search-forward "ä" nil t)) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
188 (Assert-eq 24 (search-forward "ä" nil t)) |
446 | 189 (goto-char (point-min)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
190 (Assert-eq 16 (search-forward "Ä" nil t)) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
191 (Assert-eq 24 (search-forward "Ä" nil t)) |
446 | 192 (goto-char (point-max)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
193 (Assert-eq 23 (search-backward "ä" nil t)) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
194 (Assert-eq 15 (search-backward "ä" nil t)) |
446 | 195 (goto-char (point-max)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
196 (Assert-eq 23 (search-backward "Ä" nil t)) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
197 (Assert-eq 15 (search-backward "Ä" nil t)) |
446 | 198 ;; case sensitive |
199 (setq case-fold-search nil) | |
200 (goto-char (point-min)) | |
201 (Assert (not (search-forward "ö" nil t))) | |
202 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
203 (Assert-eq 16 (search-forward "ä" nil t)) |
446 | 204 (Assert (not (search-forward "ä" nil t))) |
205 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
206 (Assert-eq 24 (search-forward "Ä" nil t)) |
446 | 207 (goto-char 16) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
208 (Assert-eq 24 (search-forward "Ä" nil t)) |
446 | 209 (goto-char (point-max)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
210 (Assert-eq 15 (search-backward "ä" nil t)) |
446 | 211 (goto-char 15) |
212 (Assert (not (search-backward "ä" nil t))) | |
213 (goto-char (point-max)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
214 (Assert-eq 23 (search-backward "Ä" nil t)) |
446 | 215 (Assert (not (search-backward "Ä" nil t)))) |
216 | |
217 (with-temp-buffer | |
218 (insert "aaaaäÄäÄäÄäÄäÄbbbb") | |
219 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
220 (Assert-eq 15 (search-forward "ää" nil t 5)) |
446 | 221 (goto-char (point-min)) |
222 (Assert (not (search-forward "ää" nil t 6))) | |
223 (goto-char (point-max)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
224 (Assert-eq 5 (search-backward "ää" nil t 5)) |
446 | 225 (goto-char (point-max)) |
226 (Assert (not (search-backward "ää" nil t 6)))) | |
227 | |
228 (when (featurep 'mule) | |
229 (let* ((hiragana-a (make-char 'japanese-jisx0208 36 34)) | |
230 (a-diaeresis ?ä) | |
231 (case-table (copy-case-table (standard-case-table))) | |
232 (str-hiragana-a (char-to-string hiragana-a)) | |
233 (str-a-diaeresis (char-to-string a-diaeresis)) | |
234 (string (concat str-hiragana-a str-a-diaeresis))) | |
235 (put-case-table-pair hiragana-a a-diaeresis case-table) | |
236 (with-temp-buffer | |
237 (set-case-table case-table) | |
238 (insert hiragana-a "abcdefg" a-diaeresis) | |
239 ;; forward | |
240 (goto-char (point-min)) | |
241 (Assert (not (search-forward "ö" nil t))) | |
242 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
243 (Assert-eq 2 (search-forward str-hiragana-a nil t)) |
446 | 244 (goto-char (point-min)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
245 (Assert-eq 2 (search-forward str-a-diaeresis nil t)) |
446 | 246 (goto-char (1+ (point-min))) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
247 (Assert-eq (point-max) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
248 (search-forward str-hiragana-a nil t)) |
446 | 249 (goto-char (1+ (point-min))) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
250 (Assert-eq (point-max) |
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
251 (search-forward str-a-diaeresis nil t)) |
446 | 252 ;; backward |
253 (goto-char (point-max)) | |
254 (Assert (not (search-backward "ö" nil t))) | |
255 (goto-char (point-max)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
256 (Assert-eq (1- (point-max)) (search-backward str-hiragana-a nil t)) |
446 | 257 (goto-char (point-max)) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
258 (Assert-eq (1- (point-max)) (search-backward str-a-diaeresis nil t)) |
446 | 259 (goto-char (1- (point-max))) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
260 (Assert-eq 1 (search-backward str-hiragana-a nil t)) |
446 | 261 (goto-char (1- (point-max))) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
262 (Assert-eq 1 (search-backward str-a-diaeresis nil t)) |
446 | 263 (replace-match "a") |
264 (Assert (looking-at (format "abcdefg%c" a-diaeresis)))) | |
265 (with-temp-buffer | |
266 (set-case-table case-table) | |
267 (insert string) | |
268 (insert string) | |
269 (insert string) | |
270 (insert string) | |
271 (insert string) | |
272 (goto-char (point-min)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
273 (Assert-eq 11 (search-forward string nil t 5)) |
446 | 274 (goto-char (point-min)) |
275 (Assert (not (search-forward string nil t 6))) | |
276 (goto-char (point-max)) | |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
277 (Assert-eq 1 (search-backward string nil t 5)) |
446 | 278 (goto-char (point-max)) |
279 (Assert (not (search-backward string nil t 6)))))) | |
280 | |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
281 ;; Bug reported in http://mid.gmane.org/y9lk5lu5orq.fsf@deinprogramm.de from |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
282 ;; Michael Sperber. Fixed 2008-01-29. |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
283 (with-string-as-buffer-contents "\n\nDer beruhmte deutsche Flei\xdf\n\n" |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
284 (goto-char (point-min)) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
285 (Assert (search-forward "Flei\xdf"))) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
286 |
4421
69b803c646cd
Fail searches immediately if searching for non-representable characters.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4415
diff
changeset
|
287 (with-temp-buffer |
4423
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
288 (let ((target "M\xe9zard") |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
289 (debug-xemacs-searches 1)) |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
290 (Assert (not (search-forward target nil t))) |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
291 (insert target) |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
292 (goto-char (point-min)) |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
293 ;; #### search-algorithm-used is simple-search after the following, |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
294 ;; which shouldn't be necessary; it should be possible to use |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
295 ;; Boyer-Moore. |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
296 ;; |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
297 ;; But searches for ASCII strings in buffers with nothing above ?\xFF |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
298 ;; use Boyer Moore with the current implementation, which is the |
1982c8c55632
Correct and extend the previous test, thank you Stephen.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4421
diff
changeset
|
299 ;; important thing for the Gnus use case. |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
300 (Assert= (1+ (length target)) (search-forward target nil t)))) |
4421
69b803c646cd
Fail searches immediately if searching for non-representable characters.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4415
diff
changeset
|
301 |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
302 (Skip-Test-Unless |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
303 (boundp 'debug-xemacs-searches) ; normal when we have DEBUG_XEMACS |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
304 "not a DEBUG_XEMACS build" |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
305 "checks that the algorithm chosen by #'search-forward is relatively sane" |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
306 (let ((debug-xemacs-searches 1)) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
307 (with-temp-buffer |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
308 (set-case-table pristine-case-table) |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
309 (insert "\n\nDer beruhmte deutsche Fleiss\n\n") |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
310 (goto-char (point-min)) |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
311 (Assert (search-forward "Fleiss")) |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
312 (delete-region (point-min) (point-max)) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
313 (insert "\n\nDer beruhmte deutsche Flei\xdf\n\n") |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
314 (goto-char (point-min)) |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
315 (Assert (search-forward "Flei\xdf")) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
316 (Assert-eq 'boyer-moore search-algorithm-used) |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
317 (delete-region (point-min) (point-max)) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
318 (when (featurep 'mule) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
319 (insert "\n\nDer beruhmte deutsche Flei\xdf\n\n") |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
320 (goto-char (point-min)) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
321 (Assert |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
322 (search-forward (format "Fle%c\xdf" |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
323 (make-char 'latin-iso8859-9 #xfd)))) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
324 (Assert-eq 'boyer-moore search-algorithm-used) |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
325 (insert (make-char 'latin-iso8859-9 #xfd)) |
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
326 (goto-char (point-min)) |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
327 (Assert (search-forward "Flei\xdf")) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
328 (Assert-eq 'simple-search search-algorithm-used) |
4415
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
329 (goto-char (point-min)) |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
330 (Assert (search-forward (format "Fle%c\xdf" |
bceb3e285ae7
case-tests.el: fix it on non-DEBUG_XEMACS; save standard-case-table, use it
Aidan Kehoe <kehoea@parhasard.net>
parents:
4414
diff
changeset
|
331 (make-char 'latin-iso8859-9 #xfd)))) |
4855
189fb67ca31a
Create Assert-eq, Assert-equal, etc.
Ben Wing <ben@xemacs.org>
parents:
4423
diff
changeset
|
332 (Assert-eq 'simple-search search-algorithm-used))))) |
4414
df576f30c1d8
Correct case-insensitive search for non-case, non-ASCII chars. Add tests.
Aidan Kehoe <kehoea@parhasard.net>
parents:
462
diff
changeset
|
333 |