mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
regex-tests: skip UTF-8 test on mingw
test-regex failed on mingw; and I traced it in gdb to an instance of init_dfa() setting dfa->is_utf8 to 0 in spite of setlocale() claiming success for "en_US.UTF-8". test-wcwidth already has precedent for skipping utf-8 tests where the system (or gnulib setlocale replacement, in this case) lies about utf-8 support. * modules/regex-tests (Depends-on): Add localcharset. * tests/test-regex.c (main): Use it to skip test on mingw. Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2013-03-12 Eric Blake <eblake@redhat.com>
|
||||||
|
|
||||||
|
regex-tests: skip UTF-8 test on mingw
|
||||||
|
* modules/regex-tests (Depends-on): Add localcharset.
|
||||||
|
* tests/test-regex.c (main): Use it to skip test on mingw.
|
||||||
|
|
||||||
2013-03-11 Eric Blake <eblake@redhat.com>
|
2013-03-11 Eric Blake <eblake@redhat.com>
|
||||||
|
|
||||||
tests: make it easier to bypass alarm time in debugger
|
tests: make it easier to bypass alarm time in debugger
|
||||||
|
@@ -3,6 +3,7 @@ tests/test-regex.c
|
|||||||
tests/macros.h
|
tests/macros.h
|
||||||
|
|
||||||
Depends-on:
|
Depends-on:
|
||||||
|
localcharset
|
||||||
|
|
||||||
configure.ac:
|
configure.ac:
|
||||||
|
|
||||||
|
@@ -26,6 +26,8 @@
|
|||||||
# include <signal.h>
|
# include <signal.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "localcharset.h"
|
||||||
|
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
{
|
{
|
||||||
@@ -65,25 +67,30 @@ main (void)
|
|||||||
result |= 1;
|
result |= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
/* Check whether it's really a UTF-8 locale.
|
||||||
/* This test is from glibc bug 15078.
|
On mingw, the setlocale call succeeds but returns
|
||||||
The test case is from Andreas Schwab in
|
"English_United States.1252", with locale_charset() returning
|
||||||
<http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
|
"CP1252". */
|
||||||
*/
|
if (strcmp (locale_charset (), "UTF-8") == 0)
|
||||||
static char const pat[] = "[^x]x";
|
{
|
||||||
static char const data[] =
|
/* This test is from glibc bug 15078.
|
||||||
"\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80"
|
The test case is from Andreas Schwab in
|
||||||
"\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
|
<http://www.sourceware.org/ml/libc-alpha/2013-01/msg00967.html>.
|
||||||
re_set_syntax (0);
|
*/
|
||||||
memset (®ex, 0, sizeof regex);
|
static char const pat[] = "[^x]x";
|
||||||
s = re_compile_pattern (pat, sizeof pat - 1, ®ex);
|
static char const data[] =
|
||||||
if (s)
|
"\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80"
|
||||||
result |= 1;
|
"\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
|
||||||
else if (re_search (®ex, data, sizeof data - 1,
|
re_set_syntax (0);
|
||||||
0, sizeof data - 1, 0)
|
memset (®ex, 0, sizeof regex);
|
||||||
!= 21)
|
s = re_compile_pattern (pat, sizeof pat - 1, ®ex);
|
||||||
result |= 1;
|
if (s)
|
||||||
}
|
result |= 1;
|
||||||
|
else if (re_search (®ex, data, sizeof data - 1,
|
||||||
|
0, sizeof data - 1, 0)
|
||||||
|
!= 21)
|
||||||
|
result |= 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (! setlocale (LC_ALL, "C"))
|
if (! setlocale (LC_ALL, "C"))
|
||||||
return 1;
|
return 1;
|
||||||
|
Reference in New Issue
Block a user