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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
1 /* C support for testing XEmacs - see tests/automated/c-tests.el
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
2 Copyright (C) 2000 Martin Buchholz
5013
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
3 Copyright (C) 2001, 2002, 2010 Ben Wing.
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
4 Copyright (C) 2006 The Free Software Foundation, Inc.
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
5
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
6 This file is part of XEmacs.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
12
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
16 for more details.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
17
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
20
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
21 /* Author: Martin Buchholz
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
22
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
23 This file provides support for running tests for XEmacs that cannot
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
24 be written entirely in Lisp. These tests are run automatically via
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
25 tests/automated/c-tests.el, or can be run by hand using M-x */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
26
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
27
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
28 #include <config.h>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
29 #include "lisp.h"
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
30 #include "buffer.h"
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
31 #include "lstream.h"
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
32 #include "elhash.h"
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
33 #include "opaque.h"
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
34 #include "file-coding.h" /* XCODING_SYSTEM_EOL_TYPE and its values */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
35
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
36 static Lisp_Object Vtest_function_list;
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
37
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
46 */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
47 ())
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
48 {
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 647
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
51
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 826
diff changeset
52 Ibyte int_foo[] = "\n\nfoo\nbar";
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
53 Extbyte ext_unix[]= "\n\nfoo\nbar";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
54
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
55 Extbyte ext_dos[] = "\r\n\r\nfoo\r\nbar";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
56 Extbyte ext_mac[] = "\r\rfoo\rbar";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
57 Lisp_Object opaque_dos = make_opaque (ext_dos, sizeof (ext_dos) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
58 Lisp_Object string_foo = make_string (int_foo, sizeof (int_foo) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
59
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
60 Extbyte ext_latin[] = "f\372b\343\340";
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 826
diff changeset
61 Ibyte int_latin1[] = "f\200\372b\200\343\200\340";
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 826
diff changeset
62 Ibyte int_latin2[] = "f\201\372b\201\343\201\340";
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
63 #ifdef MULE
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
64 Extbyte ext_latin12[]= "f\033-A\372b\343\340\033-B";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
65 Extbyte ext_tilde[] = "f~b~~";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
66 Lisp_Object string_latin2 = make_string (int_latin2, sizeof (int_latin2) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
67 #endif
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
68 Lisp_Object opaque_latin = make_opaque (ext_latin, sizeof (ext_latin) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
69 Lisp_Object opaque0_latin = make_opaque (ext_latin, sizeof (ext_latin));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
70 Lisp_Object string_latin1 = make_string (int_latin1, sizeof (int_latin1) - 1);
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
71 int autodetect_eol_p =
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
87
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
88 /* Check for expected strings before and after conversion.
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
93 #ifdef MULE
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
94 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
99 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
104 #else
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
105 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
110 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
115 #endif
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
116
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
117 /* These now only apply to base coding systems, and
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
136 } while (0)
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
137
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
144 } while (0)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
145
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
152 } while (0)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
179 #ifdef MULE
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
180 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
181 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
182 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
186
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
187 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
188 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin2,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
189 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
193
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
194 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
195 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
200
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
201 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
202 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
203 MALLOC, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
207
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
208 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
209 LISP_OPAQUE, opaque,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
213
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
214 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
215 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
220
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
221 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
222 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
228
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
229 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
234
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
235 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
240
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
241 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
246
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
247 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
253
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
254 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
255 LISP_BUFFER, Fcurrent_buffer(),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
256 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
260
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
261 TO_INTERNAL_FORMAT (DATA, (ext_latin12, sizeof (ext_latin12) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
265
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
266 #endif /* MULE */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
267
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
268 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
269 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
270 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
274
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
275 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
276 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
277 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
281
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
282 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
283 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
284 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
288
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
289 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
290 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
291 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
295
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
296
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
297 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
298 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
299 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
303
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
304 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
305 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
306 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
310
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
311 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
312 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
313 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
317
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
318 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
319 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
320 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
325
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
326 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
327 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
328 MALLOC, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
333
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
334 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
335 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
336 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
341
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
342 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
343 LISP_OPAQUE, opaque,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
344 Qbinary);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
348
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
349 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
350 LISP_OPAQUE, opaque,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
351 Qbinary);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
355
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
356 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
357 LISP_OPAQUE, opaque,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
358 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
362
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
363 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
364 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
365 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
369
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
370 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
371 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
372 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
376
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
377 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
378 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
379 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
384
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
385 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
386 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
387 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
392
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
393 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
394 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
395 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
399
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
400 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
401 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
402 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
406
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
407 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
408 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
409 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
413
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
414 /* This next group used to use the COND_EOL macros, but with the new Mule,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
415 they all specify an EOL convention, and all XEmacsen can grok them. */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
416 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
417 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
418 MALLOC, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
423
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
424 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
425 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
426 LISP_OPAQUE, opaque,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
430
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
431 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
432 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
433 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
436
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
437 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
438 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
439 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
442
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
443 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
444 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
445 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
449
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
450 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
451 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
452 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
455
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
456 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
457 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
458 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
461
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
462 /* Oh, Lawdy, Lawdy, Lawdy, this done broke mah heart!
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
463
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
464 I tried using the technique
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
465
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
466 Fget_coding_system (call2
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
467 (intern ("coding-system-change-eol-conversion"),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
468 intern ("undecided"), $EOL_TYPE));
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
469 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = $EOL_DETECT_TYPE;
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
470
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
471 with EOL_TYPE = Qlf (for no-detect) and Qnil (for auto-detect),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
472 and with EOL_DETECT_TYPE = EOL_LF and EOL_AUTODETECT
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
473 respectively, but this doesn't seem to work on the `undecided'
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
474 coding system. The coding-system-eol-type attribute on the
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
475 coding system itself needs to be changed, too. I'm not sure at
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
476 the moment how `set-eol-detection' works its magic, but the code
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
477 below gives correct test results without default EOL detection,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
478 with default EOL detection, and with Mule. Ship it!
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
479
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
480 Mule. You'll envy the dead.
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
481 */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
482
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
483 {
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
484 /* Check eol autodetection doesn't happen when disabled -- cheat. */
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
485 Lisp_Object cs_to_use = Fget_coding_system (intern ("undecided-unix"));
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
486 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
487 LISP_BUFFER, Fcurrent_buffer(),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
488 cs_to_use);
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
492
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
493 /* Check eol autodetection works when enabled -- honest. */
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
494 cs_to_use =
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
495 Fget_coding_system (call2
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
496 (intern ("coding-system-change-eol-conversion"),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
497 intern ("undecided"), Qnil));
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
498 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = EOL_AUTODETECT;
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
499 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
500 LISP_BUFFER, Fcurrent_buffer(),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
501 cs_to_use);
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
505 /* reset to default */
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
506 XCODING_SYSTEM_EOL_TYPE (cs_to_use) =
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
507 autodetect_eol_p ? EOL_AUTODETECT : EOL_LF;
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
508 }
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
509
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
510 /* Does eol-detection-enabled-p reflect the actual state of affairs?
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
511 This probably could be tested in Lisp somehow. Should it? */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
512 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
513 LISP_BUFFER, Fcurrent_buffer(),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
514 intern ("undecided"));
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
515 if (autodetect_eol_p)
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
516 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
520 else
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
521 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
525
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
526 TO_INTERNAL_FORMAT (DATA, (ext_mac, sizeof (ext_mac) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
527 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
528 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
532 {
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
533 Lisp_Object stream =
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
534 make_fixed_buffer_input_stream (ext_dos, sizeof (ext_dos) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
535 TO_INTERNAL_FORMAT (LISP_LSTREAM, stream,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
536 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
537 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
541 }
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
542
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
543 TO_INTERNAL_FORMAT (DATA, (ext_unix, sizeof (ext_unix) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
544 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
545 intern ("no-conversion"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
549
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
550 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
551 TO_EXTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
552 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
559 }
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
560
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
561
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
562 /* Hash Table testing */
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
563
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
564 typedef struct
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
565 {
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
566 Lisp_Object hash_table;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
567 EMACS_INT sum;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
568 } test_hash_tables_data;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
569
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
570
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
571 static int
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
572 test_hash_tables_mapper (Lisp_Object UNUSED (key), Lisp_Object value,
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
573 void *extra_arg)
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
574 {
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
577 return 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
578 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
579
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
580 static int
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
581 test_hash_tables_modifying_mapper (Lisp_Object key, Lisp_Object value,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
582 void *extra_arg)
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
583 {
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
589 return 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
590 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
591
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
592 static int
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
593 test_hash_tables_predicate (Lisp_Object key,
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
594 Lisp_Object UNUSED (value),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
595 void *UNUSED (extra_arg))
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
598 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
599
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
600
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
609 */
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
610 ())
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
614 test_hash_tables_data data;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
620
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
621 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
622 elisp_maphash_unsafe (test_hash_tables_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
628
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
629 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
630 elisp_maphash (test_hash_tables_modifying_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
636
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
637 /* hash table now contains: (1, 2) (3, 4) (-1, 2*2) (-3, 2*4) */
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
638
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
639 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
640 elisp_maphash_unsafe (test_hash_tables_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
646
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
647 /* Remove entries with negative keys, added by modifying mapper */
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
648 elisp_map_remhash (test_hash_tables_predicate,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
649 data.hash_table, 0);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
650
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
651 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
652 elisp_maphash_unsafe (test_hash_tables_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
658
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
659 return hash_result;
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
660 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
661
5013
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
662 DEFUN ("test-store-void-in-lisp", Ftest_store_void_in_lisp, 0, 0, "", /*
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
663 Test STORE_VOID_IN_LISP and its inverse GET_VOID_FROM_LISP.
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
664 Tests by internal assert(); only returns if it succeeds.
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
665 */
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
666 ())
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
667 {
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
668 struct foobar { int x; int y; short z; void *q; } baz;
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
669
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
670 #define FROB(val) \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
671 do \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
672 { \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
673 void *pval = (void *) (val); \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
674 assert (GET_VOID_FROM_LISP (STORE_VOID_IN_LISP (pval)) == pval); \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
675 } \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
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
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
678 FROB (&baz);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
679 FROB (&baz.x);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
680 FROB (&baz.y);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
681 FROB (&baz.z);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
682 FROB (&baz.q);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
683 FROB (0);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
684 FROB (2);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
685 FROB (&Vtest_function_list);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
686 FROB (0x00000080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
687 FROB (0x00008080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
688 FROB (0x00808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
689 FROB (0x80808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
690 FROB (0xCAFEBABE);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
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
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
693 FROB (0x0000808080808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
694 FROB (0x8080808080808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
695 FROB (0XDEADBEEFCAFEBABE);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
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
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
698
5037
e70a73f9243d fix c-tests
Ben Wing <ben@xemacs.org>
parents: 5013
diff changeset
699 return list1 (list3 (build_ascstring ("STORE_VOID_IN_LISP"), Qt, Qnil));
5013
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
700 }
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
701
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
702
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
703
3263
d674024a8674 [xemacs-hg @ 2006-02-27 16:29:00 by crestani]
crestani
parents: 2720
diff changeset
704 #ifdef NEW_GC
2720
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
705 #define TESTS_DEFSUBR(Fname) do { \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
706 DEFSUBR_MC_ALLOC (Fname); \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
707 defsubr (S##Fname); \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
708 Vtest_function_list = \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
709 Fcons (intern (subr_name (S##Fname)), \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
710 Vtest_function_list); \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
711 } while (0)
3263
d674024a8674 [xemacs-hg @ 2006-02-27 16:29:00 by crestani]
crestani
parents: 2720
diff changeset
712 #else /* not NEW_GC */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
713 #define TESTS_DEFSUBR(Fname) do { \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
714 DEFSUBR (Fname); \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
715 Vtest_function_list = \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
716 Fcons (intern (subr_name (&S##Fname)), \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
717 Vtest_function_list); \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
718 } while (0)
3263
d674024a8674 [xemacs-hg @ 2006-02-27 16:29:00 by crestani]
crestani
parents: 2720
diff changeset
719 #endif /* not NEW_GC */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
720
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
721 void
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
722 syms_of_tests (void)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
723 {
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
724 Vtest_function_list = Qnil;
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
725
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
726 TESTS_DEFSUBR (Ftest_data_format_conversion);
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
727 TESTS_DEFSUBR (Ftest_hash_tables);
5013
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
728 TESTS_DEFSUBR (Ftest_store_void_in_lisp);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
729 /* Add other test functions here with TESTS_DEFSUBR */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
730 }
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
731
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
732 void
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
733 vars_of_tests (void)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
734 {
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
735 DEFVAR_LISP ("test-function-list", &Vtest_function_list /*
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
736 List of all test functions defined in tests.c.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
737 For use by the automated test suite. See tests/automated/c-tests.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
738 */ );
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
739 }
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
740