]> Savannah Git Hosting - gnulib.git/commitdiff
mbrtoc32 tests: Renumber tests.
authorBruno Haible <bruno@clisp.org>
Sat, 29 Jul 2023 22:10:44 +0000 (00:10 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 29 Jul 2023 23:41:21 +0000 (01:41 +0200)
* tests/test-mbrtoc32-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbrtoc32.c: Update.
* tests/test-mbrtoc32-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6 -> 8.
* tests/test-mbrtoc32-w32.c: Update.
* modules/mbrtoc32-tests: Update.

17 files changed:
ChangeLog
modules/mbrtoc32-tests
tests/test-mbrtoc32-1.sh
tests/test-mbrtoc32-2.sh
tests/test-mbrtoc32-3.sh
tests/test-mbrtoc32-4.sh
tests/test-mbrtoc32-5.sh
tests/test-mbrtoc32-w32-1.sh [deleted file]
tests/test-mbrtoc32-w32-2.sh
tests/test-mbrtoc32-w32-3.sh
tests/test-mbrtoc32-w32-4.sh
tests/test-mbrtoc32-w32-5.sh
tests/test-mbrtoc32-w32-6.sh
tests/test-mbrtoc32-w32-7.sh
tests/test-mbrtoc32-w32-8.sh [new file with mode: 0755]
tests/test-mbrtoc32-w32.c
tests/test-mbrtoc32.c

index 1de452327f675df41188b5e80e3be26a534e8c5b..4b1a2935e8718e6b05d9b0468f4238819a7a0797 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2023-07-29  Bruno Haible  <bruno@clisp.org>
 
+       mbrtoc32 tests: Renumber tests.
+       * tests/test-mbrtoc32-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
+       * tests/test-mbrtoc32.c: Update.
+       * tests/test-mbrtoc32-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
+       -> 8.
+       * tests/test-mbrtoc32-w32.c: Update.
+       * modules/mbrtoc32-tests: Update.
+
        mbrtowc tests: Renumber tests.
        * tests/test-mbrtowc*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
        * tests/test-mbrtowc.c: Update.
index 3408f0c8e96e844309588bafce7bab97d473c40e..db052209da88521552087befd7e331b9d7c12fd8 100644 (file)
@@ -5,13 +5,13 @@ tests/test-mbrtoc32-3.sh
 tests/test-mbrtoc32-4.sh
 tests/test-mbrtoc32-5.sh
 tests/test-mbrtoc32.c
-tests/test-mbrtoc32-w32-1.sh
 tests/test-mbrtoc32-w32-2.sh
 tests/test-mbrtoc32-w32-3.sh
 tests/test-mbrtoc32-w32-4.sh
 tests/test-mbrtoc32-w32-5.sh
 tests/test-mbrtoc32-w32-6.sh
 tests/test-mbrtoc32-w32-7.sh
+tests/test-mbrtoc32-w32-8.sh
 tests/test-mbrtoc32-w32.c
 tests/signature.h
 tests/macros.h
@@ -37,9 +37,9 @@ Makefile.am:
 TESTS += \
   test-mbrtoc32-1.sh test-mbrtoc32-2.sh test-mbrtoc32-3.sh test-mbrtoc32-4.sh \
   test-mbrtoc32-5.sh \
-  test-mbrtoc32-w32-1.sh test-mbrtoc32-w32-2.sh test-mbrtoc32-w32-3.sh \
-  test-mbrtoc32-w32-4.sh test-mbrtoc32-w32-5.sh test-mbrtoc32-w32-6.sh \
-  test-mbrtoc32-w32-7.sh
+  test-mbrtoc32-w32-2.sh test-mbrtoc32-w32-3.sh test-mbrtoc32-w32-4.sh \
+  test-mbrtoc32-w32-5.sh test-mbrtoc32-w32-6.sh test-mbrtoc32-w32-7.sh \
+  test-mbrtoc32-w32-8.sh
 TESTS_ENVIRONMENT += \
   LOCALE_FR='@LOCALE_FR@' \
   LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
index 03b29fdcaa988b9fcb7c9b58894bc748ac20c4f9..85abbdad9d4868a152648b148e358e4b73f80a7c 100755 (executable)
@@ -1,15 +1,9 @@
 #!/bin/sh
 
-# Test in an ISO-8859-1 or ISO-8859-15 locale.
-: "${LOCALE_FR=fr_FR}"
-if test $LOCALE_FR = none; then
-  if test -f /usr/bin/localedef; then
-    echo "Skipping test: no traditional french locale is installed"
-  else
-    echo "Skipping test: no traditional french locale is supported"
-  fi
-  exit 77
-fi
+# Test whether the POSIX locale has encoding errors.
+LC_ALL=C \
+${CHECKER} ./test-mbrtoc32${EXEEXT} 1 || exit 1
+LC_ALL=POSIX \
+${CHECKER} ./test-mbrtoc32${EXEEXT} 1 || exit 1
 
-LC_ALL=$LOCALE_FR \
-${CHECKER} ./test-mbrtoc32${EXEEXT} 1
+exit 0
index 9e538ebb77ddbd81a9e36968b73915bd0c554c04..1d44338a7810f8a8866f23edbdf6b42a9c601059 100755 (executable)
@@ -1,15 +1,15 @@
 #!/bin/sh
 
-# Test whether a specific UTF-8 locale is installed.
-: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
-if test $LOCALE_FR_UTF8 = none; then
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: "${LOCALE_FR=fr_FR}"
+if test $LOCALE_FR = none; then
   if test -f /usr/bin/localedef; then
-    echo "Skipping test: no french Unicode locale is installed"
+    echo "Skipping test: no traditional french locale is installed"
   else
-    echo "Skipping test: no french Unicode locale is supported"
+    echo "Skipping test: no traditional french locale is supported"
   fi
   exit 77
 fi
 
-LC_ALL=$LOCALE_FR_UTF8 \
+LC_ALL=$LOCALE_FR \
 ${CHECKER} ./test-mbrtoc32${EXEEXT} 2
index cb36fd2caa44e2374309fd270fb8e0bd76d7f7d0..082bad849fa812a76b8b4b30fe0b05ee6441488c 100755 (executable)
@@ -1,15 +1,15 @@
 #!/bin/sh
 
-# Test whether a specific EUC-JP locale is installed.
-: "${LOCALE_JA=ja_JP}"
-if test $LOCALE_JA = none; then
+# Test whether a specific UTF-8 locale is installed.
+: "${LOCALE_FR_UTF8=fr_FR.UTF-8}"
+if test $LOCALE_FR_UTF8 = none; then
   if test -f /usr/bin/localedef; then
-    echo "Skipping test: no traditional japanese locale is installed"
+    echo "Skipping test: no french Unicode locale is installed"
   else
-    echo "Skipping test: no traditional japanese locale is supported"
+    echo "Skipping test: no french Unicode locale is supported"
   fi
   exit 77
 fi
 
-LC_ALL=$LOCALE_JA \
+LC_ALL=$LOCALE_FR_UTF8 \
 ${CHECKER} ./test-mbrtoc32${EXEEXT} 3
index 7f21dbcb4eac87693588978bb950c4565aeec8b6..b23a32728c1348f385778fe758b10d015ec3cc86 100755 (executable)
@@ -1,15 +1,15 @@
 #!/bin/sh
 
-# Test whether a specific GB18030 locale is installed.
-: "${LOCALE_ZH_CN=zh_CN.GB18030}"
-if test $LOCALE_ZH_CN = none; then
+# Test whether a specific EUC-JP locale is installed.
+: "${LOCALE_JA=ja_JP}"
+if test $LOCALE_JA = none; then
   if test -f /usr/bin/localedef; then
-    echo "Skipping test: no transitional chinese locale is installed"
+    echo "Skipping test: no traditional japanese locale is installed"
   else
-    echo "Skipping test: no transitional chinese locale is supported"
+    echo "Skipping test: no traditional japanese locale is supported"
   fi
   exit 77
 fi
 
-LC_ALL=$LOCALE_ZH_CN \
+LC_ALL=$LOCALE_JA \
 ${CHECKER} ./test-mbrtoc32${EXEEXT} 4
index 42137722721004ddba98a58bea8f67230f0cb212..734a959eebf49e8f0b069c9ded55d5d8b123ff42 100755 (executable)
@@ -1,9 +1,15 @@
 #!/bin/sh
 
-# Test whether the POSIX locale has encoding errors.
-LC_ALL=C \
-${CHECKER} ./test-mbrtoc32${EXEEXT} 5 || exit 1
-LC_ALL=POSIX \
-${CHECKER} ./test-mbrtoc32${EXEEXT} 5 || exit 1
+# Test whether a specific GB18030 locale is installed.
+: "${LOCALE_ZH_CN=zh_CN.GB18030}"
+if test $LOCALE_ZH_CN = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no transitional chinese locale is installed"
+  else
+    echo "Skipping test: no transitional chinese locale is supported"
+  fi
+  exit 77
+fi
 
-exit 0
+LC_ALL=$LOCALE_ZH_CN \
+${CHECKER} ./test-mbrtoc32${EXEEXT} 5
diff --git a/tests/test-mbrtoc32-w32-1.sh b/tests/test-mbrtoc32-w32-1.sh
deleted file mode 100755 (executable)
index bf6b61c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-# Test a CP1252 locale.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} French_France 1252
index dd96b17f5b83baf0ba619324e7a52763b97bd105..bf6b61ce4c1c3b5eabe895744bf9b145855a1ce6 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-# Test a CP1256 locale.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
+# Test a CP1252 locale.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} French_France 1252
index 21a826b542a20b8e590aa06584a4b6c60926e467..dd96b17f5b83baf0ba619324e7a52763b97bd105 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-# Test a CP932 locale.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Japanese_Japan 932
+# Test a CP1256 locale.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
index 4e261dbd8121f1aa53541a1d224740d2598df7d6..b2b889b685158292f3777882f24f56888410b41e 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-# Test a CP950 locale.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Chinese_Taiwan 950
+# Test some UTF-8 locales.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} French_France Japanese_Japan Chinese_Taiwan Chinese_China 65001
index 200c248ccd5dd1159da298aeab209873245db42f..21a826b542a20b8e590aa06584a4b6c60926e467 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-# Test a CP936 locale.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Chinese_China 936
+# Test a CP932 locale.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Japanese_Japan 932
index a763e9fe94dd5b781db3f0acb9f9b29ea361f5e6..4e261dbd8121f1aa53541a1d224740d2598df7d6 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-# Test a GB18030 locale.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Chinese_China 54936
+# Test a CP950 locale.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Chinese_Taiwan 950
index b2b889b685158292f3777882f24f56888410b41e..200c248ccd5dd1159da298aeab209873245db42f 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-# Test some UTF-8 locales.
-${CHECKER} ./test-mbrtoc32-w32${EXEEXT} French_France Japanese_Japan Chinese_Taiwan Chinese_China 65001
+# Test a CP936 locale.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Chinese_China 936
diff --git a/tests/test-mbrtoc32-w32-8.sh b/tests/test-mbrtoc32-w32-8.sh
new file mode 100755 (executable)
index 0000000..a763e9f
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a GB18030 locale.
+${CHECKER} ./test-mbrtoc32-w32${EXEEXT} Chinese_China 54936
index 686d501ed79e633cb99c62c37bf87820ac11d56f..bd5f7f8ec3927d2b6108320bb11d3534ee912970 100644 (file)
@@ -263,6 +263,135 @@ test_one_locale (const char *name, int codepage)
       }
       return 0;
 
