Mercurial > hg > xemacs-beta
annotate src/tests.c @ 5773:94a6b8fbd56e
Use a face, show more context around open parenthesis, #'blink-matching-open
lisp/ChangeLog addition:
2013-12-17 Aidan Kehoe <kehoea@parhasard.net>
* simple.el (blink-matching-open):
When showing the opening parenthesis in the minibiffer, use the
isearch face for it, in case there are multiple parentheses in the
text shown.
When writing moderately involved macros, it's often not enough
just to show the backquote context before the parenthesis
(e.g. @,.`). Skip over that when searching for useful context in
the same way we skip over space and tab.
* simple.el (message):
* simple.el (lmessage):
If there are no ARGS, don't call #'format. This allows extent
information to be passed through to the minibuffer.
It's probably better still to update #'format to preserve extent
info.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Tue, 17 Dec 2013 20:49:52 +0200 |
parents | 56144c8593a8 |
children | 65d65b52d608 |
rev | line source |
---|---|
398 | 1 /* C support for testing XEmacs - see tests/automated/c-tests.el |
2 Copyright (C) 2000 Martin Buchholz | |
5013 | 3 Copyright (C) 2001, 2002, 2010 Ben Wing. |
3417 | 4 Copyright (C) 2006 The Free Software Foundation, Inc. |
398 | 5 |
6 This file is part of XEmacs. | |
7 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5191
diff
changeset
|
8 XEmacs is free software: you can redistribute it and/or modify it |
398 | 9 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5191
diff
changeset
|
10 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:
5191
diff
changeset
|
11 option) any later version. |
398 | 12 |
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
16 for more details. | |
17 | |
18 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:
5191
diff
changeset
|
19 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
398 | 20 |
21 /* Author: Martin Buchholz | |
22 | |
23 This file provides support for running tests for XEmacs that cannot | |
24 be written entirely in Lisp. These tests are run automatically via | |
25 tests/automated/c-tests.el, or can be run by hand using M-x */ | |
26 | |
27 | |
28 #include <config.h> | |
29 #include "lisp.h" | |
30 #include "buffer.h" | |
31 #include "lstream.h" | |
489 | 32 #include "elhash.h" |
398 | 33 #include "opaque.h" |
3417 | 34 #include "file-coding.h" /* XCODING_SYSTEM_EOL_TYPE and its values */ |
398 | 35 |
36 static Lisp_Object Vtest_function_list; | |
37 | |
38 DEFUN ("test-data-format-conversion", Ftest_data_format_conversion, 0, 0, "", /* | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
39 Return list of results of test TO_EXTERNAL_FORMAT() and TO_INTERNAL_FORMAT(). |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
40 For use by the automated test suite. See tests/automated/c-tests. |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
41 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
42 Each element is a list (DESCRIPTION, STATUS, REASON). |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
43 DESCRIPTION is a string describing the test. |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
44 STATUS is a symbol, either t (pass) or nil (fail). |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
45 REASON is nil or a string describing the failure (not required). |
398 | 46 */ |
47 ()) | |
48 { | |
665 | 49 void *ptr; Bytecount len; |
5156
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
50 Lisp_Object string = Qnil, opaque = Qnil, conversion_result = Qnil; |
398 | 51 |
867 | 52 Ibyte int_foo[] = "\n\nfoo\nbar"; |
398 | 53 Extbyte ext_unix[]= "\n\nfoo\nbar"; |
54 | |
55 Extbyte ext_dos[] = "\r\n\r\nfoo\r\nbar"; | |
56 Extbyte ext_mac[] = "\r\rfoo\rbar"; | |
57 Lisp_Object opaque_dos = make_opaque (ext_dos, sizeof (ext_dos) - 1); | |
58 Lisp_Object string_foo = make_string (int_foo, sizeof (int_foo) - 1); | |
59 | |
60 Extbyte ext_latin[] = "f\372b\343\340"; | |
867 | 61 Ibyte int_latin1[] = "f\200\372b\200\343\200\340"; |
62 Ibyte int_latin2[] = "f\201\372b\201\343\201\340"; | |
398 | 63 #ifdef MULE |
64 Extbyte ext_latin12[]= "f\033-A\372b\343\340\033-B"; | |
65 Extbyte ext_tilde[] = "f~b~~"; | |
66 Lisp_Object string_latin2 = make_string (int_latin2, sizeof (int_latin2) - 1); | |
67 #endif | |
68 Lisp_Object opaque_latin = make_opaque (ext_latin, sizeof (ext_latin) - 1); | |
69 Lisp_Object opaque0_latin = make_opaque (ext_latin, sizeof (ext_latin)); | |
70 Lisp_Object string_latin1 = make_string (int_latin1, sizeof (int_latin1) - 1); | |
3417 | 71 int autodetect_eol_p = |
72 !NILP (Fsymbol_value (intern ("eol-detection-enabled-p"))); | |
5156
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
73 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
74 struct gcpro ngcpro1, ngcpro2, ngcpro3; |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
75 #ifdef MULE |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
76 struct gcpro ngcpro4; |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
77 #endif |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
78 |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
79 /* DFC conversion inhibits GC, but we have a call2() below which calls |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
80 Lisp, which can trigger GC, so we need to GC-protect everything here. */ |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
81 GCPRO5 (string, opaque, conversion_result, opaque_dos, string_foo); |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
82 #ifdef MULE |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
83 NGCPRO4 (string_latin2, opaque_latin, opaque0_latin, string_latin1); |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
84 #else |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
85 NGCPRO3 (opaque_latin, opaque0_latin, string_latin1); |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
86 #endif |
398 | 87 |
88 /* Check for expected strings before and after conversion. | |
771 | 89 Conversions depend on whether MULE is defined. */ |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
90 |
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
91 /* #### Any code below that uses iso-latin-2-with-esc is ill-conceived. */ |
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
92 |
398 | 93 #ifdef MULE |
94 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \ | |
95 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
96 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
97 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
98 DFC_CHECK_DATA (ptr, len, constant_string_mule, description) |
398 | 99 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \ |
100 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
101 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
102 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
103 DFC_CHECK_DATA_NUL (ptr, len, constant_string_mule, description) |
398 | 104 #else |
105 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \ | |
106 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
107 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
108 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
109 DFC_CHECK_DATA (ptr, len, constant_string_non_mule, description) |
398 | 110 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \ |
111 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
112 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
113 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
114 DFC_CHECK_DATA_NUL (ptr, len, constant_string_non_mule, description) |
398 | 115 #endif |
116 | |
3417 | 117 /* These now only apply to base coding systems, and |
118 need to test `eol-detection-enabled-p' at runtime. */ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
119 #define DFC_CHECK_DATA_COND_EOL(ptr,len, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
120 constant_string_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
121 constant_string_non_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
122 description) do { \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
123 if (autodetect_eol_p) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
124 DFC_CHECK_DATA (ptr, len, constant_string_eol, description); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
125 else \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
126 DFC_CHECK_DATA (ptr, len, constant_string_non_eol, description); \ |
3417 | 127 } while (0) |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
128 #define DFC_CHECK_DATA_COND_EOL_NUL(ptr,len, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
129 constant_string_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
130 constant_string_non_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
131 description) do { \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
132 if (autodetect_eol_p) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
133 DFC_CHECK_DATA_NUL (ptr, len, constant_string_eol, description); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
134 else \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
135 DFC_CHECK_DATA_NUL (ptr, len, constant_string_non_eol, description); \ |
3417 | 136 } while (0) |
398 | 137 |
138 /* Check for expected strings before and after conversion. */ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
139 #define DFC_CHECK_DATA(ptr,len,constant_string,test) do { \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
140 DFC_INITIALIZE (test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
141 DFC_CHECK_LENGTH (len, sizeof (constant_string) - 1, test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
142 DFC_CHECK_CONTENT (ptr, constant_string, len, test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
143 DFC_RESULT_PASS (test); \ |
398 | 144 } while (0) |
145 | |
146 /* Macro version that includes the trailing NULL byte. */ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
147 #define DFC_CHECK_DATA_NUL(ptr,len,constant_string,test) do { \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
148 DFC_INITIALIZE (test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
149 DFC_CHECK_LENGTH (len, sizeof (constant_string), test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
150 DFC_CHECK_CONTENT (ptr, constant_string, len, test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
151 DFC_RESULT_PASS (test); \ |
398 | 152 } while (0) |
153 | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
154 /* WARNING WARNING WARNING! |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
155 The following macros are NOT protected by "do { ... } while (0)"!! |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
156 */ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
157 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
158 #define DFC_INITIALIZE(test_name) if (0) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
159 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
160 #define DFC_CHECK_LENGTH(len1,len2,str1) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
161 else if ((len1) != (len2)) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
162 conversion_result = \ |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4952
diff
changeset
|
163 Fcons (list3 (build_cistring(str1), Qnil, build_ascstring("wrong length")), \ |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
164 conversion_result) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
165 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
166 #define DFC_CHECK_CONTENT(str1,str2,len1,str3) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
167 else if (memcmp (str1, str2, len1)) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
168 conversion_result = \ |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4952
diff
changeset
|
169 Fcons (list3 (build_cistring(str3), Qnil, \ |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
170 build_ascstring("octet comparison failed")), \ |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
171 conversion_result) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
172 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
173 #define DFC_RESULT_PASS(str1) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
174 else \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
175 conversion_result = \ |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4952
diff
changeset
|
176 Fcons (list3 (build_cistring(str1), Qt, Qnil), \ |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
177 conversion_result) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
178 |
398 | 179 #ifdef MULE |
180 ptr = NULL, len = rand(); | |
181 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)), | |
182 ALLOCA, (ptr, len), | |
771 | 183 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
184 DFC_CHECK_DATA_NUL (ptr, len, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
185 "Latin-2 DATA, ALLOCA, Latin 2/NUL"); |
398 | 186 |
187 ptr = NULL, len = rand(); | |
188 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin2, | |
189 ALLOCA, (ptr, len), | |
771 | 190 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
191 DFC_CHECK_DATA (ptr, len, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
192 "Latin-2 Lisp string, ALLOCA, Latin 2"); |
398 | 193 |
194 ptr = NULL, len = rand(); | |
195 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
196 ALLOCA, (ptr, len), | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
197 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
198 DFC_CHECK_DATA (ptr, len, ext_latin12, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
199 "Latin-1 Lisp string, ALLOCA, Latin 2/ESC"); |
398 | 200 |
201 ptr = NULL, len = rand(); | |
202 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1), | |
203 MALLOC, (ptr, len), | |
771 | 204 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
205 DFC_CHECK_DATA (ptr, len, ext_latin, "Latin-2 DATA, MALLOC, Latin-2"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
206 xfree (ptr); |
398 | 207 |
208 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1), | |
209 LISP_OPAQUE, opaque, | |
771 | 210 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
211 DFC_CHECK_DATA (XOPAQUE_DATA (opaque), XOPAQUE_SIZE (opaque), ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
212 "Latin-2 DATA, Lisp opaque, Latin-2"); |
398 | 213 |
214 ptr = NULL, len = rand(); | |
215 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
216 ALLOCA, (ptr, len), | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
217 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
218 DFC_CHECK_DATA (ptr, len, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
219 "Latin-2/ESC, ALLOCA, Latin-1 DATA"); |
398 | 220 |
221 ptr = NULL, len = rand(); | |
222 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
223 MALLOC, (ptr, len), | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
224 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
225 DFC_CHECK_DATA (ptr, len, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
226 "Latin-2/ESC, MALLOC, Latin-1 DATA"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
227 xfree (ptr); |
398 | 228 |
229 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
230 LISP_STRING, string, | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
231 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
232 DFC_CHECK_DATA (XSTRING_DATA (string), XSTRING_LENGTH (string), int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
233 "Latin-2/ESC, Lisp string, Latin-2"); |
398 | 234 |
235 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin, | |
236 LISP_STRING, string, | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
237 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
238 DFC_CHECK_DATA (XSTRING_DATA (string), XSTRING_LENGTH (string), int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
239 "Lisp opaque, Lisp string, Latin-2/ESC"); |
398 | 240 |
241 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin, | |
242 LISP_STRING, string, | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
243 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
244 DFC_CHECK_DATA_NUL (XSTRING_DATA (string), XSTRING_LENGTH (string), int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
245 "Lisp opaque, Lisp string, Latin-2/ESC/NUL"); |
398 | 246 |
247 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin, | |
248 LISP_BUFFER, Fcurrent_buffer(), | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
249 intern ("iso-latin-2-with-esc")); |
398 | 250 DFC_CHECK_DATA_NUL (BUF_BYTE_ADDRESS (current_buffer, BUF_PT (current_buffer)), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
251 sizeof (int_latin2), int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
252 "Lisp opaque, Lisp buffer, Latin-2/ESC/NUL"); |
398 | 253 |
254 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin, | |
255 LISP_BUFFER, Fcurrent_buffer(), | |
256 intern ("iso-8859-1")); | |
257 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
258 sizeof (int_latin1) - 1, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
259 "Lisp opaque, Lisp buffer, Latin-1"); |
398 | 260 |
261 TO_INTERNAL_FORMAT (DATA, (ext_latin12, sizeof (ext_latin12) - 1), | |
262 ALLOCA, (ptr, len), | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
263 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
264 DFC_CHECK_DATA (ptr, len, int_latin1, "DATA, ALLOCA, Latin-1"); |
398 | 265 |
266 #endif /* MULE */ | |
267 | |
268 ptr = NULL, len = rand(); | |
269 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
270 ALLOCA, (ptr, len), | |
271 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
272 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
273 "Latin-1 DATA, ALLOCA, binary"); |
398 | 274 |
275 ptr = NULL, len = rand(); | |
276 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1)), | |
277 ALLOCA, (ptr, len), | |
278 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
279 DFC_CHECK_DATA_COND_MULE_NUL (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
280 "Latin-1 DATA, ALLOCA, binary/NUL"); |
398 | 281 |
282 ptr = NULL, len = rand(); | |
283 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1), | |
284 ALLOCA, (ptr, len), | |
771 | 285 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
286 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_tilde, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
287 "Latin-2 DATA, ALLOCA, binary"); |
398 | 288 |
289 ptr = NULL, len = rand(); | |
290 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
291 ALLOCA, (ptr, len), | |
292 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
293 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
294 "Latin-1 DATA, ALLOCA, Latin-1"); |
398 | 295 |
296 | |
297 ptr = NULL, len = rand(); | |
298 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
299 ALLOCA, (ptr, len), | |
300 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
301 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
302 "Latin-1 Lisp string, ALLOCA, binary"); |
398 | 303 |
304 ptr = NULL, len = rand(); | |
305 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
306 ALLOCA, (ptr, len), | |
771 | 307 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
308 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
309 "Latin-1 Lisp string, ALLOCA, binary"); |
398 | 310 |
311 ptr = NULL, len = rand(); | |
312 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
313 ALLOCA, (ptr, len), | |
314 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
315 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
316 "Latin-1 Lisp string, ALLOCA, Latin-1"); |
398 | 317 |
318 ptr = NULL, len = rand(); | |
319 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
320 MALLOC, (ptr, len), | |
321 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
322 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
323 "Latin-1 DATA, MALLOC, binary"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
324 xfree (ptr); |
398 | 325 |
326 ptr = NULL, len = rand(); | |
327 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)), | |
328 MALLOC, (ptr, len), | |
771 | 329 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
330 DFC_CHECK_DATA_COND_MULE_NUL (ptr, len, ext_tilde, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
331 "Latin-2 DATA, MALLOC, binary/NUL"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
332 xfree (ptr); |
398 | 333 |
334 ptr = NULL, len = rand(); | |
335 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
336 MALLOC, (ptr, len), | |
337 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
338 DFC_CHECK_DATA_COND_MULE (ptr, len, ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
339 "Latin-1 DATA, MALLOC, Latin-1"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
340 xfree (ptr); |
398 | 341 |
342 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
343 LISP_OPAQUE, opaque, | |
344 Qbinary); | |
345 DFC_CHECK_DATA_COND_MULE (XOPAQUE_DATA (opaque), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
346 XOPAQUE_SIZE (opaque), ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
347 "Latin-1 DATA, Lisp opaque, binary"); |
398 | 348 |
349 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)), | |
350 LISP_OPAQUE, opaque, | |
771 | 351 Qbinary); |
398 | 352 DFC_CHECK_DATA_COND_MULE_NUL (XOPAQUE_DATA (opaque), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
353 XOPAQUE_SIZE (opaque), ext_tilde, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
354 "Latin-2 DATA, Lisp opaque, binary"); |
398 | 355 |
356 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
357 LISP_OPAQUE, opaque, | |
358 intern ("iso-8859-1")); | |
359 DFC_CHECK_DATA_COND_MULE (XOPAQUE_DATA (opaque), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
360 XOPAQUE_SIZE (opaque), ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
361 "Latin-1 DATA, Lisp opaque, Latin-1"); |
398 | 362 |
363 ptr = NULL, len = rand(); | |
364 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
365 ALLOCA, (ptr, len), | |
366 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
367 DFC_CHECK_DATA_COND_MULE (ptr, len, int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
368 "Latin-1 DATA, ALLOCA, binary"); |
398 | 369 |
370 ptr = NULL, len = rand(); | |
371 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)), | |
372 ALLOCA, (ptr, len), | |
373 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
374 DFC_CHECK_DATA_COND_MULE_NUL (ptr, len, int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
375 "Latin-1 DATA, ALLOCA, Latin-1"); |
398 | 376 |
377 ptr = NULL, len = rand(); | |
378 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)), | |
379 MALLOC, (ptr, len), | |
380 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
381 DFC_CHECK_DATA_COND_MULE_NUL (ptr, len, int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
382 "Latin-1 DATA, MALLOC, Latin-1"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
383 xfree (ptr); |
398 | 384 |
385 ptr = NULL, len = rand(); | |
386 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)), | |
387 MALLOC, (ptr, len), | |
388 Qnil); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
389 DFC_CHECK_DATA_COND_MULE_NUL (ptr, len, int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
390 "Latin-1 DATA, MALLOC, nil"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
391 xfree (ptr); |
398 | 392 |
393 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
394 LISP_STRING, string, | |
395 intern ("iso-8859-1")); | |
396 DFC_CHECK_DATA_COND_MULE (XSTRING_DATA (string), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
397 XSTRING_LENGTH (string), int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
398 "Latin-1 DATA, Lisp stirng, Latin-1"); |
398 | 399 |
400 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin, | |
401 LISP_STRING, string, | |
402 intern ("iso-8859-1")); | |
403 DFC_CHECK_DATA_COND_MULE (XSTRING_DATA (string), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
404 XSTRING_LENGTH (string), int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
405 "Latin-1 Lisp opaque, Lisp string, Latin-1"); |
398 | 406 |
407 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin, | |
408 LISP_STRING, string, | |
409 intern ("iso-8859-1")); | |
410 DFC_CHECK_DATA_COND_MULE_NUL (XSTRING_DATA (string), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
411 XSTRING_LENGTH (string), int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
412 "Latin-1 Lisp opaque, Lisp string, Latin-1/NUL"); |
398 | 413 |
3417 | 414 /* This next group used to use the COND_EOL macros, but with the new Mule, |
415 they all specify an EOL convention, and all XEmacsen can grok them. */ | |
398 | 416 ptr = NULL, len = rand(); |
417 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)), | |
418 MALLOC, (ptr, len), | |
771 | 419 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
420 DFC_CHECK_DATA_NUL (ptr, len, ext_unix, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
421 "ASCII DATA, MALLOC, binary/LF/NUL"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
422 xfree (ptr); |
398 | 423 |
424 ptr = NULL, len = rand(); | |
425 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1), | |
426 LISP_OPAQUE, opaque, | |
427 intern ("raw-text-mac")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
428 DFC_CHECK_DATA (XOPAQUE_DATA (opaque), XOPAQUE_SIZE (opaque), ext_mac, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
429 "ASCII DATA, Lisp opaque, binary/CR"); |
398 | 430 |
431 ptr = NULL, len = rand(); | |
432 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo, | |
433 ALLOCA, (ptr, len), | |
434 intern ("raw-text-dos")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
435 DFC_CHECK_DATA (ptr, len, ext_dos, "ASCII Lisp string, ALLOCA, binary/CRLF"); |
398 | 436 |
437 ptr = NULL, len = rand(); | |
438 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1), | |
439 ALLOCA, (ptr, len), | |
440 intern ("raw-text-unix")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
441 DFC_CHECK_DATA (ptr, len, ext_unix, "ASCII DATA, ALLOCA, binary/LF"); |
398 | 442 |
443 ptr = NULL, len = rand(); | |
444 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo, | |
445 MALLOC, (ptr, len), | |
446 intern ("no-conversion-mac")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
447 DFC_CHECK_DATA (ptr, len, ext_mac, "ASCII Lisp string, MALLOC, binary/CR"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
448 xfree (ptr); |
398 | 449 |
450 ptr = NULL, len = rand(); | |
451 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1), | |
452 ALLOCA, (ptr, len), | |
771 | 453 intern ("no-conversion-dos")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
454 DFC_CHECK_DATA (ptr, len, ext_dos, "ASCII DATA, ALLOCA, binary/CRLF"); |
398 | 455 |
456 ptr = NULL, len = rand(); | |
457 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)), | |
458 ALLOCA, (ptr, len), | |
459 intern ("no-conversion-unix")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
460 DFC_CHECK_DATA_NUL (ptr, len, ext_unix, "ASCII DATA, ALLOCA, binary/LF/NUL"); |
3417 | 461 |
462 /* Oh, Lawdy, Lawdy, Lawdy, this done broke mah heart! | |
463 | |
464 I tried using the technique | |
465 | |
466 Fget_coding_system (call2 | |
467 (intern ("coding-system-change-eol-conversion"), | |
468 intern ("undecided"), $EOL_TYPE)); | |
469 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = $EOL_DETECT_TYPE; | |
470 | |
471 with EOL_TYPE = Qlf (for no-detect) and Qnil (for auto-detect), | |
472 and with EOL_DETECT_TYPE = EOL_LF and EOL_AUTODETECT | |
473 respectively, but this doesn't seem to work on the `undecided' | |
474 coding system. The coding-system-eol-type attribute on the | |
475 coding system itself needs to be changed, too. I'm not sure at | |
476 the moment how `set-eol-detection' works its magic, but the code | |
477 below gives correct test results without default EOL detection, | |
478 with default EOL detection, and with Mule. Ship it! | |
479 | |
480 Mule. You'll envy the dead. | |
481 */ | |
398 | 482 |
3417 | 483 { |
484 /* Check eol autodetection doesn't happen when disabled -- cheat. */ | |
485 Lisp_Object cs_to_use = Fget_coding_system (intern ("undecided-unix")); | |
486 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, | |
487 LISP_BUFFER, Fcurrent_buffer(), | |
488 cs_to_use); | |
489 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
490 sizeof (ext_dos) - 1, ext_dos, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
491 "DOS Lisp opaque, Lisp buffer, undecided-unix"); |
3417 | 492 |
493 /* Check eol autodetection works when enabled -- honest. */ | |
494 cs_to_use = | |
495 Fget_coding_system (call2 | |
496 (intern ("coding-system-change-eol-conversion"), | |
497 intern ("undecided"), Qnil)); | |
498 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = EOL_AUTODETECT; | |
499 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, | |
500 LISP_BUFFER, Fcurrent_buffer(), | |
501 cs_to_use); | |
502 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
503 sizeof (int_foo) - 1, int_foo, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
504 "DOS Lisp opaque, Lisp buffer, undecided"); |
3417 | 505 /* reset to default */ |
506 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = | |
507 autodetect_eol_p ? EOL_AUTODETECT : EOL_LF; | |
508 } | |
509 | |
510 /* Does eol-detection-enabled-p reflect the actual state of affairs? | |
511 This probably could be tested in Lisp somehow. Should it? */ | |
398 | 512 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, |
513 LISP_BUFFER, Fcurrent_buffer(), | |
514 intern ("undecided")); | |
3417 | 515 if (autodetect_eol_p) |
516 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, | |
517 BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
518 sizeof (int_foo) - 1, int_foo, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
519 "DOS Lisp opaque, Lisp buffer, autodetect eol"); |
3417 | 520 else |
521 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, | |
522 BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
523 sizeof (ext_dos) - 1, ext_dos, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
524 "DOS Lisp opaque, Lisp buffer, no autodetect eol"); |
398 | 525 |
526 TO_INTERNAL_FORMAT (DATA, (ext_mac, sizeof (ext_mac) - 1), | |
527 LISP_STRING, string, | |
528 intern ("iso-8859-1")); | |
529 DFC_CHECK_DATA_COND_EOL (XSTRING_DATA (string), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
530 XSTRING_LENGTH (string), int_foo, ext_mac, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
531 "Mac DATA, Lisp string, Latin-1/EOL"); |
398 | 532 { |
533 Lisp_Object stream = | |
534 make_fixed_buffer_input_stream (ext_dos, sizeof (ext_dos) - 1); | |
535 TO_INTERNAL_FORMAT (LISP_LSTREAM, stream, | |
536 LISP_STRING, string, | |
537 intern ("iso-8859-1")); | |
538 DFC_CHECK_DATA_COND_EOL (XSTRING_DATA (string), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
539 XSTRING_LENGTH (string), int_foo, ext_dos, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
540 "DOS lstream, Lisp string, Latin-1/EOL"); |
398 | 541 } |
542 | |
543 TO_INTERNAL_FORMAT (DATA, (ext_unix, sizeof (ext_unix) - 1), | |
544 LISP_STRING, string, | |
545 intern ("no-conversion")); | |
546 DFC_CHECK_DATA_COND_EOL (XSTRING_DATA (string), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
547 XSTRING_LENGTH (string), int_foo, ext_unix, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
548 "Unix DATA, Lisp string, no-conversion"); |
398 | 549 |
550 ptr = NULL, len = rand(); | |
551 TO_EXTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, | |
552 ALLOCA, (ptr, len), | |
553 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
554 DFC_CHECK_DATA (ptr, len, ext_dos, "DOS Lisp opaque, ALLOCA, binary"); |
398 | 555 |
5156
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
556 NUNGCPRO; |
6bff4f219697
fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents:
5037
diff
changeset
|
557 UNGCPRO; |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
558 return conversion_result; |
398 | 559 } |
560 | |
561 | |
489 | 562 /* Hash Table testing */ |
563 | |
564 typedef struct | |
565 { | |
566 Lisp_Object hash_table; | |
567 EMACS_INT sum; | |
568 } test_hash_tables_data; | |
569 | |
570 | |
571 static int | |
2286 | 572 test_hash_tables_mapper (Lisp_Object UNUSED (key), Lisp_Object value, |
489 | 573 void *extra_arg) |
574 { | |
575 test_hash_tables_data *p = (test_hash_tables_data *) extra_arg; | |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
576 p->sum += XFIXNUM (value); |
489 | 577 return 0; |
578 } | |
579 | |
580 static int | |
581 test_hash_tables_modifying_mapper (Lisp_Object key, Lisp_Object value, | |
582 void *extra_arg) | |
583 { | |
584 test_hash_tables_data *p = (test_hash_tables_data *) extra_arg; | |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
585 Fputhash (make_fixnum (- XFIXNUM (key)), |
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
586 make_fixnum (2 * XFIXNUM (value)), |
489 | 587 p->hash_table); |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
588 p->sum += XFIXNUM (value); |
489 | 589 return 0; |
590 } | |
591 | |
592 static int | |
2286 | 593 test_hash_tables_predicate (Lisp_Object key, |
594 Lisp_Object UNUSED (value), | |
595 void *UNUSED (extra_arg)) | |
489 | 596 { |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
597 return XFIXNUM (key) < 0; |
489 | 598 } |
599 | |
600 | |
601 DEFUN ("test-hash-tables", Ftest_hash_tables, 0, 0, "", /* | |
4752
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
602 Return list of results of testing C interface to hash tables. |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
603 For use by the automated test suite. See tests/automated/c-tests. |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
604 |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
605 Each element is a list (DESCRIPTION, STATUS, REASON). |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
606 DESCRIPTION is a string describing the test. |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
607 STATUS is a symbol, either t (pass) or nil (fail). |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
608 REASON is nil or a string describing the failure (not required). |
489 | 609 */ |
610 ()) | |
611 { | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
612 Lisp_Object hash_result = Qnil; |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
613 |
489 | 614 test_hash_tables_data data; |
615 data.hash_table = make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, | |
5191
71ee43b8a74d
Add #'equalp as a hash test by default; add #'define-hash-table-test, GNU API
Aidan Kehoe <kehoea@parhasard.net>
parents:
5156
diff
changeset
|
616 Qequal); |
489 | 617 |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
618 Fputhash (make_fixnum (1), make_fixnum (2), data.hash_table); |
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
619 Fputhash (make_fixnum (3), make_fixnum (4), data.hash_table); |
489 | 620 |
621 data.sum = 0; | |
622 elisp_maphash_unsafe (test_hash_tables_mapper, | |
623 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
624 hash_result = Fcons (list3 (build_ascstring ("simple mapper"), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
625 (data.sum == 2 + 4) ? Qt : Qnil, |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
626 build_ascstring ("sum != 2 + 4")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
627 hash_result); |
489 | 628 |
629 data.sum = 0; | |
630 elisp_maphash (test_hash_tables_modifying_mapper, | |
631 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
632 hash_result = Fcons (list3 (build_ascstring ("modifying mapper"), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
633 (data.sum == 2 + 4) ? Qt : Qnil, |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
634 build_ascstring ("sum != 2 + 4")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
635 hash_result); |
489 | 636 |
637 /* hash table now contains: (1, 2) (3, 4) (-1, 2*2) (-3, 2*4) */ | |
638 | |
639 data.sum = 0; | |
640 elisp_maphash_unsafe (test_hash_tables_mapper, | |
641 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
642 hash_result = Fcons (list3 (build_ascstring ("simple mapper"), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
643 (data.sum == 3 * (2 + 4)) ? Qt : Qnil, |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
644 build_ascstring ("sum != 3 * (2 + 4)")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
645 hash_result); |
489 | 646 |
647 /* Remove entries with negative keys, added by modifying mapper */ | |
648 elisp_map_remhash (test_hash_tables_predicate, | |
649 data.hash_table, 0); | |
650 | |
651 data.sum = 0; | |
652 elisp_maphash_unsafe (test_hash_tables_mapper, | |
653 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
654 hash_result = Fcons (list3 (build_ascstring ("remove negatives mapper"), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
655 (data.sum == 2 + 4) ? Qt : Qnil, |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
656 build_ascstring ("sum != 2 + 4")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
657 hash_result); |
489 | 658 |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
659 return hash_result; |
489 | 660 } |
661 | |
5013 | 662 DEFUN ("test-store-void-in-lisp", Ftest_store_void_in_lisp, 0, 0, "", /* |
663 Test STORE_VOID_IN_LISP and its inverse GET_VOID_FROM_LISP. | |
664 Tests by internal assert(); only returns if it succeeds. | |
665 */ | |
666 ()) | |
667 { | |
668 struct foobar { int x; int y; short z; void *q; } baz; | |
669 | |
670 #define FROB(val) \ | |
671 do \ | |
672 { \ | |
673 void *pval = (void *) (val); \ | |
674 assert (GET_VOID_FROM_LISP (STORE_VOID_IN_LISP (pval)) == pval); \ | |
675 } \ | |
676 while (0) | |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
677 assert (FIXNUM_VALBITS >= 31); |
5013 | 678 FROB (&baz); |
679 FROB (&baz.x); | |
680 FROB (&baz.y); | |
681 FROB (&baz.z); | |
682 FROB (&baz.q); | |
683 FROB (0); | |
684 FROB (2); | |
685 FROB (&Vtest_function_list); | |
686 FROB (0x00000080); | |
687 FROB (0x00008080); | |
688 FROB (0x00808080); | |
689 FROB (0x80808080); | |
690 FROB (0xCAFEBABE); | |
691 FROB (0xFFFFFFFE); | |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
692 #if FIXNUM_VALBITS >= 63 |
5013 | 693 FROB (0x0000808080808080); |
694 FROB (0x8080808080808080); | |
695 FROB (0XDEADBEEFCAFEBABE); | |
696 FROB (0XFFFFFFFFFFFFFFFE); | |
5581
56144c8593a8
Mechanically change INT to FIXNUM in our sources.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
697 #endif /* FIXNUM_VALBITS >= 63 */ |
5013 | 698 |
5037 | 699 return list1 (list3 (build_ascstring ("STORE_VOID_IN_LISP"), Qt, Qnil)); |
5013 | 700 } |
701 | |
489 | 702 |
398 | 703 |
3263 | 704 #ifdef NEW_GC |
2720 | 705 #define TESTS_DEFSUBR(Fname) do { \ |
706 DEFSUBR_MC_ALLOC (Fname); \ | |
707 defsubr (S##Fname); \ | |
708 Vtest_function_list = \ | |
709 Fcons (intern (subr_name (S##Fname)), \ | |
710 Vtest_function_list); \ | |
711 } while (0) | |
3263 | 712 #else /* not NEW_GC */ |
398 | 713 #define TESTS_DEFSUBR(Fname) do { \ |
714 DEFSUBR (Fname); \ | |
715 Vtest_function_list = \ | |
716 Fcons (intern (subr_name (&S##Fname)), \ | |
717 Vtest_function_list); \ | |
718 } while (0) | |
3263 | 719 #endif /* not NEW_GC */ |
398 | 720 |
721 void | |
722 syms_of_tests (void) | |
723 { | |
724 Vtest_function_list = Qnil; | |
725 | |
726 TESTS_DEFSUBR (Ftest_data_format_conversion); | |
489 | 727 TESTS_DEFSUBR (Ftest_hash_tables); |
5013 | 728 TESTS_DEFSUBR (Ftest_store_void_in_lisp); |
398 | 729 /* Add other test functions here with TESTS_DEFSUBR */ |
730 } | |
731 | |
732 void | |
733 vars_of_tests (void) | |
734 { | |
735 DEFVAR_LISP ("test-function-list", &Vtest_function_list /* | |
736 List of all test functions defined in tests.c. | |
737 For use by the automated test suite. See tests/automated/c-tests. | |
738 */ ); | |
739 } | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
740 |