Mercurial > hg > xemacs-beta
annotate src/tests.c @ 4976:16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-02-04 Ben Wing <ben@xemacs.org>
* alloc.c (release_breathing_space):
* alloc.c (resize_string):
* alloc.c (sweep_lcrecords_1):
* alloc.c (SWEEP_FIXED_TYPE_BLOCK_1):
* alloc.c (ADDITIONAL_FREE_compiled_function):
* alloc.c (compact_string_chars):
* alloc.c (ADDITIONAL_FREE_string):
* alloc.c (sweep_strings):
* alloca.c (xemacs_c_alloca):
* alsaplay.c (alsa_play_sound_file):
* buffer.c (init_initial_directory):
* buffer.h:
* buffer.h (BUFFER_FREE):
* console-stream.c (stream_delete_console):
* console-tty.c (free_tty_console_struct):
* data.c (Fnumber_to_string):
* device-gtk.c (gtk_init_device):
* device-gtk.c (free_gtk_device_struct):
* device-gtk.c (gtk_delete_device):
* device-msw.c (mswindows_delete_device):
* device-msw.c (msprinter_delete_device):
* device-tty.c (free_tty_device_struct):
* device-tty.c (tty_delete_device):
* device-x.c (x_init_device):
* device-x.c (free_x_device_struct):
* device-x.c (x_delete_device):
* dialog-msw.c (handle_directory_dialog_box):
* dialog-x.c (dbox_descriptor_to_widget_value):
* dired-msw.c (Fmswindows_insert_directory):
* dired.c (free_user_cache):
* dired.c (user_name_completion_unwind):
* doc.c (unparesseuxify_doc_string):
* doc.c (Fsubstitute_command_keys):
* doprnt.c (emacs_doprnt_1):
* dumper.c (pdump_load_finish):
* dumper.c (pdump_file_free):
* dumper.c (pdump_file_unmap):
* dynarr.c:
* dynarr.c (Dynarr_free):
* editfns.c (uncache_home_directory):
* editfns.c (Fset_time_zone_rule):
* elhash.c:
* elhash.c (pdump_reorganize_hash_table):
* elhash.c (maphash_unwind):
* emacs.c (make_arg_list_1):
* emacs.c (free_argc_argv):
* emacs.c (sort_args):
* emacs.c (Frunning_temacs_p):
* emodules.c (attempt_module_delete):
* eval.c (free_pointer):
* event-Xt.c (unselect_filedesc):
* event-Xt.c (emacs_Xt_select_process):
* event-gtk.c (unselect_filedesc):
* event-gtk.c (dragndrop_data_received):
* event-msw.c (winsock_closer):
* event-msw.c (mswindows_dde_callback):
* event-msw.c (mswindows_wnd_proc):
* event-stream.c (finalize_command_builder):
* event-stream.c (free_command_builder):
* extents.c (free_gap_array):
* extents.c (free_extent_list):
* extents.c (free_soe):
* extents.c (extent_fragment_delete):
* extents.c (extent_priority_sort_function):
* file-coding.c (make_coding_system_1):
* file-coding.c (coding_finalizer):
* file-coding.c (set_coding_stream_coding_system):
* file-coding.c (chain_finalize_coding_stream_1):
* file-coding.c (chain_finalize):
* file-coding.c (free_detection_state):
* file-coding.c (coding_category_symbol_to_id):
* fileio.c:
* fileio.c (Ffile_name_directory):
* fileio.c (if):
* fileio.c (Ffile_symlink_p):
* filelock.c (FREE_LOCK_INFO):
* filelock.c (current_lock_owner):
* font-mgr.c (Ffc_name_unparse):
* font-mgr.c (Ffc_pattern_duplicate):
* frame-gtk.c (gtk_delete_frame):
* frame-msw.c (mswindows_delete_frame):
* frame-msw.c (msprinter_delete_frame):
* frame-x.c (x_cde_destroy_callback):
* frame-x.c (Fcde_start_drag_internal):
* frame-x.c (x_cde_transfer_callback):
* frame-x.c (x_delete_frame):
* frame.c (update_frame_title):
* frame.c (Fset_frame_pointer):
* gc.c (register_for_finalization):
* gccache-gtk.c (free_gc_cache):
* gccache-gtk.c (gc_cache_lookup):
* gccache-x.c (free_gc_cache):
* gccache-x.c (gc_cache_lookup):
* glyphs-eimage.c:
* glyphs-eimage.c (jpeg_instantiate_unwind):
* glyphs-eimage.c (gif_instantiate_unwind):
* glyphs-eimage.c (png_instantiate_unwind):
* glyphs-eimage.c (png_instantiate):
* glyphs-eimage.c (tiff_instantiate_unwind):
* glyphs-gtk.c (convert_EImage_to_GDKImage):
* glyphs-gtk.c (gtk_finalize_image_instance):
* glyphs-gtk.c (gtk_init_image_instance_from_eimage):
* glyphs-gtk.c (gtk_xpm_instantiate):
* glyphs-msw.c (convert_EImage_to_DIBitmap):
* glyphs-msw.c (mswindows_init_image_instance_from_eimage):
* glyphs-msw.c (mswindows_initialize_image_instance_mask):
* glyphs-msw.c (xpm_to_eimage):
* glyphs-msw.c (mswindows_xpm_instantiate):
* glyphs-msw.c (xbm_create_bitmap_from_data):
* glyphs-msw.c (mswindows_finalize_image_instance):
* glyphs-x.c (convert_EImage_to_XImage):
* glyphs-x.c (x_finalize_image_instance):
* glyphs-x.c (x_init_image_instance_from_eimage):
* glyphs-x.c (x_xpm_instantiate):
* gui-x.c (free_popup_widget_value_tree):
* hash.c (free_hash_table):
* hash.c (grow_hash_table):
* hash.c (pregrow_hash_table_if_necessary):
* imgproc.c (build_EImage_quantable):
* insdel.c (uninit_buffer_text):
* intl-win32.c (convert_multibyte_to_internal_malloc):
* intl.c:
* intl.c (Fset_current_locale):
* keymap.c:
* keymap.c (where_is_recursive_mapper):
* keymap.c (where_is_internal):
* lisp.h:
* lisp.h (xfree):
* lstream.c (Lstream_close):
* lstream.c (resizing_buffer_closer):
* mule-coding.c:
* mule-coding.c (iso2022_finalize_detection_state):
* nt.c:
* nt.c (mswindows_get_long_filename):
* nt.c (nt_get_resource):
* nt.c (init_mswindows_environment):
* nt.c (get_cached_volume_information):
* nt.c (mswindows_opendir):
* nt.c (mswindows_closedir):
* nt.c (mswindows_readdir):
* nt.c (mswindows_stat):
* nt.c (mswindows_getdcwd):
* nt.c (Fmswindows_long_file_name):
* ntplay.c (nt_play_sound_file):
* ntplay.c (play_sound_data_1):
* number-gmp.c (gmp_free):
* number-gmp.c (init_number_gmp):
* number-mp.c (bignum_to_string):
* number-mp.c (BIGNUM_TO_TYPE):
* number.c (bignum_print):
* number.c (bignum_convfree):
* number.c (ratio_print):
* number.c (bigfloat_print):
* number.c (bigfloat_finalize):
* objects-gtk.c (gtk_finalize_color_instance):
* objects-gtk.c (gtk_finalize_font_instance):
* objects-msw.c (mswindows_finalize_color_instance):
* objects-msw.c (mswindows_finalize_font_instance):
* objects-tty.c (tty_finalize_color_instance):
* objects-tty.c (tty_finalize_font_instance):
* objects-tty.c (tty_font_list):
* objects-x.c (x_finalize_color_instance):
* objects-x.c (x_finalize_font_instance):
* process.c:
* process.c (finalize_process):
* realpath.c:
* redisplay.c (add_propagation_runes):
* regex.c:
* regex.c (xfree):
* regex.c (REGEX_FREE_STACK):
* regex.c (FREE_STACK_RETURN):
* regex.c (regex_compile):
* regex.c (regexec):
* regex.c (regfree):
* scrollbar-gtk.c (gtk_free_scrollbar_instance):
* scrollbar-gtk.c (gtk_release_scrollbar_instance):
* scrollbar-msw.c (mswindows_free_scrollbar_instance):
* scrollbar-msw.c (unshow_that_mofo):
* scrollbar-x.c (x_free_scrollbar_instance):
* scrollbar-x.c (x_release_scrollbar_instance):
* select-gtk.c (emacs_gtk_selection_handle):
* select-msw.c (mswindows_own_selection):
* select-x.c:
* select-x.c (x_handle_selection_request):
* select-x.c (unexpect_property_change):
* select-x.c (x_handle_property_notify):
* select-x.c (receive_incremental_selection):
* select-x.c (x_get_window_property_as_lisp_data):
* select-x.c (Fx_get_cutbuffer_internal):
* specifier.c (finalize_specifier):
* syntax.c (uninit_buffer_syntax_cache):
* sysdep.c (qxe_allocating_getcwd):
* sysdep.c (qxe_lstat):
* sysdep.c (copy_in_passwd):
* sysdep.c (qxe_ctime):
* sysdep.c (closedir):
* sysdep.c (DIRSIZ):
* termcap.c (tgetent):
* termcap.c (tprint):
* tests.c (Ftest_data_format_conversion):
* text.c (new_dfc_convert_copy_data):
* text.h (eifree):
* text.h (eito_alloca):
* text.h (eito_external):
* toolbar-msw.c (mswindows_output_toolbar):
* ui-gtk.c (CONVERT_RETVAL):
* ui-gtk.c (__allocate_object_storage):
* unicode.c (free_from_unicode_table):
* unicode.c (free_to_unicode_table):
* unicode.c (free_charset_unicode_tables):
* win32.c (mswindows_read_link_1):
Rename: xfree(VAL, TYPE)->xfree(VAL)
Command used:
gr 'xfree *\((.*),.*\);' 'xfree (\1);' *.[ch]
Followed by grepping for 'xfree.*,' and fixing anything left.
Rationale: Having to specify the TYPE argument is annoying and
error-prone. It was originally put in to work around warnings
due to strict aliasing but years and years ago I rewrote it
in a way that doesn't use the TYPE argument at all and no one
has complained since then. (And anyway, XEmacs is far from
ever being in compliance with strict aliasing and would require
far-reaching changes to get that way.)
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Thu, 04 Feb 2010 07:28:14 -0600 |
parents | 304aebb79cd3 |
children | ae48681c47fa |
rev | line source |
---|---|
398 | 1 /* C support for testing XEmacs - see tests/automated/c-tests.el |
2 Copyright (C) 2000 Martin Buchholz | |
771 | 3 Copyright (C) 2001, 2002 Ben Wing. |
3417 | 4 Copyright (C) 2006 The Free Software Foundation, Inc. |
398 | 5 |
6 This file is part of XEmacs. | |
7 | |
8 XEmacs is free software; you can redistribute it and/or modify it | |
9 under the terms of the GNU General Public License as published by the | |
10 Free Software Foundation; either version 2, or (at your option) any | |
11 later version. | |
12 | |
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
16 for more details. | |
17 | |
18 You should have received a copy of the GNU General Public License | |
19 along with XEmacs; see the file COPYING. If not, write to | |
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
21 Boston, MA 02111-1307, USA. */ | |
22 | |
23 /* Author: Martin Buchholz | |
24 | |
25 This file provides support for running tests for XEmacs that cannot | |
26 be written entirely in Lisp. These tests are run automatically via | |
27 tests/automated/c-tests.el, or can be run by hand using M-x */ | |
28 | |
29 | |
30 #include <config.h> | |
31 #include "lisp.h" | |
32 #include "buffer.h" | |
33 #include "lstream.h" | |
489 | 34 #include "elhash.h" |
398 | 35 #include "opaque.h" |
3417 | 36 #include "file-coding.h" /* XCODING_SYSTEM_EOL_TYPE and its values */ |
398 | 37 |
38 static Lisp_Object Vtest_function_list; | |
39 | |
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 | 48 */ |
49 ()) | |
50 { | |
665 | 51 void *ptr; Bytecount len; |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
52 Lisp_Object string, opaque, conversion_result = Qnil; |
398 | 53 |
867 | 54 Ibyte int_foo[] = "\n\nfoo\nbar"; |
398 | 55 Extbyte ext_unix[]= "\n\nfoo\nbar"; |
56 | |
57 Extbyte ext_dos[] = "\r\n\r\nfoo\r\nbar"; | |
58 Extbyte ext_mac[] = "\r\rfoo\rbar"; | |
59 Lisp_Object opaque_dos = make_opaque (ext_dos, sizeof (ext_dos) - 1); | |
60 Lisp_Object string_foo = make_string (int_foo, sizeof (int_foo) - 1); | |
61 | |
62 Extbyte ext_latin[] = "f\372b\343\340"; | |
867 | 63 Ibyte int_latin1[] = "f\200\372b\200\343\200\340"; |
64 Ibyte int_latin2[] = "f\201\372b\201\343\201\340"; | |
398 | 65 #ifdef MULE |
66 Extbyte ext_latin12[]= "f\033-A\372b\343\340\033-B"; | |
67 Extbyte ext_tilde[] = "f~b~~"; | |
68 Lisp_Object string_latin2 = make_string (int_latin2, sizeof (int_latin2) - 1); | |
69 #endif | |
70 Lisp_Object opaque_latin = make_opaque (ext_latin, sizeof (ext_latin) - 1); | |
71 Lisp_Object opaque0_latin = make_opaque (ext_latin, sizeof (ext_latin)); | |
72 Lisp_Object string_latin1 = make_string (int_latin1, sizeof (int_latin1) - 1); | |
3417 | 73 int autodetect_eol_p = |
74 !NILP (Fsymbol_value (intern ("eol-detection-enabled-p"))); | |
398 | 75 |
76 /* Check for expected strings before and after conversion. | |
771 | 77 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
|
78 |
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
79 /* #### 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
|
80 |
398 | 81 #ifdef MULE |
82 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \ | |
83 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
84 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
85 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
86 DFC_CHECK_DATA (ptr, len, constant_string_mule, description) |
398 | 87 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \ |
88 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
89 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
90 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
91 DFC_CHECK_DATA_NUL (ptr, len, constant_string_mule, description) |
398 | 92 #else |
93 #define DFC_CHECK_DATA_COND_MULE(ptr,len, \ | |
94 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
95 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
96 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
97 DFC_CHECK_DATA (ptr, len, constant_string_non_mule, description) |
398 | 98 #define DFC_CHECK_DATA_COND_MULE_NUL(ptr,len, \ |
99 constant_string_mule, \ | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
100 constant_string_non_mule, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
101 description) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
102 DFC_CHECK_DATA_NUL (ptr, len, constant_string_non_mule, description) |
398 | 103 #endif |
104 | |
3417 | 105 /* These now only apply to base coding systems, and |
106 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
|
107 #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
|
108 constant_string_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
109 constant_string_non_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
110 description) do { \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
111 if (autodetect_eol_p) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
112 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
|
113 else \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
114 DFC_CHECK_DATA (ptr, len, constant_string_non_eol, description); \ |
3417 | 115 } while (0) |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
116 #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
|
117 constant_string_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
118 constant_string_non_eol, \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
119 description) do { \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
120 if (autodetect_eol_p) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
121 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
|
122 else \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
123 DFC_CHECK_DATA_NUL (ptr, len, constant_string_non_eol, description); \ |
3417 | 124 } while (0) |
398 | 125 |
126 /* 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
|
127 #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
|
128 DFC_INITIALIZE (test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
129 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
|
130 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
|
131 DFC_RESULT_PASS (test); \ |
398 | 132 } while (0) |
133 | |
134 /* 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
|
135 #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
|
136 DFC_INITIALIZE (test); \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
137 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
|
138 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
|
139 DFC_RESULT_PASS (test); \ |
398 | 140 } while (0) |
141 | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
142 /* WARNING WARNING WARNING! |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
143 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
|
144 */ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
145 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
146 #define DFC_INITIALIZE(test_name) if (0) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
147 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
148 #define DFC_CHECK_LENGTH(len1,len2,str1) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
149 else if ((len1) != (len2)) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
150 conversion_result = \ |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4952
diff
changeset
|
151 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
|
152 conversion_result) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
153 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
154 #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
|
155 else if (memcmp (str1, str2, len1)) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
156 conversion_result = \ |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4952
diff
changeset
|
157 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
|
158 build_ascstring("octet comparison failed")), \ |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
159 conversion_result) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
160 |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
161 #define DFC_RESULT_PASS(str1) \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
162 else \ |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
163 conversion_result = \ |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
4952
diff
changeset
|
164 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
|
165 conversion_result) |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
166 |
398 | 167 #ifdef MULE |
168 ptr = NULL, len = rand(); | |
169 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)), | |
170 ALLOCA, (ptr, len), | |
771 | 171 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
172 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
|
173 "Latin-2 DATA, ALLOCA, Latin 2/NUL"); |
398 | 174 |
175 ptr = NULL, len = rand(); | |
176 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin2, | |
177 ALLOCA, (ptr, len), | |
771 | 178 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
179 DFC_CHECK_DATA (ptr, len, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
180 "Latin-2 Lisp string, ALLOCA, Latin 2"); |
398 | 181 |
182 ptr = NULL, len = rand(); | |
183 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
184 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
|
185 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
186 DFC_CHECK_DATA (ptr, len, ext_latin12, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
187 "Latin-1 Lisp string, ALLOCA, Latin 2/ESC"); |
398 | 188 |
189 ptr = NULL, len = rand(); | |
190 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1), | |
191 MALLOC, (ptr, len), | |
771 | 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, "Latin-2 DATA, MALLOC, Latin-2"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
194 xfree (ptr); |
398 | 195 |
196 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1), | |
197 LISP_OPAQUE, opaque, | |
771 | 198 intern ("iso-8859-2")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
199 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
|
200 "Latin-2 DATA, Lisp opaque, Latin-2"); |
398 | 201 |
202 ptr = NULL, len = rand(); | |
203 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
204 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
|
205 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
206 DFC_CHECK_DATA (ptr, len, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
207 "Latin-2/ESC, ALLOCA, Latin-1 DATA"); |
398 | 208 |
209 ptr = NULL, len = rand(); | |
210 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
211 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
|
212 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
213 DFC_CHECK_DATA (ptr, len, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
214 "Latin-2/ESC, MALLOC, Latin-1 DATA"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
215 xfree (ptr); |
398 | 216 |
217 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
218 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
|
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 (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
|
221 "Latin-2/ESC, Lisp string, Latin-2"); |
398 | 222 |
223 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin, | |
224 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
|
225 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
226 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
|
227 "Lisp opaque, Lisp string, Latin-2/ESC"); |
398 | 228 |
229 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin, | |
230 LISP_STRING, string, | |
4318
4d0f773d5e21
Fix the test failures introduced by the non-ISO-2022 coding systems.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3417
diff
changeset
|
231 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
232 DFC_CHECK_DATA_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
|
233 "Lisp opaque, Lisp string, Latin-2/ESC/NUL"); |
398 | 234 |
235 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin, | |
236 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
|
237 intern ("iso-latin-2-with-esc")); |
398 | 238 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
|
239 sizeof (int_latin2), int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
240 "Lisp opaque, Lisp buffer, Latin-2/ESC/NUL"); |
398 | 241 |
242 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin, | |
243 LISP_BUFFER, Fcurrent_buffer(), | |
244 intern ("iso-8859-1")); | |
245 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
|
246 sizeof (int_latin1) - 1, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
247 "Lisp opaque, Lisp buffer, Latin-1"); |
398 | 248 |
249 TO_INTERNAL_FORMAT (DATA, (ext_latin12, sizeof (ext_latin12) - 1), | |
250 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
|
251 intern ("iso-latin-2-with-esc")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
252 DFC_CHECK_DATA (ptr, len, int_latin1, "DATA, ALLOCA, Latin-1"); |
398 | 253 |
254 #endif /* MULE */ | |
255 | |
256 ptr = NULL, len = rand(); | |
257 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
258 ALLOCA, (ptr, len), | |
259 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
260 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
|
261 "Latin-1 DATA, ALLOCA, binary"); |
398 | 262 |
263 ptr = NULL, len = rand(); | |
264 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1)), | |
265 ALLOCA, (ptr, len), | |
266 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
267 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
|
268 "Latin-1 DATA, ALLOCA, binary/NUL"); |
398 | 269 |
270 ptr = NULL, len = rand(); | |
271 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2) - 1), | |
272 ALLOCA, (ptr, len), | |
771 | 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_tilde, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
275 "Latin-2 DATA, ALLOCA, binary"); |
398 | 276 |
277 ptr = NULL, len = rand(); | |
278 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
279 ALLOCA, (ptr, len), | |
280 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
281 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
|
282 "Latin-1 DATA, ALLOCA, Latin-1"); |
398 | 283 |
284 | |
285 ptr = NULL, len = rand(); | |
286 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
287 ALLOCA, (ptr, len), | |
288 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
289 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
|
290 "Latin-1 Lisp string, ALLOCA, binary"); |
398 | 291 |
292 ptr = NULL, len = rand(); | |
293 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
294 ALLOCA, (ptr, len), | |
771 | 295 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
296 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
|
297 "Latin-1 Lisp string, ALLOCA, binary"); |
398 | 298 |
299 ptr = NULL, len = rand(); | |
300 TO_EXTERNAL_FORMAT (LISP_STRING, string_latin1, | |
301 ALLOCA, (ptr, len), | |
302 intern ("iso-8859-1")); | |
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, Latin-1"); |
398 | 305 |
306 ptr = NULL, len = rand(); | |
307 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
308 MALLOC, (ptr, len), | |
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 DATA, MALLOC, binary"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
312 xfree (ptr); |
398 | 313 |
314 ptr = NULL, len = rand(); | |
315 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)), | |
316 MALLOC, (ptr, len), | |
771 | 317 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
318 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
|
319 "Latin-2 DATA, MALLOC, binary/NUL"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
320 xfree (ptr); |
398 | 321 |
322 ptr = NULL, len = rand(); | |
323 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
324 MALLOC, (ptr, len), | |
325 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
326 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
|
327 "Latin-1 DATA, MALLOC, Latin-1"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
328 xfree (ptr); |
398 | 329 |
330 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
331 LISP_OPAQUE, opaque, | |
332 Qbinary); | |
333 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
|
334 XOPAQUE_SIZE (opaque), ext_latin, int_latin1, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
335 "Latin-1 DATA, Lisp opaque, binary"); |
398 | 336 |
337 TO_EXTERNAL_FORMAT (DATA, (int_latin2, sizeof (int_latin2)), | |
338 LISP_OPAQUE, opaque, | |
771 | 339 Qbinary); |
398 | 340 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
|
341 XOPAQUE_SIZE (opaque), ext_tilde, int_latin2, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
342 "Latin-2 DATA, Lisp opaque, binary"); |
398 | 343 |
344 TO_EXTERNAL_FORMAT (DATA, (int_latin1, sizeof (int_latin1) - 1), | |
345 LISP_OPAQUE, opaque, | |
346 intern ("iso-8859-1")); | |
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, Latin-1"); |
398 | 350 |
351 ptr = NULL, len = rand(); | |
352 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
353 ALLOCA, (ptr, len), | |
354 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
355 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
|
356 "Latin-1 DATA, ALLOCA, binary"); |
398 | 357 |
358 ptr = NULL, len = rand(); | |
359 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)), | |
360 ALLOCA, (ptr, len), | |
361 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
362 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
|
363 "Latin-1 DATA, ALLOCA, Latin-1"); |
398 | 364 |
365 ptr = NULL, len = rand(); | |
366 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)), | |
367 MALLOC, (ptr, len), | |
368 intern ("iso-8859-1")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
369 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
|
370 "Latin-1 DATA, MALLOC, Latin-1"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
371 xfree (ptr); |
398 | 372 |
373 ptr = NULL, len = rand(); | |
374 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin)), | |
375 MALLOC, (ptr, len), | |
376 Qnil); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
377 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
|
378 "Latin-1 DATA, MALLOC, nil"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
379 xfree (ptr); |
398 | 380 |
381 TO_INTERNAL_FORMAT (DATA, (ext_latin, sizeof (ext_latin) - 1), | |
382 LISP_STRING, string, | |
383 intern ("iso-8859-1")); | |
384 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
|
385 XSTRING_LENGTH (string), int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
386 "Latin-1 DATA, Lisp stirng, Latin-1"); |
398 | 387 |
388 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_latin, | |
389 LISP_STRING, string, | |
390 intern ("iso-8859-1")); | |
391 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
|
392 XSTRING_LENGTH (string), int_latin1, ext_latin, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
393 "Latin-1 Lisp opaque, Lisp string, Latin-1"); |
398 | 394 |
395 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque0_latin, | |
396 LISP_STRING, string, | |
397 intern ("iso-8859-1")); | |
398 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
|
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 Lisp opaque, Lisp string, Latin-1/NUL"); |
398 | 401 |
3417 | 402 /* This next group used to use the COND_EOL macros, but with the new Mule, |
403 they all specify an EOL convention, and all XEmacsen can grok them. */ | |
398 | 404 ptr = NULL, len = rand(); |
405 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)), | |
406 MALLOC, (ptr, len), | |
771 | 407 Qbinary); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
408 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
|
409 "ASCII DATA, MALLOC, binary/LF/NUL"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
410 xfree (ptr); |
398 | 411 |
412 ptr = NULL, len = rand(); | |
413 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1), | |
414 LISP_OPAQUE, opaque, | |
415 intern ("raw-text-mac")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
416 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
|
417 "ASCII DATA, Lisp opaque, binary/CR"); |
398 | 418 |
419 ptr = NULL, len = rand(); | |
420 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo, | |
421 ALLOCA, (ptr, len), | |
422 intern ("raw-text-dos")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
423 DFC_CHECK_DATA (ptr, len, ext_dos, "ASCII Lisp string, ALLOCA, binary/CRLF"); |
398 | 424 |
425 ptr = NULL, len = rand(); | |
426 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1), | |
427 ALLOCA, (ptr, len), | |
428 intern ("raw-text-unix")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
429 DFC_CHECK_DATA (ptr, len, ext_unix, "ASCII DATA, ALLOCA, binary/LF"); |
398 | 430 |
431 ptr = NULL, len = rand(); | |
432 TO_EXTERNAL_FORMAT (LISP_STRING, string_foo, | |
433 MALLOC, (ptr, len), | |
434 intern ("no-conversion-mac")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
435 DFC_CHECK_DATA (ptr, len, ext_mac, "ASCII Lisp string, MALLOC, binary/CR"); |
4976
16112448d484
Rename xfree(FOO, TYPE) -> xfree(FOO)
Ben Wing <ben@xemacs.org>
parents:
4953
diff
changeset
|
436 xfree (ptr); |
398 | 437 |
438 ptr = NULL, len = rand(); | |
439 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo) - 1), | |
440 ALLOCA, (ptr, len), | |
771 | 441 intern ("no-conversion-dos")); |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
442 DFC_CHECK_DATA (ptr, len, ext_dos, "ASCII DATA, ALLOCA, binary/CRLF"); |
398 | 443 |
444 ptr = NULL, len = rand(); | |
445 TO_EXTERNAL_FORMAT (DATA, (int_foo, sizeof (int_foo)), | |
446 ALLOCA, (ptr, len), | |
447 intern ("no-conversion-unix")); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
448 DFC_CHECK_DATA_NUL (ptr, len, ext_unix, "ASCII DATA, ALLOCA, binary/LF/NUL"); |
3417 | 449 |
450 /* Oh, Lawdy, Lawdy, Lawdy, this done broke mah heart! | |
451 | |
452 I tried using the technique | |
453 | |
454 Fget_coding_system (call2 | |
455 (intern ("coding-system-change-eol-conversion"), | |
456 intern ("undecided"), $EOL_TYPE)); | |
457 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = $EOL_DETECT_TYPE; | |
458 | |
459 with EOL_TYPE = Qlf (for no-detect) and Qnil (for auto-detect), | |
460 and with EOL_DETECT_TYPE = EOL_LF and EOL_AUTODETECT | |
461 respectively, but this doesn't seem to work on the `undecided' | |
462 coding system. The coding-system-eol-type attribute on the | |
463 coding system itself needs to be changed, too. I'm not sure at | |
464 the moment how `set-eol-detection' works its magic, but the code | |
465 below gives correct test results without default EOL detection, | |
466 with default EOL detection, and with Mule. Ship it! | |
467 | |
468 Mule. You'll envy the dead. | |
469 */ | |
398 | 470 |
3417 | 471 { |
472 /* Check eol autodetection doesn't happen when disabled -- cheat. */ | |
473 Lisp_Object cs_to_use = Fget_coding_system (intern ("undecided-unix")); | |
474 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, | |
475 LISP_BUFFER, Fcurrent_buffer(), | |
476 cs_to_use); | |
477 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
|
478 sizeof (ext_dos) - 1, ext_dos, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
479 "DOS Lisp opaque, Lisp buffer, undecided-unix"); |
3417 | 480 |
481 /* Check eol autodetection works when enabled -- honest. */ | |
482 cs_to_use = | |
483 Fget_coding_system (call2 | |
484 (intern ("coding-system-change-eol-conversion"), | |
485 intern ("undecided"), Qnil)); | |
486 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = EOL_AUTODETECT; | |
487 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, | |
488 LISP_BUFFER, Fcurrent_buffer(), | |
489 cs_to_use); | |
490 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
|
491 sizeof (int_foo) - 1, int_foo, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
492 "DOS Lisp opaque, Lisp buffer, undecided"); |
3417 | 493 /* reset to default */ |
494 XCODING_SYSTEM_EOL_TYPE (cs_to_use) = | |
495 autodetect_eol_p ? EOL_AUTODETECT : EOL_LF; | |
496 } | |
497 | |
498 /* Does eol-detection-enabled-p reflect the actual state of affairs? | |
499 This probably could be tested in Lisp somehow. Should it? */ | |
398 | 500 TO_INTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, |
501 LISP_BUFFER, Fcurrent_buffer(), | |
502 intern ("undecided")); | |
3417 | 503 if (autodetect_eol_p) |
504 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, | |
505 BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
506 sizeof (int_foo) - 1, int_foo, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
507 "DOS Lisp opaque, Lisp buffer, autodetect eol"); |
3417 | 508 else |
509 DFC_CHECK_DATA (BUF_BYTE_ADDRESS (current_buffer, | |
510 BUF_PT (current_buffer)), | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
511 sizeof (ext_dos) - 1, ext_dos, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
512 "DOS Lisp opaque, Lisp buffer, no autodetect eol"); |
398 | 513 |
514 TO_INTERNAL_FORMAT (DATA, (ext_mac, sizeof (ext_mac) - 1), | |
515 LISP_STRING, string, | |
516 intern ("iso-8859-1")); | |
517 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
|
518 XSTRING_LENGTH (string), int_foo, ext_mac, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
519 "Mac DATA, Lisp string, Latin-1/EOL"); |
398 | 520 { |
521 Lisp_Object stream = | |
522 make_fixed_buffer_input_stream (ext_dos, sizeof (ext_dos) - 1); | |
523 TO_INTERNAL_FORMAT (LISP_LSTREAM, stream, | |
524 LISP_STRING, string, | |
525 intern ("iso-8859-1")); | |
526 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
|
527 XSTRING_LENGTH (string), int_foo, ext_dos, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
528 "DOS lstream, Lisp string, Latin-1/EOL"); |
398 | 529 } |
530 | |
531 TO_INTERNAL_FORMAT (DATA, (ext_unix, sizeof (ext_unix) - 1), | |
532 LISP_STRING, string, | |
533 intern ("no-conversion")); | |
534 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
|
535 XSTRING_LENGTH (string), int_foo, ext_unix, |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
536 "Unix DATA, Lisp string, no-conversion"); |
398 | 537 |
538 ptr = NULL, len = rand(); | |
539 TO_EXTERNAL_FORMAT (LISP_OPAQUE, opaque_dos, | |
540 ALLOCA, (ptr, len), | |
541 Qbinary); | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
542 DFC_CHECK_DATA (ptr, len, ext_dos, "DOS Lisp opaque, ALLOCA, binary"); |
398 | 543 |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
544 return conversion_result; |
398 | 545 } |
546 | |
547 | |
489 | 548 /* Hash Table testing */ |
549 | |
550 typedef struct | |
551 { | |
552 Lisp_Object hash_table; | |
553 EMACS_INT sum; | |
554 } test_hash_tables_data; | |
555 | |
556 | |
557 static int | |
2286 | 558 test_hash_tables_mapper (Lisp_Object UNUSED (key), Lisp_Object value, |
489 | 559 void *extra_arg) |
560 { | |
561 test_hash_tables_data *p = (test_hash_tables_data *) extra_arg; | |
562 p->sum += XINT (value); | |
563 return 0; | |
564 } | |
565 | |
566 static int | |
567 test_hash_tables_modifying_mapper (Lisp_Object key, Lisp_Object value, | |
568 void *extra_arg) | |
569 { | |
570 test_hash_tables_data *p = (test_hash_tables_data *) extra_arg; | |
571 Fputhash (make_int (- XINT (key)), | |
572 make_int (2 * XINT (value)), | |
573 p->hash_table); | |
574 p->sum += XINT (value); | |
575 return 0; | |
576 } | |
577 | |
578 static int | |
2286 | 579 test_hash_tables_predicate (Lisp_Object key, |
580 Lisp_Object UNUSED (value), | |
581 void *UNUSED (extra_arg)) | |
489 | 582 { |
583 return XINT (key) < 0; | |
584 } | |
585 | |
586 | |
587 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
|
588 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
|
589 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
|
590 |
b8afe0f9cbe3
Restore some doc changes that got dropped in a merge.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4747
diff
changeset
|
591 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
|
592 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
|
593 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
|
594 REASON is nil or a string describing the failure (not required). |
489 | 595 */ |
596 ()) | |
597 { | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
598 Lisp_Object hash_result = Qnil; |
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
599 |
489 | 600 test_hash_tables_data data; |
601 data.hash_table = make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, | |
602 HASH_TABLE_EQUAL); | |
603 | |
604 Fputhash (make_int (1), make_int (2), data.hash_table); | |
605 Fputhash (make_int (3), make_int (4), data.hash_table); | |
606 | |
607 data.sum = 0; | |
608 elisp_maphash_unsafe (test_hash_tables_mapper, | |
609 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
610 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
|
611 (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
|
612 build_ascstring ("sum != 2 + 4")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
613 hash_result); |
489 | 614 |
615 data.sum = 0; | |
616 elisp_maphash (test_hash_tables_modifying_mapper, | |
617 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
618 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
|
619 (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
|
620 build_ascstring ("sum != 2 + 4")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
621 hash_result); |
489 | 622 |
623 /* hash table now contains: (1, 2) (3, 4) (-1, 2*2) (-3, 2*4) */ | |
624 | |
625 data.sum = 0; | |
626 elisp_maphash_unsafe (test_hash_tables_mapper, | |
627 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
628 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
|
629 (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
|
630 build_ascstring ("sum != 3 * (2 + 4)")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
631 hash_result); |
489 | 632 |
633 /* Remove entries with negative keys, added by modifying mapper */ | |
634 elisp_map_remhash (test_hash_tables_predicate, | |
635 data.hash_table, 0); | |
636 | |
637 data.sum = 0; | |
638 elisp_maphash_unsafe (test_hash_tables_mapper, | |
639 data.hash_table, (void *) &data); | |
4952
19a72041c5ed
Mule-izing, various fixes related to char * arguments
Ben Wing <ben@xemacs.org>
parents:
4752
diff
changeset
|
640 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
|
641 (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
|
642 build_ascstring ("sum != 2 + 4")), |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
643 hash_result); |
489 | 644 |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
645 return hash_result; |
489 | 646 } |
647 | |
648 | |
398 | 649 |
3263 | 650 #ifdef NEW_GC |
2720 | 651 #define TESTS_DEFSUBR(Fname) do { \ |
652 DEFSUBR_MC_ALLOC (Fname); \ | |
653 defsubr (S##Fname); \ | |
654 Vtest_function_list = \ | |
655 Fcons (intern (subr_name (S##Fname)), \ | |
656 Vtest_function_list); \ | |
657 } while (0) | |
3263 | 658 #else /* not NEW_GC */ |
398 | 659 #define TESTS_DEFSUBR(Fname) do { \ |
660 DEFSUBR (Fname); \ | |
661 Vtest_function_list = \ | |
662 Fcons (intern (subr_name (&S##Fname)), \ | |
663 Vtest_function_list); \ | |
664 } while (0) | |
3263 | 665 #endif /* not NEW_GC */ |
398 | 666 |
667 void | |
668 syms_of_tests (void) | |
669 { | |
670 Vtest_function_list = Qnil; | |
671 | |
672 TESTS_DEFSUBR (Ftest_data_format_conversion); | |
489 | 673 TESTS_DEFSUBR (Ftest_hash_tables); |
398 | 674 /* Add other test functions here with TESTS_DEFSUBR */ |
675 } | |
676 | |
677 void | |
678 vars_of_tests (void) | |
679 { | |
680 DEFVAR_LISP ("test-function-list", &Vtest_function_list /* | |
681 List of all test functions defined in tests.c. | |
682 For use by the automated test suite. See tests/automated/c-tests. | |
683 */ ); | |
684 } | |
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
685 |