On Haiku, I see a test failure of test-string-desc-quotearg.
The reason is that on this platform, the C locale has UTF-8 encoding,
and therefore the quotearg.c logic uses U+2018 and U+2019 as quotation
marks, instead of the ASCII double-quote.


2023-04-05  Bruno Haible  <br...@clisp.org>

        string-desc-quotearg tests: Avoid a test failure on Haiku.
        * tests/test-string-desc-quotearg.c (main): For the
        clocale_quoting_style, accept also the U+2018 and U+2019 characters in
        UTF-8 encoding.

diff --git a/tests/test-string-desc-quotearg.c 
b/tests/test-string-desc-quotearg.c
index 0a3c42d35c..dd523f27be 100644
--- a/tests/test-string-desc-quotearg.c
+++ b/tests/test-string-desc-quotearg.c
@@ -63,13 +63,17 @@ main (void)
   /* Test string_desc_quotearg_n_style.  */
   {
     char *ret = string_desc_quotearg_n_style (1, clocale_quoting_style, s2);
-    ASSERT (memcmp (ret, "\"The\\0quick\\0brown\\0\\0fox\\0\"", 28 + 1) == 0);
+    ASSERT (memcmp (ret, "\"The\\0quick\\0brown\\0\\0fox\\0\"", 28 + 1) == 0
+            || /* if the locale has UTF-8 encoding */
+               memcmp (ret, 
"\342\200\230The\\0quick\\0brown\\0\\0fox\\0\342\200\231", 32 + 1) == 0);
   }
 
   /* Test string_desc_quotearg_style.  */
   {
     char *ret = string_desc_quotearg_style (clocale_quoting_style, s2);
-    ASSERT (memcmp (ret, "\"The\\0quick\\0brown\\0\\0fox\\0\"", 28 + 1) == 0);
+    ASSERT (memcmp (ret, "\"The\\0quick\\0brown\\0\\0fox\\0\"", 28 + 1) == 0
+            || /* if the locale has UTF-8 encoding */
+               memcmp (ret, 
"\342\200\230The\\0quick\\0brown\\0\\0fox\\0\342\200\231", 32 + 1) == 0);
   }
 
   /* Test string_desc_quotearg_char.  */




Reply via email to