+    case 65001:
+      /* Locale encoding is CP65001 = UTF-8.  */
+      if (strcmp (locale_charset (), "UTF-8") != 0)
+        return 77;
+      {
+        char input[] = "s\303\274\303\237\360\237\230\213!"; /* "süß😋!" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 's');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, input + 1, 1, &state);
+        ASSERT (ret == (size_t)(-2));
+        ASSERT (wc == (char32_t) 0xBADFACE);
+        ASSERT (!mbsinit (&state));
+        input[1] = '\0';
+
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, input + 2, 7, &state);
+        ASSERT (ret == 1);
+        ASSERT (c32tob (wc) == EOF);
+        ASSERT (wc == 0x00FC); /* expect Unicode encoding */
+        ASSERT (mbsinit (&state));
+        input[2] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtoc32 (NULL, input + 3, 6, &state);
+        ASSERT (ret == 2);
+        ASSERT (mbsinit (&state));
+
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, input + 3, 6, &state);
+        ASSERT (ret == 2);
+        ASSERT (c32tob (wc) == EOF);
+        ASSERT (wc == 0x00DF); /* expect Unicode encoding */
+        ASSERT (mbsinit (&state));
+        input[3] = '\0';
+        input[4] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtoc32 (NULL, input + 5, 4, &state);
+        ASSERT (ret == 4);
+        ASSERT (mbsinit (&state));
+
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, input + 5, 4, &state);
+        ASSERT (ret == 4);
+        ASSERT (c32tob (wc) == EOF);
+        ASSERT (wc == 0x1F60B); /* expect Unicode encoding */
+        ASSERT (mbsinit (&state));
+        input[5] = '\0';
+        input[6] = '\0';
+        input[7] = '\0';
+        input[8] = '\0';
+
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, input + 9, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '!');
+        ASSERT (mbsinit (&state));
+
+        /* Test some invalid input.  */
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\377", 1, &state); /* 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\303\300", 2, &state); /* 0xC3 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\343\300", 2, &state); /* 0xE3 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\343\300\200", 3, &state); /* 0xE3 0xC0 0x80 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\343\200\300", 3, &state); /* 0xE3 0x80 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\363\300", 2, &state); /* 0xF3 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\363\300\200\200", 4, &state); /* 0xF3 0xC0 0x80 0x80 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\363\200\300", 3, &state); /* 0xF3 0x80 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\363\200\300\200", 4, &state); /* 0xF3 0x80 0xC0 0x80 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (char32_t) 0xBADFACE;
+        ret = mbrtoc32 (&wc, "\363\200\200\300", 4, &state); /* 0xF3 0x80 0x80 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+      }
+      return 0;
+
     case 932:
       /* Locale encoding is CP932, similar to Shift_JIS.  */
       {
@@ -580,135 +709,6 @@ test_one_locale (const char *name, int codepage)
       }
       return 0;
 
