annotate src/tests.c @ 5182:2e528066e2fc

Move #'sort*, #'fill, #'merge to C from cl-seq.el. lisp/ChangeLog addition: 2010-04-01 Aidan Kehoe <kehoea@parhasard.net> * cl-seq.el (fill, sort*, merge): Move these functions to fns.c. (stable-sort): Make this docstring reflect the argument names used in the #'sort* docstring. * cl-macs.el (stable-sort): Make #'stable-sort exactly equivalent to #'sort* in compiled code. * bytecomp.el (byte-compile-maybe-add-*): New macro, for functions like #'sort and #'mapcar that, to be strictly compatible, should only take two args, but in our implementation can take more, because they're aliases of #'sort* and #'mapcar*. (byte-compile-mapcar, byte-compile-sort, byte-compile-fillarray): Use this new macro. (map-into): Add a byte-compile method for #'map-into in passing. * apropos.el (apropos-print): Use #'sort* with a :key argument, now it's in C. * compat.el (extent-at): Ditto. * register.el (list-registers): Ditto. * package-ui.el (pui-list-packages): Ditto. * help.el (sorted-key-descriptions): Ditto. src/ChangeLog addition: 2010-03-31 Aidan Kehoe <kehoea@parhasard.net> * fns.c (STRING_DATA_TO_OBJECT_ARRAY) (BIT_VECTOR_TO_OBJECT_ARRAY, c_merge_predicate_key) (c_merge_predicate_nokey, list_merge, array_merge) (list_array_merge_into_list, list_list_merge_into_array) (list_array_merge_into_array, CHECK_KEY_ARGUMENT, Fmerge) (list_sort, array_sort, FsortX): Move #'sort*, #'fill, #'merge from cl-seq.el to C, extending the implementations of Fsort, Ffillarray, and merge() to do so. * keymap.c (keymap_submaps, map_keymap_sort_predicate) (describe_map_sort_predicate): Change the calling semantics of the C sort predicates to return a non-nil Lisp object if the first argument is less than the second, rather than C integers. * fontcolor-msw.c (sort_font_list_function): * fileio.c (build_annotations): * dired.c (Fdirectory_files): * abbrev.c (Finsert_abbrev_table_description): Call list_sort instead of Fsort, list_merge instead of merge() in these functions. man/ChangeLog addition: 2010-04-01 Aidan Kehoe <kehoea@parhasard.net> * lispref/lists.texi (Rearrangement): Update the documentation of #'sort here, now that it accepts any type of sequence and the KEY keyword argument. (Though this is probably now the wrong place for this function, given that.)
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 01 Apr 2010 20:22:50 +0100
parents 6bff4f219697
children 71ee43b8a74d
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
8 XEmacs is free software; you can redistribute it and/or modify it
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
11 later version.
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
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
19 along with XEmacs; see the file COPYING. If not, write to
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
21 Boston, MA 02111-1307, USA. */
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 /* Author: Martin Buchholz
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
24
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
25 This file provides support for running tests for XEmacs that cannot
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
26 be written entirely in Lisp. These tests are run automatically via
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
27 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
28
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
29
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
30 #include <config.h>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
31 #include "lisp.h"
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
32 #include "buffer.h"
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
33 #include "lstream.h"
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
34 #include "elhash.h"
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
35 #include "opaque.h"
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
36 #include "file-coding.h" /* XCODING_SYSTEM_EOL_TYPE and its values */
398
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 static Lisp_Object Vtest_function_list;
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
39
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
40 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
41 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
42 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
43
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
44 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
45 DESCRIPTION is a string describing the test.
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
46 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
47 REASON is nil or a string describing the failure (not required).
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
48 */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
49 ())
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
50 {
665
fdefd0186b75 [xemacs-hg @ 2001-09-20 06:28:42 by ben]
ben
parents: 647
diff changeset
51 void *ptr; Bytecount len;
5156
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
52 Lisp_Object string = Qnil, opaque = Qnil, conversion_result = Qnil;
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
53
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 826
diff changeset
54 Ibyte int_foo[] = "\n\nfoo\nbar";
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
55 Extbyte ext_unix[]= "\n\nfoo\nbar";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
56
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
57 Extbyte ext_dos[] = "\r\n\r\nfoo\r\nbar";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
58 Extbyte ext_mac[] = "\r\rfoo\rbar";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
59 Lisp_Object opaque_dos = make_opaque (ext_dos, sizeof (ext_dos) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
60 Lisp_Object string_foo = make_string (int_foo, sizeof (int_foo) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
61
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
62 Extbyte ext_latin[] = "f\372b\343\340";
867
804517e16990 [xemacs-hg @ 2002-06-05 09:54:39 by ben]
ben
parents: 826
diff changeset
63 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
64 Ibyte int_latin2[] = "f\201\372b\201\343\201\340";
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
65 #ifdef MULE
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
66 Extbyte ext_latin12[]= "f\033-A\372b\343\340\033-B";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
67 Extbyte ext_tilde[] = "f~b~~";
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
68 Lisp_Object string_latin2 = make_string (int_latin2, sizeof (int_latin2) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
69 #endif
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
70 Lisp_Object opaque_latin = make_opaque (ext_latin, sizeof (ext_latin) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
71 Lisp_Object opaque0_latin = make_opaque (ext_latin, sizeof (ext_latin));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
72 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
73 int autodetect_eol_p =
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
74 !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
75 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
76 struct gcpro ngcpro1, ngcpro2, ngcpro3;
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
77 #ifdef MULE
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
78 struct gcpro ngcpro4;
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
79 #endif
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
80
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
81 /* 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
82 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
83 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
84 #ifdef MULE
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
85 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
86 #else
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
87 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
88 #endif
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
89
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
90 /* 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
91 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
92
4d0f773d5e21 Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3417
diff changeset
93 /* #### 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
94
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
95 #ifdef MULE
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
96 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
97 constant_string_mule, \
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
98 constant_string_non_mule, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
99 description) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
100 DFC_CHECK_DATA (ptr, len, constant_string_mule, description)
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
101 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
102 constant_string_mule, \
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
103 constant_string_non_mule, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
104 description) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
105 DFC_CHECK_DATA_NUL (ptr, len, constant_string_mule, description)
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
106 #else
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
107 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
108 constant_string_mule, \
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
109 constant_string_non_mule, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
110 description) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
111 DFC_CHECK_DATA (ptr, len, constant_string_non_mule, description)
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
112 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
113 constant_string_mule, \
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
114 constant_string_non_mule, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
115 description) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
116 DFC_CHECK_DATA_NUL (ptr, len, constant_string_non_mule, description)
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
117 #endif
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
118
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
119 /* 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
120 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
121 #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
122 constant_string_eol, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
123 constant_string_non_eol, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
124 description) do { \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
125 if (autodetect_eol_p) \
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_eol, description); \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
127 else \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
128 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
129 } while (0)
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
130 #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
131 constant_string_eol, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
132 constant_string_non_eol, \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
133 description) do { \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
134 if (autodetect_eol_p) \
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_eol, description); \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
136 else \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
137 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
138 } while (0)
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
139
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
140 /* 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
141 #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
142 DFC_INITIALIZE (test); \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
143 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
144 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
145 DFC_RESULT_PASS (test); \
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
146 } while (0)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
147
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
148 /* 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
149 #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
150 DFC_INITIALIZE (test); \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
151 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
152 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
153 DFC_RESULT_PASS (test); \
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
154 } while (0)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
155
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
156 /* WARNING WARNING WARNING!
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
157 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
158 */
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_INITIALIZE(test_name) if (0)
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
161
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
162 #define DFC_CHECK_LENGTH(len1,len2,str1) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
163 else if ((len1) != (len2)) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
164 conversion_result = \
4953
304aebb79cd3 function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents: 4952
diff changeset
165 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
166 conversion_result)
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
167
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
168 #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
169 else if (memcmp (str1, str2, len1)) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
170 conversion_result = \
4953
304aebb79cd3 function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents: 4952
diff changeset
171 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
172 build_ascstring("octet comparison failed")), \
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
173 conversion_result)
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
174
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
175 #define DFC_RESULT_PASS(str1) \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
176 else \
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
177 conversion_result = \
4953
304aebb79cd3 function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents: 4952
diff changeset
178 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
179 conversion_result)
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
180
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
181 #ifdef MULE
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
182 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
183 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
184 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
185 intern ("iso-8859-2"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
186 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
187 "Latin-2 DATA, ALLOCA, Latin 2/NUL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
188
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
189 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
190 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin2,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
191 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
192 intern ("iso-8859-2"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
193 DFC_CHECK_DATA (ptr, len, ext_latin,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
194 "Latin-2 Lisp string, ALLOCA, Latin 2");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
195
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
196 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
197 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
198 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
199 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
200 DFC_CHECK_DATA (ptr, len, ext_latin12,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
201 "Latin-1 Lisp string, ALLOCA, Latin 2/ESC");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
202
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
203 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
204 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
205 MALLOC, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
206 intern ("iso-8859-2"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
207 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
208 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
209
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
210 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
211 LISP_OPAQUE, opaque,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
212 intern ("iso-8859-2"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
213 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
214 "Latin-2 DATA, Lisp opaque, Latin-2");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
215
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
216 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
217 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
218 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
219 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
220 DFC_CHECK_DATA (ptr, len, int_latin2,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
221 "Latin-2/ESC, ALLOCA, Latin-1 DATA");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
222
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
223 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
224 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
225 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
226 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
227 DFC_CHECK_DATA (ptr, len, int_latin2,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
228 "Latin-2/ESC, MALLOC, Latin-1 DATA");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
229 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
230
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
231 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
232 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
233 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
234 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
235 "Latin-2/ESC, Lisp string, Latin-2");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
236
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
237 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
238 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
239 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
240 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
241 "Lisp opaque, Lisp string, Latin-2/ESC");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
242
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
243 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
244 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
245 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
246 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
247 "Lisp opaque, Lisp string, Latin-2/ESC/NUL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
248
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
249 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
250 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
251 intern ("iso-latin-2-with-esc"));
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
252 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
253 sizeof (int_latin2), int_latin2,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
254 "Lisp opaque, Lisp buffer, Latin-2/ESC/NUL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
255
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
256 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
257 LISP_BUFFER, Fcurrent_buffer(),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
258 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
259 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
260 sizeof (int_latin1) - 1, int_latin1,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
261 "Lisp opaque, Lisp buffer, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
262
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
263 TO_INTERNAL_FORMAT (DATA, (ext_latin12, sizeof (ext_latin12) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
264 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
265 intern ("iso-latin-2-with-esc"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
266 DFC_CHECK_DATA (ptr, len, int_latin1, "DATA, ALLOCA, Latin-1");
398
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 #endif /* MULE */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
269
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
270 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
271 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
272 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
273 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
274 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
275 "Latin-1 DATA, ALLOCA, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
276
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
277 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
278 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
279 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
280 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
281 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
282 "Latin-1 DATA, ALLOCA, binary/NUL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
283
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
284 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
285 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
286 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
287 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
288 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
289 "Latin-2 DATA, ALLOCA, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
290
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
291 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
292 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
293 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
294 intern ("iso-8859-1"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
295 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
296 "Latin-1 DATA, ALLOCA, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
297
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
298
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
299 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
300 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
301 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
302 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
303 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
304 "Latin-1 Lisp string, ALLOCA, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
305
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
306 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
307 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
308 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
309 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
310 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
311 "Latin-1 Lisp string, ALLOCA, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
312
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
313 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
314 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
315 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
316 intern ("iso-8859-1"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
317 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
318 "Latin-1 Lisp string, ALLOCA, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
319
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
320 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
321 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
322 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
323 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
324 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
325 "Latin-1 DATA, MALLOC, binary");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
326 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
327
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
328 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
329 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
330 MALLOC, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
331 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
332 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
333 "Latin-2 DATA, MALLOC, binary/NUL");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
334 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
335
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
336 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
337 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
338 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
339 intern ("iso-8859-1"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
340 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
341 "Latin-1 DATA, MALLOC, Latin-1");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
342 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
343
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
344 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
345 LISP_OPAQUE, opaque,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
346 Qbinary);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
347 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
348 XOPAQUE_SIZE (opaque), ext_latin, int_latin1,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
349 "Latin-1 DATA, Lisp opaque, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
350
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
351 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
352 LISP_OPAQUE, opaque,
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
353 Qbinary);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
354 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
355 XOPAQUE_SIZE (opaque), ext_tilde, int_latin2,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
356 "Latin-2 DATA, Lisp opaque, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
357
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
358 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
359 LISP_OPAQUE, opaque,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
360 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
361 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
362 XOPAQUE_SIZE (opaque), ext_latin, int_latin1,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
363 "Latin-1 DATA, Lisp opaque, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
364
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
365 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
366 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
367 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
368 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
369 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
370 "Latin-1 DATA, ALLOCA, binary");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
371
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
372 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
373 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
374 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
375 intern ("iso-8859-1"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
376 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
377 "Latin-1 DATA, ALLOCA, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
378
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
379 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
380 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
381 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
382 intern ("iso-8859-1"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
383 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
384 "Latin-1 DATA, MALLOC, Latin-1");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
385 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
386
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
387 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
388 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
389 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
390 Qnil);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
391 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
392 "Latin-1 DATA, MALLOC, nil");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
393 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
394
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
395 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
396 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
397 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
398 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
399 XSTRING_LENGTH (string), int_latin1, ext_latin,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
400 "Latin-1 DATA, Lisp stirng, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
401
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
402 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
403 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
404 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
405 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
406 XSTRING_LENGTH (string), int_latin1, ext_latin,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
407 "Latin-1 Lisp opaque, Lisp string, Latin-1");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
408
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
409 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
410 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
411 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
412 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
413 XSTRING_LENGTH (string), int_latin1, ext_latin,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
414 "Latin-1 Lisp opaque, Lisp string, Latin-1/NUL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
415
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
416 /* 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
417 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
418 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
419 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
420 MALLOC, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
421 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
422 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
423 "ASCII DATA, MALLOC, binary/LF/NUL");
4976
16112448d484 Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents: 4953
diff changeset
424 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
425
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
426 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
427 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
428 LISP_OPAQUE, opaque,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
429 intern ("raw-text-mac"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
430 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
431 "ASCII DATA, Lisp opaque, binary/CR");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
432
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
433 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
434 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
435 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
436 intern ("raw-text-dos"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
437 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
438
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
439 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
440 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
441 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
442 intern ("raw-text-unix"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
443 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
444
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
445 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
446 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
447 MALLOC, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
448 intern ("no-conversion-mac"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
449 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
450 xfree (ptr);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
451
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
452 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
453 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
454 ALLOCA, (ptr, len),
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 665
diff changeset
455 intern ("no-conversion-dos"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
456 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
457
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
458 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
459 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
460 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
461 intern ("no-conversion-unix"));
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
462 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
463
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
464 /* 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
465
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
466 I tried using the technique
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
467
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
468 Fget_coding_system (call2
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
469 (intern ("coding-system-change-eol-conversion"),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
470 intern ("undecided"), $EOL_TYPE));
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
471 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
472
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
473 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
474 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
475 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
476 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
477 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
478 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
479 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
480 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
481
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
482 Mule. You'll envy the dead.
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
483 */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
484
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
485 {
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
486 /* 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
487 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
488 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
489 LISP_BUFFER, Fcurrent_buffer(),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
490 cs_to_use);
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
491 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
492 sizeof (ext_dos) - 1, ext_dos,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
493 "DOS Lisp opaque, Lisp buffer, undecided-unix");
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
494
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
495 /* Check eol autodetection works when enabled -- honest. */
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
496 cs_to_use =
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
497 Fget_coding_system (call2
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
498 (intern ("coding-system-change-eol-conversion"),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
499 intern ("undecided"), Qnil));
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
500 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
501 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
502 LISP_BUFFER, Fcurrent_buffer(),
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
503 cs_to_use);
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
504 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
505 sizeof (int_foo) - 1, int_foo,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
506 "DOS Lisp opaque, Lisp buffer, undecided");
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
507 /* reset to default */
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
508 XCODING_SYSTEM_EOL_TYPE (cs_to_use) =
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
509 autodetect_eol_p ? EOL_AUTODETECT : EOL_LF;
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
510 }
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
511
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
512 /* 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
513 This probably could be tested in Lisp somehow. Should it? */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
514 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
515 LISP_BUFFER, Fcurrent_buffer(),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
516 intern ("undecided"));
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
517 if (autodetect_eol_p)
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
518 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
519 BUF_PT (current_buffer)),
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
520 sizeof (int_foo) - 1, int_foo,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
521 "DOS Lisp opaque, Lisp buffer, autodetect eol");
3417
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
522 else
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
523 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer,
abdb33cc1f52 [xemacs-hg @ 2006-05-23 13:02:05 by stephent]
stephent
parents: 3263
diff changeset
524 BUF_PT (current_buffer)),
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
525 sizeof (ext_dos) - 1, ext_dos,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
526 "DOS Lisp opaque, Lisp buffer, no autodetect eol");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
527
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
528 TO_INTERNAL_FORMAT (DATA, (ext_mac, sizeof (ext_mac) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
529 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
530 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
531 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
532 XSTRING_LENGTH (string), int_foo, ext_mac,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
533 "Mac DATA, Lisp string, Latin-1/EOL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
534 {
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
535 Lisp_Object stream =
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
536 make_fixed_buffer_input_stream (ext_dos, sizeof (ext_dos) - 1);
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
537 TO_INTERNAL_FORMAT (LISP_LSTREAM, stream,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
538 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
539 intern ("iso-8859-1"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
540 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
541 XSTRING_LENGTH (string), int_foo, ext_dos,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
542 "DOS lstream, Lisp string, Latin-1/EOL");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
543 }
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
544
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
545 TO_INTERNAL_FORMAT (DATA, (ext_unix, sizeof (ext_unix) - 1),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
546 LISP_STRING, string,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
547 intern ("no-conversion"));
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
548 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
549 XSTRING_LENGTH (string), int_foo, ext_unix,
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
550 "Unix DATA, Lisp string, no-conversion");
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
551
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
552 ptr = NULL, len = rand();
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
553 TO_EXTERNAL_FORMAT (LISP_OPAQUE, opaque_dos,
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
554 ALLOCA, (ptr, len),
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
555 Qbinary);
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
556 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
557
5156
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
558 NUNGCPRO;
6bff4f219697 fix crash etc. in tests.c/c-tests.el
Ben Wing <ben@xemacs.org>
parents: 5037
diff changeset
559 UNGCPRO;
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
560 return conversion_result;
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
561 }
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
562
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
563
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
564 /* Hash Table testing */
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 typedef struct
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
567 {
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
568 Lisp_Object hash_table;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
569 EMACS_INT sum;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
570 } test_hash_tables_data;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
571
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
572
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
573 static int
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
574 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
575 void *extra_arg)
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
576 {
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
577 test_hash_tables_data *p = (test_hash_tables_data *) extra_arg;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
578 p->sum += XINT (value);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
579 return 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
580 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
581
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
582 static int
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
583 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
584 void *extra_arg)
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
585 {
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
586 test_hash_tables_data *p = (test_hash_tables_data *) extra_arg;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
587 Fputhash (make_int (- XINT (key)),
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
588 make_int (2 * XINT (value)),
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
589 p->hash_table);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
590 p->sum += XINT (value);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
591 return 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
592 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
593
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
594 static int
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
595 test_hash_tables_predicate (Lisp_Object key,
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
596 Lisp_Object UNUSED (value),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 1726
diff changeset
597 void *UNUSED (extra_arg))
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 return XINT (key) < 0;
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
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
602
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
603 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
604 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
605 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
606
b8afe0f9cbe3 Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4747
diff changeset
607 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
608 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
609 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
610 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
611 */
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
612 ())
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
613 {
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
614 Lisp_Object hash_result = Qnil;
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
615
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
616 test_hash_tables_data data;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
617 data.hash_table = make_lisp_hash_table (50, HASH_TABLE_NON_WEAK,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
618 HASH_TABLE_EQUAL);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
619
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
620 Fputhash (make_int (1), make_int (2), data.hash_table);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
621 Fputhash (make_int (3), make_int (4), data.hash_table);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
622
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
623 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
624 elisp_maphash_unsafe (test_hash_tables_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
625 data.hash_table, (void *) &data);
4952
19a72041c5ed Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents: 4752
diff changeset
626 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
627 (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
628 build_ascstring ("sum != 2 + 4")),
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
629 hash_result);
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
630
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
631 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
632 elisp_maphash (test_hash_tables_modifying_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
633 data.hash_table, (void *) &data);
4952
19a72041c5ed Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents: 4752
diff changeset
634 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
635 (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
636 build_ascstring ("sum != 2 + 4")),
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
637 hash_result);
489
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 /* 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
640
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
641 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
642 elisp_maphash_unsafe (test_hash_tables_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
643 data.hash_table, (void *) &data);
4952
19a72041c5ed Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents: 4752
diff changeset
644 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
645 (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
646 build_ascstring ("sum != 3 * (2 + 4)")),
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
647 hash_result);
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
648
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
649 /* 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
650 elisp_map_remhash (test_hash_tables_predicate,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
651 data.hash_table, 0);
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
652
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
653 data.sum = 0;
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
654 elisp_maphash_unsafe (test_hash_tables_mapper,
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
655 data.hash_table, (void *) &data);
4952
19a72041c5ed Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents: 4752
diff changeset
656 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
657 (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
658 build_ascstring ("sum != 2 + 4")),
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
659 hash_result);
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
660
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
661 return hash_result;
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
662 }
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
663
5013
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
664 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
665 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
666 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
667 */
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
668 ())
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 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
671
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
672 #define FROB(val) \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
673 do \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
674 { \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
675 void *pval = (void *) (val); \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
676 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
677 } \
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
678 while (0)
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
679 assert (INT_VALBITS >= 31);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
680 FROB (&baz);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
681 FROB (&baz.x);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
682 FROB (&baz.y);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
683 FROB (&baz.z);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
684 FROB (&baz.q);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
685 FROB (0);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
686 FROB (2);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
687 FROB (&Vtest_function_list);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
688 FROB (0x00000080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
689 FROB (0x00008080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
690 FROB (0x00808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
691 FROB (0x80808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
692 FROB (0xCAFEBABE);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
693 FROB (0xFFFFFFFE);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
694 #if INT_VALBITS >= 63
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
695 FROB (0x0000808080808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
696 FROB (0x8080808080808080);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
697 FROB (0XDEADBEEFCAFEBABE);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
698 FROB (0XFFFFFFFFFFFFFFFE);
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
699 #endif /* INT_VALBITS >= 63 */
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
700
5037
e70a73f9243d fix c-tests
Ben Wing <ben@xemacs.org>
parents: 5013
diff changeset
701 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
702 }
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
703
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
704
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
705
3263
d674024a8674 [xemacs-hg @ 2006-02-27 16:29:00 by crestani]
crestani
parents: 2720
diff changeset
706 #ifdef NEW_GC
2720
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
707 #define TESTS_DEFSUBR(Fname) do { \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
708 DEFSUBR_MC_ALLOC (Fname); \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
709 defsubr (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 Fcons (intern (subr_name (S##Fname)), \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
712 Vtest_function_list); \
6fa9919a9a0b [xemacs-hg @ 2005-04-08 23:10:01 by crestani]
crestani
parents: 2286
diff changeset
713 } while (0)
3263
d674024a8674 [xemacs-hg @ 2006-02-27 16:29:00 by crestani]
crestani
parents: 2720
diff changeset
714 #else /* not NEW_GC */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
715 #define TESTS_DEFSUBR(Fname) do { \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
716 DEFSUBR (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 Fcons (intern (subr_name (&S##Fname)), \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
719 Vtest_function_list); \
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
720 } while (0)
3263
d674024a8674 [xemacs-hg @ 2006-02-27 16:29:00 by crestani]
crestani
parents: 2720
diff changeset
721 #endif /* not NEW_GC */
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
722
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
723 void
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
724 syms_of_tests (void)
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 Vtest_function_list = Qnil;
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
727
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
728 TESTS_DEFSUBR (Ftest_data_format_conversion);
489
4a8bb4aa9740 [xemacs-hg @ 2001-04-30 08:49:24 by martinb]
martinb
parents: 398
diff changeset
729 TESTS_DEFSUBR (Ftest_hash_tables);
5013
ae48681c47fa changes to VOID_TO_LISP et al.
Ben Wing <ben@xemacs.org>
parents: 4976
diff changeset
730 TESTS_DEFSUBR (Ftest_store_void_in_lisp);
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
731 /* Add other test functions here with TESTS_DEFSUBR */
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
732 }
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
733
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
734 void
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
735 vars_of_tests (void)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
736 {
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
737 DEFVAR_LISP ("test-function-list", &Vtest_function_list /*
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
738 List of all test functions defined in tests.c.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
739 For use by the automated test suite. See tests/automated/c-tests.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
740 */ );
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
741 }
4747
294a86d29f99 Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4318
diff changeset
742