]> granicus.if.org Git - php/commitdiff
Add test suite for CP850 encoding
authorAlex Dowad <alexinbeijing@gmail.com>
Sun, 18 Oct 2020 14:36:21 +0000 (16:36 +0200)
committerAlex Dowad <alexinbeijing@gmail.com>
Mon, 2 Nov 2020 19:31:06 +0000 (21:31 +0200)
ext/mbstring/tests/cp850_encoding.phpt [new file with mode: 0644]
ext/mbstring/tests/data/CP850.txt [new file with mode: 0644]

diff --git a/ext/mbstring/tests/cp850_encoding.phpt b/ext/mbstring/tests/cp850_encoding.phpt
new file mode 100644 (file)
index 0000000..c736da1
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--
+Exhaustive test of verification and conversion of CP850 text
+--SKIPIF--
+<?php
+extension_loaded('mbstring') or die('skip mbstring not available');
+if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
+?>
+--FILE--
+<?php
+include('encoding_tests.inc');
+testEncodingFromUTF16ConversionTable(__DIR__ . '/data/CP850.txt', 'CP850');?>
+--EXPECT--
+Tested CP850 -> UTF-16BE
+Tested UTF-16BE -> CP850
diff --git a/ext/mbstring/tests/data/CP850.txt b/ext/mbstring/tests/data/CP850.txt
new file mode 100644 (file)
index 0000000..7f662c4
--- /dev/null
@@ -0,0 +1,273 @@
+#
+#    Name:     cp850_DOSLatin1 to Unicode table
+#    Unicode version: 2.0
+#    Table version: 2.00
+#    Table format:  Format A
+#    Date:          04/24/96
+#    Contact: Shawn.Steele@microsoft.com
+#
+#    General notes: none
+#
+#    Format: Three tab-separated columns
+#        Column #1 is the cp850_DOSLatin1 code (in hex)
+#        Column #2 is the Unicode (in hex as 0xXXXX)
+#        Column #3 is the Unicode name (follows a comment sign, '#')
+#
+#    The entries are in cp850_DOSLatin1 order
+#
+0x00   0x0000  #NULL
+0x01   0x0001  #START OF HEADING
+0x02   0x0002  #START OF TEXT
+0x03   0x0003  #END OF TEXT
+0x04   0x0004  #END OF TRANSMISSION
+0x05   0x0005  #ENQUIRY
+0x06   0x0006  #ACKNOWLEDGE
+0x07   0x0007  #BELL
+0x08   0x0008  #BACKSPACE
+0x09   0x0009  #HORIZONTAL TABULATION
+0x0a   0x000a  #LINE FEED
+0x0b   0x000b  #VERTICAL TABULATION
+0x0c   0x000c  #FORM FEED
+0x0d   0x000d  #CARRIAGE RETURN
+0x0e   0x000e  #SHIFT OUT
+0x0f   0x000f  #SHIFT IN
+0x10   0x0010  #DATA LINK ESCAPE
+0x11   0x0011  #DEVICE CONTROL ONE
+0x12   0x0012  #DEVICE CONTROL TWO
+0x13   0x0013  #DEVICE CONTROL THREE
+0x14   0x0014  #DEVICE CONTROL FOUR
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE
+0x16   0x0016  #SYNCHRONOUS IDLE
+0x17   0x0017  #END OF TRANSMISSION BLOCK
+0x18   0x0018  #CANCEL
+0x19   0x0019  #END OF MEDIUM
+0x1a   0x001a  #SUBSTITUTE
+0x1b   0x001b  #ESCAPE
+0x1c   0x001c  #FILE SEPARATOR
+0x1d   0x001d  #GROUP SEPARATOR
+0x1e   0x001e  #RECORD SEPARATOR
+0x1f   0x001f  #UNIT SEPARATOR
+0x20   0x0020  #SPACE
+0x21   0x0021  #EXCLAMATION MARK
+0x22   0x0022  #QUOTATION MARK
+0x23   0x0023  #NUMBER SIGN
+0x24   0x0024  #DOLLAR SIGN
+0x25   0x0025  #PERCENT SIGN
+0x26   0x0026  #AMPERSAND
+0x27   0x0027  #APOSTROPHE
+0x28   0x0028  #LEFT PARENTHESIS
+0x29   0x0029  #RIGHT PARENTHESIS
+0x2a   0x002a  #ASTERISK
+0x2b   0x002b  #PLUS SIGN
+0x2c   0x002c  #COMMA
+0x2d   0x002d  #HYPHEN-MINUS
+0x2e   0x002e  #FULL STOP
+0x2f   0x002f  #SOLIDUS
+0x30   0x0030  #DIGIT ZERO
+0x31   0x0031  #DIGIT ONE
+0x32   0x0032  #DIGIT TWO
+0x33   0x0033  #DIGIT THREE
+0x34   0x0034  #DIGIT FOUR
+0x35   0x0035  #DIGIT FIVE
+0x36   0x0036  #DIGIT SIX
+0x37   0x0037  #DIGIT SEVEN
+0x38   0x0038  #DIGIT EIGHT
+0x39   0x0039  #DIGIT NINE
+0x3a   0x003a  #COLON
+0x3b   0x003b  #SEMICOLON
+0x3c   0x003c  #LESS-THAN SIGN
+0x3d   0x003d  #EQUALS SIGN
+0x3e   0x003e  #GREATER-THAN SIGN
+0x3f   0x003f  #QUESTION MARK
+0x40   0x0040  #COMMERCIAL AT
+0x41   0x0041  #LATIN CAPITAL LETTER A
+0x42   0x0042  #LATIN CAPITAL LETTER B
+0x43   0x0043  #LATIN CAPITAL LETTER C
+0x44   0x0044  #LATIN CAPITAL LETTER D
+0x45   0x0045  #LATIN CAPITAL LETTER E
+0x46   0x0046  #LATIN CAPITAL LETTER F
+0x47   0x0047  #LATIN CAPITAL LETTER G
+0x48   0x0048  #LATIN CAPITAL LETTER H
+0x49   0x0049  #LATIN CAPITAL LETTER I
+0x4a   0x004a  #LATIN CAPITAL LETTER J
+0x4b   0x004b  #LATIN CAPITAL LETTER K
+0x4c   0x004c  #LATIN CAPITAL LETTER L
+0x4d   0x004d  #LATIN CAPITAL LETTER M
+0x4e   0x004e  #LATIN CAPITAL LETTER N
+0x4f   0x004f  #LATIN CAPITAL LETTER O
+0x50   0x0050  #LATIN CAPITAL LETTER P
+0x51   0x0051  #LATIN CAPITAL LETTER Q
+0x52   0x0052  #LATIN CAPITAL LETTER R
+0x53   0x0053  #LATIN CAPITAL LETTER S
+0x54   0x0054  #LATIN CAPITAL LETTER T
+0x55   0x0055  #LATIN CAPITAL LETTER U
+0x56   0x0056  #LATIN CAPITAL LETTER V
+0x57   0x0057  #LATIN CAPITAL LETTER W
+0x58   0x0058  #LATIN CAPITAL LETTER X
+0x59   0x0059  #LATIN CAPITAL LETTER Y
+0x5a   0x005a  #LATIN CAPITAL LETTER Z
+0x5b   0x005b  #LEFT SQUARE BRACKET
+0x5c   0x005c  #REVERSE SOLIDUS
+0x5d   0x005d  #RIGHT SQUARE BRACKET
+0x5e   0x005e  #CIRCUMFLEX ACCENT
+0x5f   0x005f  #LOW LINE
+0x60   0x0060  #GRAVE ACCENT
+0x61   0x0061  #LATIN SMALL LETTER A
+0x62   0x0062  #LATIN SMALL LETTER B
+0x63   0x0063  #LATIN SMALL LETTER C
+0x64   0x0064  #LATIN SMALL LETTER D
+0x65   0x0065  #LATIN SMALL LETTER E
+0x66   0x0066  #LATIN SMALL LETTER F
+0x67   0x0067  #LATIN SMALL LETTER G
+0x68   0x0068  #LATIN SMALL LETTER H
+0x69   0x0069  #LATIN SMALL LETTER I
+0x6a   0x006a  #LATIN SMALL LETTER J
+0x6b   0x006b  #LATIN SMALL LETTER K
+0x6c   0x006c  #LATIN SMALL LETTER L
+0x6d   0x006d  #LATIN SMALL LETTER M
+0x6e   0x006e  #LATIN SMALL LETTER N
+0x6f   0x006f  #LATIN SMALL LETTER O
+0x70   0x0070  #LATIN SMALL LETTER P
+0x71   0x0071  #LATIN SMALL LETTER Q
+0x72   0x0072  #LATIN SMALL LETTER R
+0x73   0x0073  #LATIN SMALL LETTER S
+0x74   0x0074  #LATIN SMALL LETTER T
+0x75   0x0075  #LATIN SMALL LETTER U
+0x76   0x0076  #LATIN SMALL LETTER V
+0x77   0x0077  #LATIN SMALL LETTER W
+0x78   0x0078  #LATIN SMALL LETTER X
+0x79   0x0079  #LATIN SMALL LETTER Y
+0x7a   0x007a  #LATIN SMALL LETTER Z
+0x7b   0x007b  #LEFT CURLY BRACKET
+0x7c   0x007c  #VERTICAL LINE
+0x7d   0x007d  #RIGHT CURLY BRACKET
+0x7e   0x007e  #TILDE
+0x7f   0x007f  #DELETE
+0x80   0x00c7  #LATIN CAPITAL LETTER C WITH CEDILLA
+0x81   0x00fc  #LATIN SMALL LETTER U WITH DIAERESIS
+0x82   0x00e9  #LATIN SMALL LETTER E WITH ACUTE
+0x83   0x00e2  #LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x84   0x00e4  #LATIN SMALL LETTER A WITH DIAERESIS
+0x85   0x00e0  #LATIN SMALL LETTER A WITH GRAVE
+0x86   0x00e5  #LATIN SMALL LETTER A WITH RING ABOVE
+0x87   0x00e7  #LATIN SMALL LETTER C WITH CEDILLA
+0x88   0x00ea  #LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x89   0x00eb  #LATIN SMALL LETTER E WITH DIAERESIS
+0x8a   0x00e8  #LATIN SMALL LETTER E WITH GRAVE
+0x8b   0x00ef  #LATIN SMALL LETTER I WITH DIAERESIS
+0x8c   0x00ee  #LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x8d   0x00ec  #LATIN SMALL LETTER I WITH GRAVE
+0x8e   0x00c4  #LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8f   0x00c5  #LATIN CAPITAL LETTER A WITH RING ABOVE
+0x90   0x00c9  #LATIN CAPITAL LETTER E WITH ACUTE
+0x91   0x00e6  #LATIN SMALL LIGATURE AE
+0x92   0x00c6  #LATIN CAPITAL LIGATURE AE
+0x93   0x00f4  #LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94   0x00f6  #LATIN SMALL LETTER O WITH DIAERESIS
+0x95   0x00f2  #LATIN SMALL LETTER O WITH GRAVE
+0x96   0x00fb  #LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x97   0x00f9  #LATIN SMALL LETTER U WITH GRAVE
+0x98   0x00ff  #LATIN SMALL LETTER Y WITH DIAERESIS
+0x99   0x00d6  #LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9a   0x00dc  #LATIN CAPITAL LETTER U WITH DIAERESIS
+0x9b   0x00f8  #LATIN SMALL LETTER O WITH STROKE
+0x9c   0x00a3  #POUND SIGN
+0x9d   0x00d8  #LATIN CAPITAL LETTER O WITH STROKE
+0x9e   0x00d7  #MULTIPLICATION SIGN
+0x9f   0x0192  #LATIN SMALL LETTER F WITH HOOK
+0xa0   0x00e1  #LATIN SMALL LETTER A WITH ACUTE
+0xa1   0x00ed  #LATIN SMALL LETTER I WITH ACUTE
+0xa2   0x00f3  #LATIN SMALL LETTER O WITH ACUTE
+0xa3   0x00fa  #LATIN SMALL LETTER U WITH ACUTE
+0xa4   0x00f1  #LATIN SMALL LETTER N WITH TILDE
+0xa5   0x00d1  #LATIN CAPITAL LETTER N WITH TILDE
+0xa6   0x00aa  #FEMININE ORDINAL INDICATOR
+0xa7   0x00ba  #MASCULINE ORDINAL INDICATOR
+0xa8   0x00bf  #INVERTED QUESTION MARK
+0xa9   0x00ae  #REGISTERED SIGN
+0xaa   0x00ac  #NOT SIGN
+0xab   0x00bd  #VULGAR FRACTION ONE HALF
+0xac   0x00bc  #VULGAR FRACTION ONE QUARTER
+0xad   0x00a1  #INVERTED EXCLAMATION MARK
+0xae   0x00ab  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xaf   0x00bb  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xb0   0x2591  #LIGHT SHADE
+0xb1   0x2592  #MEDIUM SHADE
+0xb2   0x2593  #DARK SHADE
+0xb3   0x2502  #BOX DRAWINGS LIGHT VERTICAL
+0xb4   0x2524  #BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   0x00c1  #LATIN CAPITAL LETTER A WITH ACUTE
+0xb6   0x00c2  #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xb7   0x00c0  #LATIN CAPITAL LETTER A WITH GRAVE
+0xb8   0x00a9  #COPYRIGHT SIGN
+0xb9   0x2563  #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   0x2551  #BOX DRAWINGS DOUBLE VERTICAL
+0xbb   0x2557  #BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   0x255d  #BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   0x00a2  #CENT SIGN
+0xbe   0x00a5  #YEN SIGN
+0xbf   0x2510  #BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   0x2514  #BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   0x2534  #BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   0x252c  #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   0x251c  #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   0x2500  #BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   0x253c  #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   0x00e3  #LATIN SMALL LETTER A WITH TILDE
+0xc7   0x00c3  #LATIN CAPITAL LETTER A WITH TILDE
+0xc8   0x255a  #BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   0x2554  #BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   0x2569  #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   0x2566  #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   0x2560  #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   0x2550  #BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   0x256c  #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   0x00a4  #CURRENCY SIGN
+0xd0   0x00f0  #LATIN SMALL LETTER ETH
+0xd1   0x00d0  #LATIN CAPITAL LETTER ETH
+0xd2   0x00ca  #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xd3   0x00cb  #LATIN CAPITAL LETTER E WITH DIAERESIS
+0xd4   0x00c8  #LATIN CAPITAL LETTER E WITH GRAVE
+0xd5   0x0131  #LATIN SMALL LETTER DOTLESS I
+0xd6   0x00cd  #LATIN CAPITAL LETTER I WITH ACUTE
+0xd7   0x00ce  #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xd8   0x00cf  #LATIN CAPITAL LETTER I WITH DIAERESIS
+0xd9   0x2518  #BOX DRAWINGS LIGHT UP AND LEFT
+0xda   0x250c  #BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   0x2588  #FULL BLOCK
+0xdc   0x2584  #LOWER HALF BLOCK
+0xdd   0x00a6  #BROKEN BAR
+0xde   0x00cc  #LATIN CAPITAL LETTER I WITH GRAVE
+0xdf   0x2580  #UPPER HALF BLOCK
+0xe0   0x00d3  #LATIN CAPITAL LETTER O WITH ACUTE
+0xe1   0x00df  #LATIN SMALL LETTER SHARP S
+0xe2   0x00d4  #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xe3   0x00d2  #LATIN CAPITAL LETTER O WITH GRAVE
+0xe4   0x00f5  #LATIN SMALL LETTER O WITH TILDE
+0xe5   0x00d5  #LATIN CAPITAL LETTER O WITH TILDE
+0xe6   0x00b5  #MICRO SIGN
+0xe7   0x00fe  #LATIN SMALL LETTER THORN
+0xe8   0x00de  #LATIN CAPITAL LETTER THORN
+0xe9   0x00da  #LATIN CAPITAL LETTER U WITH ACUTE
+0xea   0x00db  #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xeb   0x00d9  #LATIN CAPITAL LETTER U WITH GRAVE
+0xec   0x00fd  #LATIN SMALL LETTER Y WITH ACUTE
+0xed   0x00dd  #LATIN CAPITAL LETTER Y WITH ACUTE
+0xee   0x00af  #MACRON
+0xef   0x00b4  #ACUTE ACCENT
+0xf0   0x00ad  #SOFT HYPHEN
+0xf1   0x00b1  #PLUS-MINUS SIGN
+0xf2   0x2017  #DOUBLE LOW LINE
+0xf3   0x00be  #VULGAR FRACTION THREE QUARTERS
+0xf4   0x00b6  #PILCROW SIGN
+0xf5   0x00a7  #SECTION SIGN
+0xf6   0x00f7  #DIVISION SIGN
+0xf7   0x00b8  #CEDILLA
+0xf8   0x00b0  #DEGREE SIGN
+0xf9   0x00a8  #DIAERESIS
+0xfa   0x00b7  #MIDDLE DOT
+0xfb   0x00b9  #SUPERSCRIPT ONE
+0xfc   0x00b3  #SUPERSCRIPT THREE
+0xfd   0x00b2  #SUPERSCRIPT TWO
+0xfe   0x25a0  #BLACK SQUARE
+0xff   0x00a0  #NO-BREAK SPACE