about summary refs log tree commit diff
path: root/REORG.TODO/localedata/tests
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /REORG.TODO/localedata/tests
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.tar.gz
glibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.tar.xz
glibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'REORG.TODO/localedata/tests')
-rw-r--r--REORG.TODO/localedata/tests/test1.cm82
-rw-r--r--REORG.TODO/localedata/tests/test1.def9
-rw-r--r--REORG.TODO/localedata/tests/test2.cm82
-rw-r--r--REORG.TODO/localedata/tests/test2.def9
-rw-r--r--REORG.TODO/localedata/tests/test3.cm82
-rw-r--r--REORG.TODO/localedata/tests/test3.def9
-rw-r--r--REORG.TODO/localedata/tests/test4.cm87
-rw-r--r--REORG.TODO/localedata/tests/test4.def7
-rw-r--r--REORG.TODO/localedata/tests/test5.cm89
-rw-r--r--REORG.TODO/localedata/tests/test5.def36
-rw-r--r--REORG.TODO/localedata/tests/test5.ds24
-rw-r--r--REORG.TODO/localedata/tests/test6.c137
-rw-r--r--REORG.TODO/localedata/tests/test6.cm93
-rw-r--r--REORG.TODO/localedata/tests/test6.def20
-rw-r--r--REORG.TODO/localedata/tests/test6.ds113
-rw-r--r--REORG.TODO/localedata/tests/test7.cm86
-rw-r--r--REORG.TODO/localedata/tests/test7.def25
-rw-r--r--REORG.TODO/localedata/tests/trans.def161
18 files changed, 1151 insertions, 0 deletions
diff --git a/REORG.TODO/localedata/tests/test1.cm b/REORG.TODO/localedata/tests/test1.cm
new file mode 100644
index 0000000000..b1bc5efb52
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test1.cm
@@ -0,0 +1,82 @@
+<code_set_name> BIG5
+<comment_char> %
+<escape_char> /
+<mb_cur_max>  2
+<mb_cur_min>  1
+CHARMAP
+<A>                    /x41
+<B>                    /x42
+<C>                    /x43
+<D>                    /x44
+<E>                    /x45
+<F>                    /x46
+<G>                    /x47
+<H>                    /x48
+<I>                    /x49
+<J>                    /x4A
+<K>                    /x4B
+<L>                    /x4C
+<M>                    /x4D
+<N>                    /x4E
+<O>                    /x4F
+<P>                    /x50
+<Q>                    /x51
+<R>                    /x52
+<S>                    /x53
+<T>                    /x54
+<U>                    /x55
+<V>                    /x56
+<W>                    /x57
+<X>                    /x58
+<Y>                    /x59
+<Z>                    /x5A
+
+<a>                    /x61
+<b>                    /x62
+<c>                    /x63
+<d>                    /x64
+<e>                    /x65
+<f>                    /x66
+<g>                    /x67
+<h>                    /x68
+<i>                    /x69
+<j>                    /x6a
+<k>                    /x6b
+<l>                    /x6c
+<m>                    /x6d
+<n>                    /x6e
+<o>                    /x6f
+<p>                    /x70
+<q>                    /x71
+<r>                    /x72
+<s>                    /x73
+<t>                    /x74
+<u>                    /x75
+<v>                    /x76
+<w>                    /x77
+<x>                    /x78
+<y>                    /x79
+<z>                    /x7a
+<SP>			/x20
+<space>			/x20
+<0>                    /x30
+<1>                    /x31
+<2>                    /x32
+<3>                    /x33
+<4>                    /x34
+<5>                    /x35
+<6>                    /x36
+<7>                    /x37
+<8>                    /x38
+<9>                    /x39
+
+<period>               /x2e
+<colon>                /x3a
+<percent-sign>         /x25
+<slash>                /x2f
+<circumflex>           /x5e
+<left-square-bracket>  /x5b
+<right-square-bracket> /x5d
+
+<B1>...<B3>	/xa1/x40
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test1.def b/REORG.TODO/localedata/tests/test1.def
new file mode 100644
index 0000000000..53a7bbcd9d
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test1.def
@@ -0,0 +1,9 @@
+LC_CTYPE
+
+upper	<A>
+lower   <a>
+space	<SP>
+blank	<SP>
+alpha	<A>;<a>;<b1>..<b3>
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test2.cm b/REORG.TODO/localedata/tests/test2.cm
new file mode 100644
index 0000000000..4a4d8c2665
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test2.cm
@@ -0,0 +1,82 @@
+<code_set_name> BIG5
+<comment_char> %
+<escape_char> /
+<mb_cur_max>  2
+<mb_cur_min>  1
+CHARMAP
+<A>                    /x41
+<B>                    /x42
+<C>                    /x43
+<D>                    /x44
+<E>                    /x45
+<F>                    /x46
+<G>                    /x47
+<H>                    /x48
+<I>                    /x49
+<J>                    /x4A
+<K>                    /x4B
+<L>                    /x4C
+<M>                    /x4D
+<N>                    /x4E
+<O>                    /x4F
+<P>                    /x50
+<Q>                    /x51
+<R>                    /x52
+<S>                    /x53
+<T>                    /x54
+<U>                    /x55
+<V>                    /x56
+<W>                    /x57
+<X>                    /x58
+<Y>                    /x59
+<Z>                    /x5A
+
+<a>                    /x61
+<b>                    /x62
+<c>                    /x63
+<d>                    /x64
+<e>                    /x65
+<f>                    /x66
+<g>                    /x67
+<h>                    /x68
+<i>                    /x69
+<j>                    /x6a
+<k>                    /x6b
+<l>                    /x6c
+<m>                    /x6d
+<n>                    /x6e
+<o>                    /x6f
+<p>                    /x70
+<q>                    /x71
+<r>                    /x72
+<s>                    /x73
+<t>                    /x74
+<u>                    /x75
+<v>                    /x76
+<w>                    /x77
+<x>                    /x78
+<y>                    /x79
+<z>                    /x7a
+<SP>			/x20
+<space>			/x20
+<0>                    /x30
+<1>                    /x31
+<2>                    /x32
+<3>                    /x33
+<4>                    /x34
+<5>                    /x35
+<6>                    /x36
+<7>                    /x37
+<8>                    /x38
+<9>                    /x39
+
+<period>               /x2e
+<colon>                /x3a
+<percent-sign>         /x25
+<slash>                /x2f
+<circumflex>           /x5e
+<left-square-bracket>  /x5b
+<right-square-bracket> /x5d
+
+<b01>...<b03>	/xa1/x40
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test2.def b/REORG.TODO/localedata/tests/test2.def
new file mode 100644
index 0000000000..9d252d7403
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test2.def
@@ -0,0 +1,9 @@
+LC_CTYPE
+
+upper	<A>
+lower   <a>
+space	<SP>
+blank	<SP>
+alpha	<A>;<a>;<b01>..<b03>
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test3.cm b/REORG.TODO/localedata/tests/test3.cm
new file mode 100644
index 0000000000..10cd02001c
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test3.cm
@@ -0,0 +1,82 @@
+<code_set_name> BIG5
+<comment_char> %
+<escape_char> /
+<mb_cur_max>  2
+<mb_cur_min>  1
+CHARMAP
+<A>                    /x41
+<B>                    /x42
+<C>                    /x43
+<D>                    /x44
+<E>                    /x45
+<F>                    /x46
+<G>                    /x47
+<H>                    /x48
+<I>                    /x49
+<J>                    /x4A
+<K>                    /x4B
+<L>                    /x4C
+<M>                    /x4D
+<N>                    /x4E
+<O>                    /x4F
+<P>                    /x50
+<Q>                    /x51
+<R>                    /x52
+<S>                    /x53
+<T>                    /x54
+<U>                    /x55
+<V>                    /x56
+<W>                    /x57
+<X>                    /x58
+<Y>                    /x59
+<Z>                    /x5A
+
+<a>                    /x61
+<b>                    /x62
+<c>                    /x63
+<d>                    /x64
+<e>                    /x65
+<f>                    /x66
+<g>                    /x67
+<h>                    /x68
+<i>                    /x69
+<j>                    /x6a
+<k>                    /x6b
+<l>                    /x6c
+<m>                    /x6d
+<n>                    /x6e
+<o>                    /x6f
+<p>                    /x70
+<q>                    /x71
+<r>                    /x72
+<s>                    /x73
+<t>                    /x74
+<u>                    /x75
+<v>                    /x76
+<w>                    /x77
+<x>                    /x78
+<y>                    /x79
+<z>                    /x7a
+<SP>			/x20
+<space>			/x20
+<0>                    /x30
+<1>                    /x31
+<2>                    /x32
+<3>                    /x33
+<4>                    /x34
+<5>                    /x35
+<6>                    /x36
+<7>                    /x37
+<8>                    /x38
+<9>                    /x39
+
+<period>               /x2e
+<colon>                /x3a
+<percent-sign>         /x25
+<slash>                /x2f
+<circumflex>           /x5e
+<left-square-bracket>  /x5b
+<right-square-bracket> /x5d
+
+<b1>...<b3>	/xa1/x40
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test3.def b/REORG.TODO/localedata/tests/test3.def
new file mode 100644
index 0000000000..53a7bbcd9d
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test3.def
@@ -0,0 +1,9 @@
+LC_CTYPE
+
+upper	<A>
+lower   <a>
+space	<SP>
+blank	<SP>
+alpha	<A>;<a>;<b1>..<b3>
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test4.cm b/REORG.TODO/localedata/tests/test4.cm
new file mode 100644
index 0000000000..1445597606
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test4.cm
@@ -0,0 +1,87 @@
+<code_set_name> BIG5
+<escape_char> /
+<mb_cur_max>  2
+<mb_cur_min>  1
+CHARMAP
+<b0101>...<b0103>       /xa1/x40
+<B0101>...<B0103>       /xa1/xa1
+<b0901>...<b0903>       /xa1/x40
+<B0901>...<B0903>       /xa1/xa1
+<b1001>...<b1003>       /xaa/x40
+<B1001>...<B1003>       /xaa/xa1
+
+<A>                    /x41
+<B>                    /x42
+<C>                    /x43
+<D>                    /x44
+<E>                    /x45
+<F>                    /x46
+<G>                    /x47
+<H>                    /x48
+<I>                    /x49
+<J>                    /x4A
+<K>                    /x4B
+<L>                    /x4C
+<M>                    /x4D
+<N>                    /x4E
+<O>                    /x4F
+<P>                    /x50
+<Q>                    /x51
+<R>                    /x52
+<S>                    /x53
+<T>                    /x54
+<U>                    /x55
+<V>                    /x56
+<W>                    /x57
+<X>                    /x58
+<Y>                    /x59
+<Z>                    /x5A
+
+<a>                    /x61
+<b>                    /x62
+<c>                    /x63
+<d>                    /x64
+<e>                    /x65
+<f>                    /x66
+<g>                    /x67
+<h>                    /x68
+<i>                    /x69
+<j>                    /x6a
+<k>                    /x6b
+<l>                    /x6c
+<m>                    /x6d
+<n>                    /x6e
+<o>                    /x6f
+<p>                    /x70
+<q>                    /x71
+<r>                    /x72
+<s>                    /x73
+<t>                    /x74
+<u>                    /x75
+<v>                    /x76
+<w>                    /x77
+<x>                    /x78
+<y>                    /x79
+<z>                    /x7a
+<SP>			/x20
+<space>			/x20
+<0>                    /x30
+<1>                    /x31
+<2>                    /x32
+<3>                    /x33
+<4>                    /x34
+<5>                    /x35
+<6>                    /x36
+<7>                    /x37
+<8>                    /x38
+<9>                    /x39
+
+<period>               /x2e
+<colon>                /x3a
+<percent-sign>         /x25
+<slash>                /x2f
+<circumflex>           /x5e
+<left-square-bracket>  /x5b
+<right-square-bracket> /x5d
+
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test4.def b/REORG.TODO/localedata/tests/test4.def
new file mode 100644
index 0000000000..3d96d3a88f
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test4.def
@@ -0,0 +1,7 @@
+LC_COLLATE
+order_start forward
+<b1001>
+<B1001>
+UNDEFINED       IGNORE
+order_end
+END LC_COLLATE
diff --git a/REORG.TODO/localedata/tests/test5.cm b/REORG.TODO/localedata/tests/test5.cm
new file mode 100644
index 0000000000..bb7b3605b1
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test5.cm
@@ -0,0 +1,89 @@
+<code_set_name> test5
+<comment_char> %
+<escape_char> /
+<mb_cur_max> 2
+<mb_cur_min> 1
+CHARMAP
+<k0101>...<k0194>       /xa1/xa1
+<k0201>...<k0294>       /xa2/xa1
+<k1601>...<k1694>       /xa3/xa1
+<k1701>...<k1794>       /xa4/xa1
+<k4001>...<k4094>       /xa5/xa1
+<k5001>...<k5094>       /xa6/xa1
+<k6001>...<k6094>       /xa7/xa1
+
+<A>                    /x41
+<B>                    /x42
+<C>                    /x43
+<D>                    /x44
+<E>                    /x45
+<F>                    /x46
+<G>                    /x47
+<H>                    /x48
+<I>                    /x49
+<J>                    /x4A
+<K>                    /x4B
+<L>                    /x4C
+<M>                    /x4D
+<N>                    /x4E
+<O>                    /x4F
+<P>                    /x50
+<Q>                    /x51
+<R>                    /x52
+<S>                    /x53
+<T>                    /x54
+<U>                    /x55
+<V>                    /x56
+<W>                    /x57
+<X>                    /x58
+<Y>                    /x59
+<Z>                    /x5A
+
+<a>                    /x61
+<b>                    /x62
+<c>                    /x63
+<d>                    /x64
+<e>                    /x65
+<f>                    /x66
+<g>                    /x67
+<h>                    /x68
+<i>                    /x69
+<j>                    /x6a
+<k>                    /x6b
+<l>                    /x6c
+<m>                    /x6d
+<n>                    /x6e
+<o>                    /x6f
+<p>                    /x70
+<q>                    /x71
+<r>                    /x72
+<s>                    /x73
+<t>                    /x74
+<u>                    /x75
+<v>                    /x76
+<w>                    /x77
+<x>                    /x78
+<y>                    /x79
+<z>                    /x7a
+<SP>			/x20
+<space>			/x20
+<0>                    /x30
+<1>                    /x31
+<2>                    /x32
+<3>                    /x33
+<4>                    /x34
+<5>                    /x35
+<6>                    /x36
+<7>                    /x37
+<8>                    /x38
+<9>                    /x39
+
+<period>               /x2e
+<colon>                /x3a
+<percent-sign>         /x25
+<slash>                /x2f
+<circumflex>           /x5e
+<left-square-bracket>  /x5b
+<right-square-bracket> /x5d
+
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test5.def b/REORG.TODO/localedata/tests/test5.def
new file mode 100644
index 0000000000..c009033bb9
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test5.def
@@ -0,0 +1,36 @@
+escape_char /
+comment_char %
+
+LC_TIME
+
+abday    "<k0101><k0102><k0103>";"<k0101><k0102><k0103>";/
+         "<k4001><k4002><k4003>";"<k4001><k4002><k4003>";/
+         "<k5001><k5002><k5003>";"<k5001><k5002><k5003>";/
+         "<k6001><k6002><k6003>"
+day      "<k6001><k6002><k6003>";/
+         "<k6001><k6002><k6003>";/
+         "<k6001><k6002><k6003>";/
+         "<k6001><k6002><k6003>";/
+         "<k6001><k6002><k6003>";/
+         "<k6001><k6002><k6003>";/
+         "<k6001><k6002><k6003>"
+abmon    "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>"
+mon    "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>";/
+        "<k6001>";"<k6001>"
+
+d_t_fmt ""
+d_fmt   ""
+t_fmt   ""
+am_pm   "<k6001><k5002>";"<k5002><k4036>"
+t_fmt_ampm ""
+
+END LC_TIME
diff --git a/REORG.TODO/localedata/tests/test5.ds b/REORG.TODO/localedata/tests/test5.ds
new file mode 100644
index 0000000000..261e1eb126
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test5.ds
@@ -0,0 +1,24 @@
+escape_char /
+<k0101>		<UAC00>
+<k0102>		<UAC01>
+<k0103>		<UAC02>
+<k4001>		<U2170>
+<k4002>		<U2171>
+<k4003>		<U2172>
+<k4036>		<U0394>
+<k5001>		<U2500>
+<k5002>		<U2502>
+<k5003>		<U250C>
+<k6001>		<U3395>
+<k6002>		<U3396>
+<k6003>		<U3397>
+<0>		<U0030>
+<1>		<U0031>
+<2>		<U0032>
+<3>		<U0033>
+<4>		<U0034>
+<5>		<U0035>
+<6>		<U0036>
+<7>		<U0037>
+<8>		<U0038>
+<9>		<U0039>
diff --git a/REORG.TODO/localedata/tests/test6.c b/REORG.TODO/localedata/tests/test6.c
new file mode 100644
index 0000000000..b43f62dfa7
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.c
@@ -0,0 +1,137 @@
+/* Test program for character classes and mappings.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ctype.h>
+#include <locale.h>
+#include <wchar.h>
+
+
+int
+main (void)
+{
+  const char lower[] = "abcdefghijklmnopqrstuvwxyz";
+  const char upper[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+#define LEN (sizeof (upper) - 1)
+  const wchar_t wlower[] = L"abcdefghijklmnopqrstuvwxyz";
+  const wchar_t wupper[] = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+  int i;
+  int result = 0;
+
+  setlocale (LC_ALL, "test6");
+
+  for (i = 0; i < LEN; ++i)
+    {
+      /* Test basic table handling (basic == not more than 256 characters).
+	 The charmaps swaps the normal lower-upper case meaning of the
+	 ASCII characters used in the source code while the Unicode mapping
+	 in the repertoire map has the normal correspondents.  This test
+	 shows the independence of the tables for `char' and `wchar_t'
+	 characters.  */
+
+      if (islower (lower[i]))
+	{
+	  printf ("islower ('%c') false\n", lower[i]);
+	  result = 1;
+	}
+      if (! isupper (lower[i]))
+	{
+	  printf ("isupper ('%c') false\n", lower[i]);
+	  result = 1;
+	}
+
+      if (! islower (upper[i]))
+	{
+	  printf ("islower ('%c') false\n", upper[i]);
+	  result = 1;
+	}
+      if (isupper (upper[i]))
+	{
+	  printf ("isupper ('%c') false\n", upper[i]);
+	  result = 1;
+	}
+
+      if (toupper (lower[i]) != lower[i])
+	{
+	  printf ("toupper ('%c') false\n", lower[i]);
+	  result = 1;
+	}
+      if (tolower (lower[i]) != upper[i])
+	{
+	  printf ("tolower ('%c') false\n", lower[i]);
+	  result = 1;
+	}
+
+      if (tolower (upper[i]) != upper[i])
+	{
+	  printf ("tolower ('%c') false\n", upper[i]);
+	  result = 1;
+	}
+      if (toupper (upper[i]) != lower[i])
+	{
+	  printf ("toupper ('%c') false\n", upper[i]);
+	  result = 1;
+	}
+
+      if (iswlower (wupper[i]))
+	{
+	  printf ("iswlower (L'%c') false\n", upper[i]);
+	  result = 1;
+	}
+      if (! iswupper (wupper[i]))
+	{
+	  printf ("iswupper (L'%c') false\n", upper[i]);
+	  result = 1;
+	}
+
+      if (iswupper (wlower[i]))
+	{
+	  printf ("iswupper (L'%c') false\n", lower[i]);
+	  result = 1;
+	}
+      if (! iswlower (wlower[i]))
+	{
+	  printf ("iswlower (L'%c') false\n", lower[i]);
+	  result = 1;
+	}
+
+      if (towupper (wlower[i]) != wupper[i])
+	{
+	  printf ("towupper ('%c') false\n", lower[i]);
+	  result = 1;
+	}
+      if (towlower (wlower[i]) != wlower[i])
+	{
+	  printf ("towlower ('%c') false\n", lower[i]);
+	  result = 1;
+	}
+
+      if (towlower (wupper[i]) != wlower[i])
+	{
+	  printf ("towlower ('%c') false\n", upper[i]);
+	  result = 1;
+	}
+      if (towupper (wupper[i]) != wupper[i])
+	{
+	  printf ("towupper ('%c') false\n", upper[i]);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
diff --git a/REORG.TODO/localedata/tests/test6.cm b/REORG.TODO/localedata/tests/test6.cm
new file mode 100644
index 0000000000..3711495d86
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.cm
@@ -0,0 +1,93 @@
+<code_set_name> test6
+
+CHARMAP
+<tab>                  \x09
+<newline>              \x0A
+<vertical-tab>         \x0B
+<form-feed>            \x0C
+<carriage-return>      \x0D
+<SP>                   \x20
+<space>                \x20
+<!>                    \x21
+<">                    \x22
+<%>                    \x25
+<&>                    \x26
+<'>                    \x27
+<(>                    \x28
+<)>                    \x29
+<*>                    \x2A
+<+>                    \x2B
+<,>                    \x2C
+<->                    \x2D
+<.>                    \x2E
+<\\>                   \x2F
+<0>                    \x30
+<1>                    \x31
+<2>                    \x32
+<3>                    \x33
+<4>                    \x34
+<5>                    \x35
+<6>                    \x36
+<7>                    \x37
+<8>                    \x38
+<9>                    \x39
+<:>                    \x3A
+<;>                    \x3B
+<<>                    \x3C
+<=>                    \x3D
+<\>>                   \x3E
+<?>                    \x3F
+<a>                    \x41
+<b>                    \x42
+<c>                    \x43
+<d>                    \x44
+<e>                    \x45
+<f>                    \x46
+<g>                    \x47
+<h>                    \x48
+<i>                    \x49
+<j>                    \x4A
+<k>                    \x4B
+<l>                    \x4C
+<m>                    \x4D
+<n>                    \x4E
+<o>                    \x4F
+<p>                    \x50
+<q>                    \x51
+<r>                    \x52
+<s>                    \x53
+<t>                    \x54
+<u>                    \x55
+<v>                    \x56
+<w>                    \x57
+<x>                    \x58
+<y>                    \x59
+<z>                    \x5A
+<_>                    \x5F
+<A>                    \x61
+<B>                    \x62
+<C>                    \x63
+<D>                    \x64
+<E>                    \x65
+<F>                    \x66
+<G>                    \x67
+<H>                    \x68
+<I>                    \x69
+<J>                    \x6A
+<K>                    \x6B
+<L>                    \x6C
+<M>                    \x6D
+<N>                    \x6E
+<O>                    \x6F
+<P>                    \x70
+<Q>                    \x71
+<R>                    \x72
+<S>                    \x73
+<T>                    \x74
+<U>                    \x75
+<V>                    \x76
+<W>                    \x77
+<X>                    \x78
+<Y>                    \x79
+<Z>                    \x7A
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test6.def b/REORG.TODO/localedata/tests/test6.def
new file mode 100644
index 0000000000..f8f88b3296
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.def
@@ -0,0 +1,20 @@
+LC_CTYPE
+
+lower <a>;<b>;<c>;<d>;<e>;<f>;<g>;<h>;<i>;<j>;<k>;<l>;<m>;<n>;<o>;<p>;<q>; \
+      <r>;<s>;<t>;<u>;<v>;<w>;<x>;<y>;<z>
+upper <A>;<B>;<C>;<D>;<E>;<F>;<G>;<H>;<I>;<J>;<K>;<L>;<M>;<N>;<O>;<P>;<Q>; \
+      <R>;<S>;<T>;<U>;<V>;<W>;<X>;<Y>;<Z>
+
+tolower (<A>,<a>);(<B>,<b>);(<C>,<c>);(<D>,<d>);(<E>,<e>);(<F>,<f>); \
+        (<G>,<g>);(<H>,<h>);(<I>,<i>);(<J>,<j>);(<K>,<k>);(<L>,<l>); \
+        (<M>,<m>);(<N>,<n>);(<O>,<o>);(<P>,<p>);(<Q>,<q>);(<R>,<r>); \
+        (<S>,<s>);(<T>,<t>);(<U>,<u>);(<V>,<v>);(<W>,<w>);(<X>,<x>); \
+        (<Y>,<y>);(<Z>,<z>)
+
+toupper (<a>,<A>);(<b>,<B>);(<c>,<C>);(<d>,<D>);(<e>,<E>);(<f>,<F>); \
+        (<g>,<G>);(<h>,<H>);(<i>,<I>);(<j>,<J>);(<k>,<K>);(<l>,<L>); \
+        (<m>,<M>);(<n>,<N>);(<o>,<O>);(<p>,<P>);(<q>,<Q>);(<r>,<R>); \
+        (<s>,<S>);(<t>,<T>);(<u>,<U>);(<v>,<V>);(<w>,<W>);(<x>,<X>); \
+        (<y>,<Y>);(<z>,<Z>)
+
+END LC_CTYPE
diff --git a/REORG.TODO/localedata/tests/test6.ds b/REORG.TODO/localedata/tests/test6.ds
new file mode 100644
index 0000000000..bb1218569d
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test6.ds
@@ -0,0 +1,113 @@
+<tab>                  <U0009> HORIZONTAL TABULATION
+<newline>              <U000A> LINE FEED
+<vertical-tab>         <U000B> VERTICAL TABULATION
+<form-feed>            <U000C> FORM FEED
+<carriage-return>      <U000D> CARRIAGE RETURN
+<SP>                   <U0020> SPACE
+<space>                <U0020> SPACE
+<!>                    <U0021> EXCLAMATION MARK
+<">                    <U0022> QUOTATION MARK
+<Nb>                   <U0023> NUMBER SIGN
+<DO>                   <U0024> DOLLAR SIGN
+<!S>                   <U0024> DOLLAR SIGN
+<%>                    <U0025> PERCENT SIGN
+<&>                    <U0026> AMPERSAND
+<'>                    <U0027> APOSTROPHE
+<(>                    <U0028> LEFT PARENTHESIS
+<)>                    <U0029> RIGHT PARENTHESIS
+<*>                    <U002A> ASTERISK
+<+>                    <U002B> PLUS SIGN
+<,>                    <U002C> COMMA
+<->                    <U002D> HYPHEN-MINUS
+<.>                    <U002E> FULL STOP
+</>                    <U002F> SOLIDUS
+<0>                    <U0030> DIGIT ZERO
+<1>                    <U0031> DIGIT ONE
+<2>                    <U0032> DIGIT TWO
+<3>                    <U0033> DIGIT THREE
+<4>                    <U0034> DIGIT FOUR
+<5>                    <U0035> DIGIT FIVE
+<6>                    <U0036> DIGIT SIX
+<7>                    <U0037> DIGIT SEVEN
+<8>                    <U0038> DIGIT EIGHT
+<9>                    <U0039> DIGIT NINE
+<:>                    <U003A> COLON
+<;>                    <U003B> SEMICOLON
+<<>                    <U003C> LESS-THAN SIGN
+<=>                    <U003D> EQUALS SIGN
+<\>>                   <U003E> GREATER-THAN SIGN
+<?>                    <U003F> QUESTION MARK
+<@>                    <U0040> COMMERCIAL AT
+<A>                    <U0041> LATIN CAPITAL LETTER A
+<B>                    <U0042> LATIN CAPITAL LETTER B
+<C>                    <U0043> LATIN CAPITAL LETTER C
+<D>                    <U0044> LATIN CAPITAL LETTER D
+<E>                    <U0045> LATIN CAPITAL LETTER E
+<F>                    <U0046> LATIN CAPITAL LETTER F
+<G>                    <U0047> LATIN CAPITAL LETTER G
+<H>                    <U0048> LATIN CAPITAL LETTER H
+<I>                    <U0049> LATIN CAPITAL LETTER I
+<J>                    <U004A> LATIN CAPITAL LETTER J
+<K>                    <U004B> LATIN CAPITAL LETTER K
+<L>                    <U004C> LATIN CAPITAL LETTER L
+<M>                    <U004D> LATIN CAPITAL LETTER M
+<N>                    <U004E> LATIN CAPITAL LETTER N
+<O>                    <U004F> LATIN CAPITAL LETTER O
+<P>                    <U0050> LATIN CAPITAL LETTER P
+<Q>                    <U0051> LATIN CAPITAL LETTER Q
+<R>                    <U0052> LATIN CAPITAL LETTER R
+<S>                    <U0053> LATIN CAPITAL LETTER S
+<T>                    <U0054> LATIN CAPITAL LETTER T
+<U>                    <U0055> LATIN CAPITAL LETTER U
+<V>                    <U0056> LATIN CAPITAL LETTER V
+<W>                    <U0057> LATIN CAPITAL LETTER W
+<X>                    <U0058> LATIN CAPITAL LETTER X
+<Y>                    <U0059> LATIN CAPITAL LETTER Y
+<Z>                    <U005A> LATIN CAPITAL LETTER Z
+<<(>                   <U005B> LEFT SQUARE BRACKET
+<left-square-bracket>  <U005B> LEFT SQUARE BRACKET
+<//>                 <U005C> REVERSE SOLIDUS
+<backslash>            <U005C> REVERSE SOLIDUS
+<reverse-solidus>      <U005C> REVERSE SOLIDUS
+<)\>>                  <U005D> RIGHT SQUARE BRACKET
+<right-square-bracket> <U005D> RIGHT SQUARE BRACKET
+<'\>>                  <U005E> CIRCUMFLEX ACCENT
+<circumflex>           <U005E> CIRCUMFLEX ACCENT
+<circumflex-accent>    <U005E> CIRCUMFLEX ACCENT
+<_>                    <U005F> LOW LINE
+<low-line>             <U005F> LOW LINE
+<underscore>           <U005F> LOW LINE
+<'!>                   <U0060> GRAVE ACCENT
+<grave-accent>         <U0060> GRAVE ACCENT
+<a>                    <U0061> LATIN SMALL LETTER A
+<b>                    <U0062> LATIN SMALL LETTER B
+<c>                    <U0063> LATIN SMALL LETTER C
+<d>                    <U0064> LATIN SMALL LETTER D
+<e>                    <U0065> LATIN SMALL LETTER E
+<f>                    <U0066> LATIN SMALL LETTER F
+<g>                    <U0067> LATIN SMALL LETTER G
+<h>                    <U0068> LATIN SMALL LETTER H
+<i>                    <U0069> LATIN SMALL LETTER I
+<j>                    <U006A> LATIN SMALL LETTER J
+<k>                    <U006B> LATIN SMALL LETTER K
+<l>                    <U006C> LATIN SMALL LETTER L
+<m>                    <U006D> LATIN SMALL LETTER M
+<n>                    <U006E> LATIN SMALL LETTER N
+<o>                    <U006F> LATIN SMALL LETTER O
+<p>                    <U0070> LATIN SMALL LETTER P
+<q>                    <U0071> LATIN SMALL LETTER Q
+<r>                    <U0072> LATIN SMALL LETTER R
+<s>                    <U0073> LATIN SMALL LETTER S
+<t>                    <U0074> LATIN SMALL LETTER T
+<u>                    <U0075> LATIN SMALL LETTER U
+<v>                    <U0076> LATIN SMALL LETTER V
+<w>                    <U0077> LATIN SMALL LETTER W
+<x>                    <U0078> LATIN SMALL LETTER X
+<y>                    <U0079> LATIN SMALL LETTER Y
+<z>                    <U007A> LATIN SMALL LETTER Z
+<(!>                   <U007B> LEFT CURLY BRACKET
+<!!>                   <U007C> VERTICAL LINE
+<vertical-line>        <U007C> VERTICAL LINE
+<!)>                   <U007D> RIGHT CURLY BRACKET
+<'?>                   <U007E> TILDE
+<DT>                   <U007F> DELETE
diff --git a/REORG.TODO/localedata/tests/test7.cm b/REORG.TODO/localedata/tests/test7.cm
new file mode 100644
index 0000000000..86b058dc58
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test7.cm
@@ -0,0 +1,86 @@
+<code_set_name> UTF-8
+<mb_cur_min> 1
+<mb_cur_max> 3
+
+CHARMAP
+<U0009>                \x09
+<U000A>                \x0a
+<U000B>                \x0b
+<U000C>                \x0c
+<U000D>                \x0d
+<U0020>                \x20
+<U002C>                \x2c
+<U002E>                \x2e
+<U0030>                \x30
+<U0031>                \x31
+<U0032>                \x32
+<U0033>                \x33
+<U0034>                \x34
+<U0035>                \x35
+<U0036>                \x36
+<U0037>                \x37
+<U0038>                \x38
+<U0039>                \x39
+<U0041>                \x41
+<U0042>                \x42
+<U0043>                \x43
+<U0044>                \x44
+<U0045>                \x45
+<U0046>                \x46
+<U0047>                \x47
+<U0048>                \x48
+<U0049>                \x49
+<U004A>                \x4a
+<U004B>                \x4b
+<U004C>                \x4c
+<U004D>                \x4d
+<U004E>                \x4e
+<U004F>                \x4f
+<U0050>                \x50
+<U0051>                \x51
+<U0052>                \x52
+<U0053>                \x53
+<U0054>                \x54
+<U0055>                \x55
+<U0056>                \x56
+<U0057>                \x57
+<U0058>                \x58
+<U0059>                \x59
+<U005A>                \x5a
+<U0061>                \x61
+<U0062>                \x62
+<U0063>                \x63
+<U0064>                \x64
+<U0065>                \x65
+<U0066>                \x66
+<U0067>                \x67
+<U0068>                \x68
+<U0069>                \x69
+<U006A>                \x6A
+<U006B>                \x6B
+<U006C>                \x6C
+<U006D>                \x6D
+<U006E>                \x6E
+<U006F>                \x6F
+<U0070>                \x70
+<U0071>                \x71
+<U0072>                \x72
+<U0073>                \x73
+<U0074>                \x74
+<U0075>                \x75
+<U0076>                \x76
+<U0077>                \x77
+<U0078>                \x78
+<U0079>                \x79
+<U007A>                \x7A
+<U2080>                \xe2\x82\x80
+<U2081>                \xe2\x82\x81
+<U2082>                \xe2\x82\x82
+<U2083>                \xe2\x82\x83
+<U2084>                \xe2\x82\x84
+<U2085>                \xe2\x82\x85
+<U2086>                \xe2\x82\x86
+<U2087>                \xe2\x82\x87
+<U2088>                \xe2\x82\x88
+<U2089>                \xe2\x82\x89
+END CHARMAP
diff --git a/REORG.TODO/localedata/tests/test7.def b/REORG.TODO/localedata/tests/test7.def
new file mode 100644
index 0000000000..8f43b361f6
--- /dev/null
+++ b/REORG.TODO/localedata/tests/test7.def
@@ -0,0 +1,25 @@
+LC_CTYPE
+lower <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>;<U0067>;<U0068>;\
+      <U0069>;<U006A>;<U006B>;<U006C>;<U006D>;<U006E>;<U006F>;<U0070>;\
+      <U0071>;<U0072>;<U0073>;<U0074>;<U0075>;<U0076>;<U0077>;<U0078>;\
+      <U0079>;<U007A>
+
+upper <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;<U0047>;<U0048>;\
+      <U0049>;<U004A>;<U004B>;<U004C>;<U004D>;<U004E>;<U004F>;<U0050>;\
+      <U0051>;<U0052>;<U0053>;<U0054>;<U0055>;<U0056>;<U0057>;<U0058>;\
+      <U0059>;<U005A>
+
+digit <U0030>;<U0031>;<U0032>;<U0033>;<U0034>;\
+      <U0035>;<U0036>;<U0037>;<U0038>;<U0039>;\
+      <U2080>;<U2081>;<U2082>;<U2083>;<U2084>;\
+      <U2085>;<U2086>;<U2087>;<U2088>;<U2089>
+
+outdigit <U2080>;<U2081>;<U2082>;<U2083>;<U2084>;\
+         <U2085>;<U2086>;<U2087>;<U2088>;<U2089>
+END LC_CTYPE
+
+LC_NUMERIC
+decimal_point   "<U002E>"
+thousands_sep   "<U002C>"
+grouping        3;3
+END LC_NUMERIC
diff --git a/REORG.TODO/localedata/tests/trans.def b/REORG.TODO/localedata/tests/trans.def
new file mode 100644
index 0000000000..a4d0332834
--- /dev/null
+++ b/REORG.TODO/localedata/tests/trans.def
@@ -0,0 +1,161 @@
+escape_char /
+comment_char %
+
+LC_CTYPE
+
+digit   <U0030>;<U0031>;<U0032>;<U0033>;<U0034>;/
+        <U0035>;<U0036>;<U0037>;<U0038>;<U0039>
+
+xdigit  <U0030>;<U0031>;<U0032>;<U0033>;<U0034>;/
+        <U0035>;<U0036>;<U0037>;<U0038>;<U0039>;/
+        <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;/
+        <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>
+
+blank   <U0020>;<U0009>;<U00A0>
+
+space   <U0020>;<U000A>;<U000B>;<U000C>;/
+        <U000D>;<U0009>;<U00A0>
+
+upper   <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;<U0047>;/
+        <U0048>;<U0049>;<U004A>;<U004B>;<U004C>;<U004D>;<U004E>;/
+        <U004F>;<U0050>;<U0051>;<U0052>;<U0053>;<U0054>;<U0055>;/
+        <U0056>;<U0057>;<U0058>;<U0059>;<U005A>
+
+lower   <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>;<U0067>;/
+        <U0068>;<U0069>;<U006A>;<U006B>;<U006C>;<U006D>;<U006E>;/
+        <U006F>;<U0070>;<U0071>;<U0072>;<U0073>;<U0074>;<U0075>;/
+        <U0076>;<U0077>;<U0078>;<U0079>;<U007A>
+
+alpha   <U0041>;<U0042>;<U0043>;<U0044>;<U0045>;<U0046>;<U0047>;/
+        <U0048>;<U0049>;<U004A>;<U004B>;<U004C>;<U004D>;<U004E>;/
+        <U004F>;<U0050>;<U0051>;<U0052>;<U0053>;<U0054>;<U0055>;/
+        <U0056>;<U0057>;<U0058>;<U0059>;<U005A>;<U0061>;<U0062>;/
+        <U0063>;<U0064>;<U0065>;<U0066>;<U0067>;<U0068>;<U0069>;/
+        <U006A>;<U006B>;<U006C>;<U006D>;<U006E>;<U006F>;<U0070>;/
+        <U0071>;<U0072>;<U0073>;<U0074>;<U0075>;<U0076>;<U0077>;/
+        <U0078>;<U0079>;<U007A>
+
+cntrl   <U0000>;<U0001>;<U0002>;<U0003>;<U0004>;<U0005>;/
+        <U0006>;<U0007>;<U0008>;<U0009>;<U000A>;<U000B>;/
+        <U000C>;<U000D>;<U000E>;<U000F>;<U0010>;<U0011>;/
+        <U0012>;<U0013>;<U0014>;<U0015>;<U0016>;<U0017>;/
+        <U0018>;<U0019>;<U001A>;<U001B>;<U001C>;<U001D>;/
+        <U001E>;<U001F>;<U007F>;<U0080>;<U0081>;<U0082>;/
+        <U0083>;<U0084>;<U0085>;<U0086>;<U0087>;<U0088>;/
+        <U0089>;<U008A>;<U008B>;<U008C>;<U008D>;<U008E>;/
+        <U008F>;<U0090>;<U0091>;<U0092>;<U0093>;<U0094>;/
+        <U0095>;<U0096>;<U0097>;<U0098>;<U0099>;<U009A>;/
+        <U009B>;<U009C>;<U009D>;<U009E>;<U009F>
+
+punct   <U0021>;<U0022>;<U0023>;<U0024>;<U0025>;<U0026>;<U0027>;/
+        <U0028>;<U0029>;<U002A>;<U002B>;<U002C>;<U002D>;<U002E>;/
+        <U002F>;<U003A>;<U003B>;<U003C>;<U003D>;<U003E>;<U003F>;/
+        <U0040>;<U005B>;<U005C>;<U005D>;<U005E>
+
+tolower (<U0041>,<U0061>);/
+        (<U0042>,<U0062>);/
+        (<U0043>,<U0063>);/
+        (<U0044>,<U0064>);/
+        (<U0045>,<U0065>);/
+        (<U0046>,<U0066>);/
+        (<U0047>,<U0067>);/
+        (<U0048>,<U0068>);/
+        (<U0049>,<U0069>);/
+        (<U004A>,<U006A>);/
+        (<U004B>,<U006B>);/
+        (<U004C>,<U006C>);/
+        (<U004D>,<U006D>);/
+        (<U004E>,<U006E>);/
+        (<U004F>,<U006F>);/
+        (<U0050>,<U0070>);/
+        (<U0051>,<U0071>);/
+        (<U0052>,<U0072>);/
+        (<U0053>,<U0073>);/
+        (<U0054>,<U0074>);/
+        (<U0055>,<U0075>);/
+        (<U0056>,<U0076>);/
+        (<U0057>,<U0077>);/
+        (<U0058>,<U0078>);/
+        (<U0059>,<U0079>);/
+        (<U005A>,<U007A>)
+
+toupper (<U0061>,<U0041>);/
+        (<U0062>,<U0042>);/
+        (<U0063>,<U0043>);/
+        (<U0064>,<U0044>);/
+        (<U0065>,<U0045>);/
+        (<U0066>,<U0046>);/
+        (<U0067>,<U0047>);/
+        (<U0068>,<U0048>);/
+        (<U0069>,<U0049>);/
+        (<U006A>,<U004A>);/
+        (<U006B>,<U004B>);/
+        (<U006C>,<U004C>);/
+        (<U006D>,<U004D>);/
+        (<U006E>,<U004E>);/
+        (<U006F>,<U004F>);/
+        (<U0070>,<U0050>);/
+        (<U0071>,<U0051>);/
+        (<U0072>,<U0052>);/
+        (<U0073>,<U0053>);/
+        (<U0074>,<U0054>);/
+        (<U0075>,<U0055>);/
+        (<U0076>,<U0056>);/
+        (<U0077>,<U0057>);/
+        (<U0078>,<U0058>);/
+        (<U0079>,<U0059>);/
+        (<U007A>,<U005A>)
+
+charconv test
+
+test (<U0041>,<U0042>);(<U0042>,<U0043>)
+
+outdigit <U0061>;<U0062>;<U0063>;<U0064>;<U0065>;<U0066>;<U0067>;<U0068>;<U0069>;<U006A>
+
+END LC_CTYPE
+
+LC_COLLATE
+copy "en_US"
+END LC_COLLATE
+
+LC_TIME
+copy "en_US"
+END LC_TIME
+
+LC_NUMERIC
+copy "en_US"
+END LC_NUMERIC
+
+LC_MONETARY
+copy "en_US"
+END LC_MONETARY
+
+LC_MESSAGES
+copy "en_US"
+END LC_MESSAGES
+
+LC_PAPER
+height 297
+width 210
+END LC_PAPER
+
+LC_NAME
+name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074><U0025><U006D><U0025><U0074><U0025><U0066>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025>/
+<U0025><U0073><U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025><U004E>/
+<U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025><U004E><U0025><U0063><U0025><U004E>"
+END LC_ADDRESS
+
+LC_TELEPHONE
+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+measurement    1
+END LC_MEASUREMENT
+
+LC_IDENTIFICATION
+END LC_IDENTIFICATION