Mercurial > hg > xemacs-beta
annotate src/tests.c @ 5492:e82f5b7010fe
Merge some stuff in man, fix up Makefile
-------------------- ChangeLog entries follow: --------------------
man/ChangeLog addition:
2010-02-19 Ben Wing <ben@xemacs.org>
* widget.texi:
* widget.texi (Top):
* widget.texi (Introduction):
* widget.texi (User Interface):
* widget.texi (Programming Example):
* widget.texi (Setting Up the Buffer):
* widget.texi (Basic Types):
* widget.texi (link):
* widget.texi (url-link):
* widget.texi (info-link):
* widget.texi (push-button):
* widget.texi (editable-field):
* widget.texi (text):
* widget.texi (menu-choice):
* widget.texi (radio-button-choice):
* widget.texi (item):
* widget.texi (choice-item):
* widget.texi (toggle):
* widget.texi (checkbox):
* widget.texi (checklist):
* widget.texi (editable-list):
* widget.texi (group):
* widget.texi (Sexp Types):
* widget.texi (constants):
* widget.texi (generic):
* widget.texi (atoms):
* widget.texi (composite):
* widget.texi (Widget Properties):
* widget.texi (Defining New Widgets):
* widget.texi (Widget Browser):
* widget.texi (Widget Minor Mode):
* widget.texi (Utilities):
* widget.texi (Widget Wishlist):
* widget.texi (Widget Internals):
* widget.texi (GNU Free Documentation License):
* widget.texi (Index):
Sync with FSF 23.1.92.
2010-02-19 Ben Wing <ben@xemacs.org>
* texinfo/fdl.texi: New file.
* texinfo/texinfo.texi:
* texinfo/texinfo.texi (Top):
* texinfo/texinfo.texi (Copying Conditions):
* texinfo/texinfo.texi (Overview):
* texinfo/texinfo.texi (Reporting Bugs):
* texinfo/texinfo.texi (Using Texinfo):
* texinfo/texinfo.texi (Output Formats):
* texinfo/texinfo.texi (Info Files):
* texinfo/texinfo.texi (Printed Books):
* texinfo/texinfo.texi (Formatting Commands):
* texinfo/texinfo.texi (Conventions):
* texinfo/texinfo.texi (Comments):
* texinfo/texinfo.texi (Minimum):
* texinfo/texinfo.texi (Six Parts):
* texinfo/texinfo.texi (Short Sample):
* texinfo/texinfo.texi (History):
* texinfo/texinfo.texi (Texinfo Mode):
* texinfo/texinfo.texi (Texinfo Mode Overview):
* texinfo/texinfo.texi (XEmacs Editing):
* texinfo/texinfo.texi (Inserting):
* texinfo/texinfo.texi (Showing the Structure):
* texinfo/texinfo.texi (Updating Nodes and Menus):
* texinfo/texinfo.texi (Updating Commands):
* texinfo/texinfo.texi (Updating Requirements):
* texinfo/texinfo.texi (Other Updating Commands):
* texinfo/texinfo.texi (Info Formatting):
* texinfo/texinfo.texi (Printing):
* texinfo/texinfo.texi (Texinfo Mode Summary):
* texinfo/texinfo.texi (Beginning a File):
* texinfo/texinfo.texi (Sample Beginning):
* texinfo/texinfo.texi (Texinfo File Header):
* texinfo/texinfo.texi (First Line):
* texinfo/texinfo.texi (Start of Header):
* texinfo/texinfo.texi (setfilename):
* texinfo/texinfo.texi (settitle):
* texinfo/texinfo.texi (End of Header):
* texinfo/texinfo.texi (Document Permissions):
* texinfo/texinfo.texi (copying):
* texinfo/texinfo.texi (insertcopying):
* texinfo/texinfo.texi (Titlepage & Copyright Page):
* texinfo/texinfo.texi (titlepage):
* texinfo/texinfo.texi (titlefont center sp):
* texinfo/texinfo.texi (title subtitle author):
* texinfo/texinfo.texi (Copyright):
* texinfo/texinfo.texi (end titlepage):
* texinfo/texinfo.texi (headings on off):
* texinfo/texinfo.texi (Contents):
* texinfo/texinfo.texi (The Top Node):
* texinfo/texinfo.texi (Top Node Example):
* texinfo/texinfo.texi (Master Menu Parts):
* texinfo/texinfo.texi (Global Document Commands):
* texinfo/texinfo.texi (documentdescription):
* texinfo/texinfo.texi (setchapternewpage):
* texinfo/texinfo.texi (paragraphindent):
* texinfo/texinfo.texi (firstparagraphindent):
* texinfo/texinfo.texi (exampleindent):
* texinfo/texinfo.texi (Software Copying Permissions):
* texinfo/texinfo.texi (Ending a File):
* texinfo/texinfo.texi (Printing Indices & Menus):
* texinfo/texinfo.texi (File End):
* texinfo/texinfo.texi (Structuring):
* texinfo/texinfo.texi (Tree Structuring):
* texinfo/texinfo.texi (Structuring Command Types):
* texinfo/texinfo.texi (makeinfo top):
* texinfo/texinfo.texi (chapter):
* texinfo/texinfo.texi (unnumbered & appendix):
* texinfo/texinfo.texi (majorheading & chapheading):
* texinfo/texinfo.texi (section):
* texinfo/texinfo.texi (unnumberedsec appendixsec heading):
* texinfo/texinfo.texi (subsection):
* texinfo/texinfo.texi (unnumberedsubsec appendixsubsec subheading):
* texinfo/texinfo.texi (subsubsection):
* texinfo/texinfo.texi (Raise/lower sections):
* texinfo/texinfo.texi (Nodes):
* texinfo/texinfo.texi (Two Paths):
* texinfo/texinfo.texi (Node Menu Illustration):
* texinfo/texinfo.texi (node):
* texinfo/texinfo.texi (Node Names):
* texinfo/texinfo.texi (Writing a Node):
* texinfo/texinfo.texi (Node Line Tips):
* texinfo/texinfo.texi (Node Line Requirements):
* texinfo/texinfo.texi (First Node):
* texinfo/texinfo.texi (makeinfo top command):
* texinfo/texinfo.texi (makeinfo Pointer Creation):
* texinfo/texinfo.texi (anchor):
* texinfo/texinfo.texi (Menus):
* texinfo/texinfo.texi (Menu Location):
* texinfo/texinfo.texi (Writing a Menu):
* texinfo/texinfo.texi (Menu Parts):
* texinfo/texinfo.texi (Less Cluttered Menu Entry):
* texinfo/texinfo.texi (Menu Example):
* texinfo/texinfo.texi (Other Info Files):
* texinfo/texinfo.texi (Cross References):
* texinfo/texinfo.texi (References):
* texinfo/texinfo.texi (Cross Reference Commands):
* texinfo/texinfo.texi (Cross Reference Parts):
* texinfo/texinfo.texi (xref):
* texinfo/texinfo.texi (Reference Syntax):
* texinfo/texinfo.texi (One Argument):
* texinfo/texinfo.texi (Two Arguments):
* texinfo/texinfo.texi (Three Arguments):
* texinfo/texinfo.texi (Four and Five Arguments):
* texinfo/texinfo.texi (Top Node Naming):
* texinfo/texinfo.texi (ref):
* texinfo/texinfo.texi (pxref):
* texinfo/texinfo.texi (inforef):
* texinfo/texinfo.texi (uref):
* texinfo/texinfo.texi (cite):
* texinfo/texinfo.texi (Marking Text):
* texinfo/texinfo.texi (Indicating):
* texinfo/texinfo.texi (Useful Highlighting):
* texinfo/texinfo.texi (code):
* texinfo/texinfo.texi (kbd):
* texinfo/texinfo.texi (key):
* texinfo/texinfo.texi (samp):
* texinfo/texinfo.texi (verb):
* texinfo/texinfo.texi (var):
* texinfo/texinfo.texi (env):
* texinfo/texinfo.texi (file):
* texinfo/texinfo.texi (command):
* texinfo/texinfo.texi (option):
* texinfo/texinfo.texi (dfn):
* texinfo/texinfo.texi (abbr):
* texinfo/texinfo.texi (acronym):
* texinfo/texinfo.texi (indicateurl):
* texinfo/texinfo.texi (email):
* texinfo/texinfo.texi (Emphasis):
* texinfo/texinfo.texi (emph & strong):
* texinfo/texinfo.texi (Smallcaps):
* texinfo/texinfo.texi (Fonts):
* texinfo/texinfo.texi (Quotations and Examples):
* texinfo/texinfo.texi (Block Enclosing Commands):
* texinfo/texinfo.texi (quotation):
* texinfo/texinfo.texi (example):
* texinfo/texinfo.texi (verbatim):
* texinfo/texinfo.texi (verbatiminclude):
* texinfo/texinfo.texi (lisp):
* texinfo/texinfo.texi (small):
* texinfo/texinfo.texi (display):
* texinfo/texinfo.texi (format):
* texinfo/texinfo.texi (exdent):
* texinfo/texinfo.texi (flushleft & flushright):
* texinfo/texinfo.texi (noindent):
* texinfo/texinfo.texi (indent):
* texinfo/texinfo.texi (cartouche):
* texinfo/texinfo.texi (Lists and Tables):
* texinfo/texinfo.texi (Introducing Lists):
* texinfo/texinfo.texi (itemize):
* texinfo/texinfo.texi (enumerate):
* texinfo/texinfo.texi (Two-column Tables):
* texinfo/texinfo.texi (table):
* texinfo/texinfo.texi (ftable vtable):
* texinfo/texinfo.texi (itemx):
* texinfo/texinfo.texi (Multi-column Tables):
* texinfo/texinfo.texi (Multitable Column Widths):
* texinfo/texinfo.texi (Multitable Rows):
* texinfo/texinfo.texi (Special Displays):
* texinfo/texinfo.texi (Floats):
* texinfo/texinfo.texi (float):
* texinfo/texinfo.texi (caption shortcaption):
* texinfo/texinfo.texi (listoffloats):
* texinfo/texinfo.texi (Images):
* texinfo/texinfo.texi (Image Syntax):
* texinfo/texinfo.texi (Image Scaling):
* texinfo/texinfo.texi (Footnotes):
* texinfo/texinfo.texi (Footnote Commands):
* texinfo/texinfo.texi (Footnote Styles):
* texinfo/texinfo.texi (Indices):
* texinfo/texinfo.texi (Index Entries):
* texinfo/texinfo.texi (Predefined Indices):
* texinfo/texinfo.texi (Indexing Commands):
* texinfo/texinfo.texi (Combining Indices):
* texinfo/texinfo.texi (syncodeindex):
* texinfo/texinfo.texi (synindex):
* texinfo/texinfo.texi (New Indices):
* texinfo/texinfo.texi (Insertions):
* texinfo/texinfo.texi (Atsign Braces Comma):
* texinfo/texinfo.texi (Inserting an Atsign):
* texinfo/texinfo.texi (Inserting Braces):
* texinfo/texinfo.texi (Inserting a Comma):
* texinfo/texinfo.texi (Inserting Quote Characters):
* texinfo/texinfo.texi (Inserting Space):
* texinfo/texinfo.texi (Not Ending a Sentence):
* texinfo/texinfo.texi (Ending a Sentence):
* texinfo/texinfo.texi (Multiple Spaces):
* texinfo/texinfo.texi (frenchspacing):
* texinfo/texinfo.texi (dmn):
* texinfo/texinfo.texi (Inserting Accents):
* texinfo/texinfo.texi (Inserting Quotation Marks):
* texinfo/texinfo.texi (Dots Bullets):
* texinfo/texinfo.texi (dots):
* texinfo/texinfo.texi (bullet):
* texinfo/texinfo.texi (TeX and copyright):
* texinfo/texinfo.texi (tex):
* texinfo/texinfo.texi (copyright symbol):
* texinfo/texinfo.texi (registered symbol):
* texinfo/texinfo.texi (euro):
* texinfo/texinfo.texi (pounds):
* texinfo/texinfo.texi (textdegree):
* texinfo/texinfo.texi (minus):
* texinfo/texinfo.texi (geq leq):
* texinfo/texinfo.texi (math):
* texinfo/texinfo.texi (Click Sequences):
* texinfo/texinfo.texi (Glyphs):
* texinfo/texinfo.texi (Glyphs Summary):
* texinfo/texinfo.texi (result):
* texinfo/texinfo.texi (expansion):
* texinfo/texinfo.texi (Print Glyph):
* texinfo/texinfo.texi (Error Glyph):
* texinfo/texinfo.texi (Equivalence):
* texinfo/texinfo.texi (Point Glyph):
* texinfo/texinfo.texi (Breaks):
* texinfo/texinfo.texi (Break Commands):
* texinfo/texinfo.texi (Line Breaks):
* texinfo/texinfo.texi (- and hyphenation):
* texinfo/texinfo.texi (allowcodebreaks):
* texinfo/texinfo.texi (w):
* texinfo/texinfo.texi (tie):
* texinfo/texinfo.texi (sp):
* texinfo/texinfo.texi (page):
* texinfo/texinfo.texi (group):
* texinfo/texinfo.texi (need):
* texinfo/texinfo.texi (Definition Commands):
* texinfo/texinfo.texi (Def Cmd Template):
* texinfo/texinfo.texi (Def Cmd Continuation Lines):
* texinfo/texinfo.texi (Optional Arguments):
* texinfo/texinfo.texi (deffnx):
* texinfo/texinfo.texi (Def Cmds in Detail):
* texinfo/texinfo.texi (Functions Commands):
* texinfo/texinfo.texi (Variables Commands):
* texinfo/texinfo.texi (Typed Functions):
* texinfo/texinfo.texi (Typed Variables):
* texinfo/texinfo.texi (Data Types):
* texinfo/texinfo.texi (Abstract Objects):
* texinfo/texinfo.texi (Object-Oriented Variables):
* texinfo/texinfo.texi (Object-Oriented Methods):
* texinfo/texinfo.texi (Defining Macros):
* texinfo/texinfo.texi (Invoking Macros):
* texinfo/texinfo.texi (Macro Details):
* texinfo/texinfo.texi (alias):
* texinfo/texinfo.texi (definfoenclose):
* texinfo/texinfo.texi (Hardcopy):
* texinfo/texinfo.texi (Use TeX):
* texinfo/texinfo.texi (Format with tex/texindex):
* texinfo/texinfo.texi (Format with texi2dvi):
* texinfo/texinfo.texi (Print with lpr):
* texinfo/texinfo.texi (Within XEmacs):
* texinfo/texinfo.texi (Texinfo Mode Printing):
* texinfo/texinfo.texi (Compile-Command):
* texinfo/texinfo.texi (Requirements Summary):
* texinfo/texinfo.texi (Preparing for TeX):
* texinfo/texinfo.texi (Overfull hboxes):
* texinfo/texinfo.texi (smallbook):
* texinfo/texinfo.texi (A4 Paper):
* texinfo/texinfo.texi (pagesizes):
* texinfo/texinfo.texi (Cropmarks and Magnification):
* texinfo/texinfo.texi (PDF Output):
* texinfo/texinfo.texi (Obtaining TeX):
* texinfo/texinfo.texi (Creating and Installing Info Files):
* texinfo/texinfo.texi (Creating an Info File):
* texinfo/texinfo.texi (makeinfo advantages):
* texinfo/texinfo.texi (Invoking makeinfo):
* texinfo/texinfo.texi (makeinfo options):
* texinfo/texinfo.texi (Pointer Validation):
* texinfo/texinfo.texi (makeinfo in XEmacs):
* texinfo/texinfo.texi (texinfo-format commands):
* texinfo/texinfo.texi (Batch Formatting):
* texinfo/texinfo.texi (Tag and Split Files):
* texinfo/texinfo.texi (Installing an Info File):
* texinfo/texinfo.texi (Directory File):
* texinfo/texinfo.texi (New Info File):
* texinfo/texinfo.texi (Other Info Directories):
* texinfo/texinfo.texi (Installing Dir Entries):
* texinfo/texinfo.texi (Invoking install-info):
* texinfo/texinfo.texi (Generating HTML):
* texinfo/texinfo.texi (HTML Translation):
* texinfo/texinfo.texi (HTML Splitting):
* texinfo/texinfo.texi (HTML CSS):
* texinfo/texinfo.texi (HTML Xref):
* texinfo/texinfo.texi (HTML Xref Link Basics):
* texinfo/texinfo.texi (HTML Xref Node Name Expansion):
* texinfo/texinfo.texi (HTML Xref Command Expansion):
* texinfo/texinfo.texi (HTML Xref 8-bit Character Expansion):
* texinfo/texinfo.texi (HTML Xref Mismatch):
* texinfo/texinfo.texi (Command List):
* texinfo/texinfo.texi (Command Syntax):
* texinfo/texinfo.texi (Tips):
* texinfo/texinfo.texi (Sample Texinfo Files):
* texinfo/texinfo.texi (Short Sample Texinfo File):
* texinfo/texinfo.texi (GNU Sample Texts):
* texinfo/texinfo.texi (Invoking sample):
* texinfo/texinfo.texi (GNU Free Documentation License):
* texinfo/texinfo.texi (Index):
* texinfo/texinfo.texi (Verbatim Copying License):
* texinfo/texinfo.texi (All-permissive Copying License):
* texinfo/texinfo.texi (Include Files):
* texinfo/texinfo.texi (Using Include Files):
* texinfo/texinfo.texi (texinfo-multiple-files-update):
* texinfo/texinfo.texi (Include Files Requirements):
* texinfo/texinfo.texi (Sample Include File):
* texinfo/texinfo.texi (Include Files Evolution):
* texinfo/texinfo.texi (Headings):
* texinfo/texinfo.texi (Headings Introduced):
* texinfo/texinfo.texi (Heading Format):
* texinfo/texinfo.texi (Heading Choice):
* texinfo/texinfo.texi (Custom Headings):
* texinfo/texinfo.texi (Catching Mistakes):
* texinfo/texinfo.texi (makeinfo Preferred):
* texinfo/texinfo.texi (Debugging with Info):
* texinfo/texinfo.texi (Debugging with TeX):
* texinfo/texinfo.texi (Using texinfo-show-structure):
* texinfo/texinfo.texi (Using occur):
* texinfo/texinfo.texi (Running Info-Validate):
* texinfo/texinfo.texi (Using Info-validate):
* texinfo/texinfo.texi (Unsplit):
* texinfo/texinfo.texi (Tagifying):
* texinfo/texinfo.texi (Splitting):
* texinfo/texinfo.texi (Refilling Paragraphs):
* texinfo/texinfo.texi (Command and Variable Index):
* texinfo/texinfo.texi (General Index):
* texinfo/version.texi: New file.
Sync with FSF 23.1.92. Make new directory to hold the files needed
to generate texinfo.info, since there are three such files now.
2010-02-19 Ben Wing <ben@xemacs.org>
* Makefile:
* Makefile (src_files1):
* Makefile (DIR):
* Makefile (texinfo-srcs):
* Makefile ($(INFODIR)/widget.info):
* Makefile ($(INFODIR)/texinfo.info):
* Makefile (.PHONY):
* Makefile (texinfo.dvi):
* Makefile (texinfo.pdf):
* Makefile ($(HTMLDIR)/widget.html):
* Makefile ($(HTMLDIR)/texinfo.html):
Incorporate texinfo.texi moving to a subdirectory texinfo/.
Do some tricks to reduce the amount of duplication while still
maintaining compatible with non-GNU make (at least, with
Solaris make).
* doclicense.texi: New file.
* info.texi:
* info.texi (Top):
* info.texi (Getting Started):
* info.texi (Help-Small-Screen):
* info.texi (Help):
* info.texi (Help-P):
* info.texi (Help-^L):
* info.texi (Help-Inv):
* info.texi (Help-]):
* info.texi (Help-M):
* info.texi (Help-FOO):
* info.texi (Help-Xref):
* info.texi (Help-Int):
* info.texi (Help-Q):
* info.texi (Advanced):
* info.texi (Search Text):
* info.texi (Search Index):
* info.texi (Go to node):
* info.texi (Choose menu subtopic):
* info.texi (Create Info buffer):
* info.texi (XEmacs Info Variables):
* info.texi (Expert Info):
* info.texi (Add):
* info.texi (Menus):
* info.texi (Cross-refs):
* info.texi (Help-Cross):
* info.texi (Tags):
* info.texi (Checking):
* info.texi (Index):
* texinfo.tex:
* texinfo.tex (paragraphindent{%):
* texinfo.tex (sectionheading will have):
* texinfo.tex (chapterzzz{#3}%):
* texinfo.tex (subsubsection = \numberedsubsubsec):
* texinfo.tex (subsubsection = \appendixsubsubsec):
* texinfo.tex (subsubsection = \unnumberedsubsubsec):
* texinfo.tex (sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%):
* texinfo.tex (sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%):
* texinfo.tex (sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%):
* texinfo.tex (sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%):
* texinfo.tex (sectionheading{#1}{subsec}{Yappendix}%):
* texinfo.tex (sectionheading{#1}{subsec}{Ynothing}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Ynumbered}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Yappendix}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Ynothing}%):
* texinfo.tex (sectionheading{#1}{subsubsec}{Yomitfromtoc}{}):
* texinfo.tex (sectionheading to do the printing.):
* texinfo.tex (sectionlevel}{#1}{#4}%):
* texinfo.tex (sectionheading, q.v.):
Sync with FSF 23.1.92.
| author | Ben Wing <ben@xemacs.org> |
|---|---|
| date | Fri, 19 Feb 2010 22:39:19 -0600 |
| parents | ae48681c47fa |
| children | e70a73f9243d |
| rev | line source |
|---|---|
| 398 | 1 /* C support for testing XEmacs - see tests/automated/c-tests.el |
| 2 Copyright (C) 2000 Martin Buchholz | |
| 5013 | 3 Copyright (C) 2001, 2002, 2010 Ben Wing. |
| 3417 | 4 Copyright (C) 2006 The Free Software Foundation, Inc. |
| 398 | 5 |
| 6 This file is part of XEmacs. | |
| 7 | |
| 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 | |
| 5013 | 648 DEFUN ("test-store-void-in-lisp", Ftest_store_void_in_lisp, 0, 0, "", /* |
| 649 Test STORE_VOID_IN_LISP and its inverse GET_VOID_FROM_LISP. | |
| 650 Tests by internal assert(); only returns if it succeeds. | |
| 651 */ | |
| 652 ()) | |
| 653 { | |
| 654 struct foobar { int x; int y; short z; void *q; } baz; | |
| 655 | |
| 656 #define FROB(val) \ | |
| 657 do \ | |
| 658 { \ | |
| 659 void *pval = (void *) (val); \ | |
| 660 assert (GET_VOID_FROM_LISP (STORE_VOID_IN_LISP (pval)) == pval); \ | |
| 661 } \ | |
| 662 while (0) | |
| 663 assert (INT_VALBITS >= 31); | |
| 664 FROB (&baz); | |
| 665 FROB (&baz.x); | |
| 666 FROB (&baz.y); | |
| 667 FROB (&baz.z); | |
| 668 FROB (&baz.q); | |
| 669 FROB (0); | |
| 670 FROB (2); | |
| 671 FROB (&Vtest_function_list); | |
| 672 FROB (0x00000080); | |
| 673 FROB (0x00008080); | |
| 674 FROB (0x00808080); | |
| 675 FROB (0x80808080); | |
| 676 FROB (0xCAFEBABE); | |
| 677 FROB (0xFFFFFFFE); | |
| 678 #if INT_VALBITS >= 63 | |
| 679 FROB (0x0000808080808080); | |
| 680 FROB (0x8080808080808080); | |
| 681 FROB (0XDEADBEEFCAFEBABE); | |
| 682 FROB (0XFFFFFFFFFFFFFFFE); | |
| 683 #endif /* INT_VALBITS >= 63 */ | |
| 684 | |
| 685 return list3 (build_ascstring ("STORE_VOID_IN_LISP"), Qt, Qnil); | |
| 686 } | |
| 687 | |
| 489 | 688 |
| 398 | 689 |
| 3263 | 690 #ifdef NEW_GC |
| 2720 | 691 #define TESTS_DEFSUBR(Fname) do { \ |
| 692 DEFSUBR_MC_ALLOC (Fname); \ | |
| 693 defsubr (S##Fname); \ | |
| 694 Vtest_function_list = \ | |
| 695 Fcons (intern (subr_name (S##Fname)), \ | |
| 696 Vtest_function_list); \ | |
| 697 } while (0) | |
| 3263 | 698 #else /* not NEW_GC */ |
| 398 | 699 #define TESTS_DEFSUBR(Fname) do { \ |
| 700 DEFSUBR (Fname); \ | |
| 701 Vtest_function_list = \ | |
| 702 Fcons (intern (subr_name (&S##Fname)), \ | |
| 703 Vtest_function_list); \ | |
| 704 } while (0) | |
| 3263 | 705 #endif /* not NEW_GC */ |
| 398 | 706 |
| 707 void | |
| 708 syms_of_tests (void) | |
| 709 { | |
| 710 Vtest_function_list = Qnil; | |
| 711 | |
| 712 TESTS_DEFSUBR (Ftest_data_format_conversion); | |
| 489 | 713 TESTS_DEFSUBR (Ftest_hash_tables); |
| 5013 | 714 TESTS_DEFSUBR (Ftest_store_void_in_lisp); |
| 398 | 715 /* Add other test functions here with TESTS_DEFSUBR */ |
| 716 } | |
| 717 | |
| 718 void | |
| 719 vars_of_tests (void) | |
| 720 { | |
| 721 DEFVAR_LISP ("test-function-list", &Vtest_function_list /* | |
| 722 List of all test functions defined in tests.c. | |
| 723 For use by the automated test suite. See tests/automated/c-tests. | |
| 724 */ ); | |
| 725 } | |
|
4747
294a86d29f99
Eliminate C asserts from c-tests.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4318
diff
changeset
|
726 |
