* posix/tst-regex.c: Pass REG_NEWLINE to regcomp.  Add extra tests.
	Restrict printing of string in debug mode to 100 characters to make
	the output useful for long input texts.
This commit is contained in:
Ulrich Drepper 2001-06-27 22:27:03 +00:00
parent 64333c6623
commit 2f07975de1
2 changed files with 22 additions and 10 deletions

View File

@ -1,5 +1,9 @@
2001-06-27 Ulrich Drepper <drepper@redhat.com> 2001-06-27 Ulrich Drepper <drepper@redhat.com>
* posix/tst-regex.c: Pass REG_NEWLINE to regcomp. Add extra tests.
Restrict printing of string in debug mode to 100 characters to make
the output useful for long input texts.
* posix/Makefile: Add rules to build and run tst-regex. * posix/Makefile: Add rules to build and run tst-regex.
2001-06-20 Isamu Hasegawa <isamu@yamato.ibm.com> 2001-06-20 Isamu Hasegawa <isamu@yamato.ibm.com>

View File

@ -84,19 +84,23 @@ main (void)
close (fd); close (fd);
/* For the second test we have to convert the file content to UTF-8. */ /* We have to convert a few things from Latin-1 to UTF-8. */
umem = (char *) calloc (2, memlen);
if (umem == NULL)
error (EXIT_FAILURE, errno, "while allocating buffer");
cd = iconv_open ("UTF-8", "ISO-8859-1"); cd = iconv_open ("UTF-8", "ISO-8859-1");
if (cd == (iconv_t) -1) if (cd == (iconv_t) -1)
error (EXIT_FAILURE, errno, "cannot get conversion descriptor"); error (EXIT_FAILURE, errno, "cannot get conversion descriptor");
/* For the second test we have to convert the file content to UTF-8.
Since the text is mostly ASCII it should be enough to allocate
twice as much memory for the UTF-8 text than for the Latin-1
text. */
umem = (char *) calloc (2, memlen);
if (umem == NULL)
error (EXIT_FAILURE, errno, "while allocating buffer");
inmem = mem; inmem = mem;
inlen = memlen; inlen = memlen;
outmem = umem; outmem = umem;
outlen = 2 * memlen; outlen = 2 * memlen - 1;
iconv (cd, &inmem, &inlen, &outmem, &outlen); iconv (cd, &inmem, &inlen, &outmem, &outlen);
if (inlen != 0) if (inlen != 0)
error (EXIT_FAILURE, errno, "cannot convert buffer"); error (EXIT_FAILURE, errno, "cannot convert buffer");
@ -106,16 +110,20 @@ main (void)
use_clock = clock_getcpuclockid (0, &cl) == 0; use_clock = clock_getcpuclockid (0, &cl) == 0;
#endif #endif
#ifdef DEBUG
re_set_syntax (RE_DEBUG);
#endif
/* Run the actual tests. All tests are run in a single-byte and a /* Run the actual tests. All tests are run in a single-byte and a
multi-byte locale. */ multi-byte locale. */
result = test_expr ("[äáàâéèêíìîñöóòôüúùû]", 2); result = test_expr ("[äáàâéèêíìîñöóòôüúùû]", 2);
result |= test_expr ("G.ran", 2); result |= test_expr ("G.ran", 2);
result |= test_expr ("G.\\{1\\}ran", 2); result |= test_expr ("G.\\{1\\}ran", 2);
#ifdef DOES_NOT_WORK result |= test_expr ("G.*ran", 3);
result |= test_expr ("G.*ran", 2); result |= test_expr ("[äáàâ]", 0);
#endif
/* Free the resources. */ /* Free the resources. */
free (umem);
iconv_close (cd); iconv_close (cd);
free (mem); free (mem);
@ -178,7 +186,7 @@ run_test (const char *expr, const char *mem, size_t memlen, int expected)
use_clock = clock_gettime (cl, &start) == 0; use_clock = clock_gettime (cl, &start) == 0;
#endif #endif
err = regcomp (&re, expr, 0); err = regcomp (&re, expr, REG_NEWLINE);
if (err != REG_NOERROR) if (err != REG_NOERROR)
{ {
char buf[200]; char buf[200];