-    case 65001:
-      /* Locale encoding is CP65001 = UTF-8.  */
-      if (strcmp (locale_charset (), "UTF-8") != 0)
-        return 77;
-      {
-        char input[] = "s\303\274\303\237\360\237\230\213!"; /* "süß😋!" */
-        memset (&state, '\0', sizeof (mbstate_t));
-
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, input, 1, &state);
-        ASSERT (ret == 1);
-        ASSERT (wc == 's');
-        ASSERT (mbsinit (&state));
-        input[0] = '\0';
-
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, input + 1, 1, &state);
-        ASSERT (ret == (size_t)(-2));
-        ASSERT (wc == (char32_t) 0xBADFACE);
-        ASSERT (!mbsinit (&state));
-        input[1] = '\0';
-
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, input + 2, 7, &state);
-        ASSERT (ret == 1);
-        ASSERT (c32tob (wc) == EOF);
-        ASSERT (wc == 0x00FC); /* expect Unicode encoding */
-        ASSERT (mbsinit (&state));
-        input[2] = '\0';
-
-        /* Test support of NULL first argument.  */
-        ret = mbrtoc32 (NULL, input + 3, 6, &state);
-        ASSERT (ret == 2);
-        ASSERT (mbsinit (&state));
-
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, input + 3, 6, &state);
-        ASSERT (ret == 2);
-        ASSERT (c32tob (wc) == EOF);
-        ASSERT (wc == 0x00DF); /* expect Unicode encoding */
-        ASSERT (mbsinit (&state));
-        input[3] = '\0';
-        input[4] = '\0';
-
-        /* Test support of NULL first argument.  */
-        ret = mbrtoc32 (NULL, input + 5, 4, &state);
-        ASSERT (ret == 4);
-        ASSERT (mbsinit (&state));
-
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, input + 5, 4, &state);
-        ASSERT (ret == 4);
-        ASSERT (c32tob (wc) == EOF);
-        ASSERT (wc == 0x1F60B); /* expect Unicode encoding */
-        ASSERT (mbsinit (&state));
-        input[5] = '\0';
-        input[6] = '\0';
-        input[7] = '\0';
-        input[8] = '\0';
-
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, input + 9, 1, &state);
-        ASSERT (ret == 1);
-        ASSERT (wc == '!');
-        ASSERT (mbsinit (&state));
-
-        /* Test some invalid input.  */
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\377", 1, &state); /* 0xFF */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\303\300", 2, &state); /* 0xC3 0xC0 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\343\300", 2, &state); /* 0xE3 0xC0 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\343\300\200", 3, &state); /* 0xE3 0xC0 0x80 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\343\200\300", 3, &state); /* 0xE3 0x80 0xC0 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\363\300", 2, &state); /* 0xF3 0xC0 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\363\300\200\200", 4, &state); /* 0xF3 0xC0 0x80 0x80 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\363\200\300", 3, &state); /* 0xF3 0x80 0xC0 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\363\200\300\200", 4, &state); /* 0xF3 0x80 0xC0 0x80 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-
-        memset (&state, '\0', sizeof (mbstate_t));
-        wc = (char32_t) 0xBADFACE;
-        ret = mbrtoc32 (&wc, "\363\200\200\300", 4, &state); /* 0xF3 0x80 0x80 0xC0 */
-        ASSERT (ret == (size_t)-1);
-        ASSERT (errno == EILSEQ);
-      }
-      return 0;
-
     default:
       return 1;
     }
