aboutsummaryrefslogtreecommitdiff
path: root/posix/tst-regex.c
diff options
context:
space:
mode:
Diffstat (limited to 'posix/tst-regex.c')
-rw-r--r--posix/tst-regex.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/posix/tst-regex.c b/posix/tst-regex.c
index e7c2b05e86..4be5d173eb 100644
--- a/posix/tst-regex.c
+++ b/posix/tst-regex.c
@@ -32,6 +32,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <regex.h>
+#include <support/support.h>
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
@@ -150,9 +151,23 @@ test_expr (const char *expr, int expected, int expectedicase)
size_t outlen;
char *uexpr;
- /* First test: search with an UTF-8 locale. */
- if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
- error (EXIT_FAILURE, 0, "cannot set locale de_DE.UTF-8");
+ /* First test: search with basic C.UTF-8 locale. */
+ printf ("INFO: Testing C.UTF-8.\n");
+ xsetlocale (LC_ALL, "C.UTF-8");
+
+ printf ("\nTest \"%s\" with multi-byte locale\n", expr);
+ result = run_test (expr, mem, memlen, 0, expected);
+ printf ("\nTest \"%s\" with multi-byte locale, case insensitive\n", expr);
+ result |= run_test (expr, mem, memlen, 1, expectedicase);
+ printf ("\nTest \"%s\" backwards with multi-byte locale\n", expr);
+ result |= run_test_backwards (expr, mem, memlen, 0, expected);
+ printf ("\nTest \"%s\" backwards with multi-byte locale, case insensitive\n",
+ expr);
+ result |= run_test_backwards (expr, mem, memlen, 1, expectedicase);
+
+ /* Second test: search with an UTF-8 locale. */
+ printf ("INFO: Testing de_DE.UTF-8.\n");
+ xsetlocale (LC_ALL, "de_DE.UTF-8");
printf ("\nTest \"%s\" with multi-byte locale\n", expr);
result = run_test (expr, mem, memlen, 0, expected);
@@ -165,8 +180,8 @@ test_expr (const char *expr, int expected, int expectedicase)
result |= run_test_backwards (expr, mem, memlen, 1, expectedicase);
/* Second test: search with an ISO-8859-1 locale. */
- if (setlocale (LC_ALL, "de_DE.ISO-8859-1") == NULL)
- error (EXIT_FAILURE, 0, "cannot set locale de_DE.ISO-8859-1");
+ printf ("INFO: Testing de_DE.ISO-8859-1.\n");
+ xsetlocale (LC_ALL, "de_DE.ISO-8859-1");
inmem = (char *) expr;
inlen = strlen (expr);