index f5a51ef34eb6285cbfbb528012ba0a5bef779088..93326085c28c2f0c97b6372c2e8b8da164103493 100644 (file)
@@ -131,14 +131,50 @@ main (int argc, char *argv[])
      "C" locale.  Furthermore, when you attempt to set the "C" or "POSIX"
      locale via setlocale(), what you get is a "C" locale with UTF-8 encoding,
      that is, effectively the "C.UTF-8" locale.  */
-  if (argc > 1 && strcmp (argv[1], "5") == 0 && MB_CUR_MAX > 1)
-    argv[1] = "2";
+  if (argc > 1 && strcmp (argv[1], "1") == 0 && MB_CUR_MAX > 1)
+    argv[1] = "3";
 #endif
 
   if (argc > 1)
     switch (argv[1][0])
       {
       case '1':
+        /* C or POSIX locale.  */
+        {
+          int c;
+          char buf[1];
+
+          memset (&state, '\0', sizeof (mbstate_t));
+          for (c = 0; c < 0x100; c++)
+            if (c != 0)
+              {
+                /* We are testing all nonnull bytes.  */
+                buf[0] = c;
+
+                wc = (char32_t) 0xBADFACE;
+                ret = mbrtoc32 (&wc, buf, 1, &state);
+                /* POSIX:2018 says regarding mbrtowc: "In the POSIX locale an
+                   [EILSEQ] error cannot occur since all byte values are valid
+                   characters."  It is reasonable to expect mbrtoc32 to behave
+                   in the same way.  */
+                ASSERT (ret == 1);
+                if (c < 0x80)
+                  /* c is an ASCII character.  */
+                  ASSERT (wc == c);
+                else
+                  /* On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
+                     But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF.  */
+                  ASSERT (wc == (btoc32 (c) == 0xDF00 + c ? btoc32 (c) : c));
+                ASSERT (mbsinit (&state));
+
+                ret = mbrtoc32 (NULL, buf, 1, &state);
+                ASSERT (ret == 1);
+                ASSERT (mbsinit (&state));
+              }
+        }
+        return 0;
+
+      case '2':
         /* Locale encoding is ISO-8859-1 or ISO-8859-15.  */
         {
           char input[] = "B\374\337er"; /* "Büßer" */
@@ -191,7 +227,7 @@ main (int argc, char *argv[])
         }
         return 0;
 
-      case '2':
+      case '3':
         /* Locale encoding is UTF-8.  */
         {
           char input[] = "s\303\274\303\237\360\237\230\213!"; /* "süß😋!" */
@@ -257,7 +293,7 @@ main (int argc, char *argv[])
         }
         return 0;
 
-      case '3':
+      case '4':
         /* Locale encoding is EUC-JP.  */
         {
           char input[] = "<\306\374\313\334\270\354>"; /* "<日本語>" */
@@ -322,7 +358,7 @@ main (int argc, char *argv[])
         }
         return 0;
 
-      case '4':
+      case '5':
         /* Locale encoding is GB18030.  */
         #if GL_CHAR32_T_IS_UNICODE && (defined __NetBSD__ || defined __sun)
         fputs ("Skipping test: The GB18030 converter in this system's iconv is broken.\n", stderr);
@@ -399,42 +435,6 @@ main (int argc, char *argv[])
           ASSERT (mbsinit (&state));
         }
         return 0;
-
-      case '5':
-        /* C or POSIX locale.  */
-        {
-          int c;
-          char buf[1];
-
-          memset (&state, '\0', sizeof (mbstate_t));
-          for (c = 0; c < 0x100; c++)
-            if (c != 0)
-              {
-                /* We are testing all nonnull bytes.  */
-                buf[0] = c;
-
-                wc = (char32_t) 0xBADFACE;
-                ret = mbrtoc32 (&wc, buf, 1, &state);
-                /* POSIX:2018 says regarding mbrtowc: "In the POSIX locale an
-                   [EILSEQ] error cannot occur since all byte values are valid
-                   characters."  It is reasonable to expect mbrtoc32 to behave
-                   in the same way.  */
-                ASSERT (ret == 1);
-                if (c < 0x80)
-                  /* c is an ASCII character.  */
-                  ASSERT (wc == c);
-                else
-                  /* On most platforms, the bytes 0x80..0xFF map to U+0080..U+00FF.
-                     But on musl libc, the bytes 0x80..0xFF map to U+DF80..U+DFFF.  */
-                  ASSERT (wc == (btoc32 (c) == 0xDF00 + c ? btoc32 (c) : c));
-                ASSERT (mbsinit (&state));
-
-                ret = mbrtoc32 (NULL, buf, 1, &state);
-                ASSERT (ret == 1);
-                ASSERT (mbsinit (&state));
-              }
-        }
-        return 0;
       }
 
   return 1;