mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
2002-07-16 Stepan Kasal <kasal@math.cas.cz> * posix/bug-regex7.c: New file. * posix/bug-regex8.c: New file. * posix/Makefile (tests): Add bug-regex7 and bug-regex8. 2002-07-16 Stepan Kasal <kasal@math.cas.cz> * posix/bug-regex4.c (main): Fix typos. * posix/bug-regex6.c (main): Likewise. * posix/bug-regex6.c (main): Fix warnings. * stdio-common/printf_fp.c (__printf_fp): If _FPIO_CONST_SHIFT iscvs/fedora-2_3-branch
6 changed files with 202 additions and 10 deletions
@ -0,0 +1,92 @@ |
|||
/* Test for regs allocation in re_search and re_match.
|
|||
Copyright (C) 2002 Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
Contributed by Stepan Kasal <kasal@math.cas.cz>, 2002. |
|||
|
|||
The GNU C Library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 of the License, or (at your option) any later version. |
|||
|
|||
The GNU C Library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, write to the Free |
|||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
|||
02111-1307 USA. */ |
|||
|
|||
#include <locale.h> |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
#include <sys/types.h> |
|||
#include <regex.h> |
|||
|
|||
|
|||
int |
|||
main (void) |
|||
{ |
|||
struct re_pattern_buffer regex; |
|||
struct re_registers regs; |
|||
const char *s; |
|||
int match, n; |
|||
int result = 0; |
|||
|
|||
memset (®ex, '\0', sizeof (regex)); |
|||
regs.start = regs.end = NULL; |
|||
regs.num_regs = 0; |
|||
s = re_compile_pattern ("a", 1, ®ex); |
|||
if (s != NULL) |
|||
{ |
|||
puts ("failed to compile pattern \"a\""); |
|||
result = 1; |
|||
} |
|||
else |
|||
{ |
|||
match = re_search (®ex, "baobab", 6, 0, 6, ®s); |
|||
n = 1; |
|||
if (match != 1) |
|||
{ |
|||
printf ("re_search returned %d, expected 1\n", match); |
|||
result = 1; |
|||
} |
|||
else if (regs.num_regs <= n || regs.start[n] != -1 || regs.end[n] != -1) |
|||
{ |
|||
puts ("re_search failed to fill the -1 sentinel"); |
|||
result = 1; |
|||
} |
|||
} |
|||
|
|||
free (regex.buffer); |
|||
memset (®ex, '\0', sizeof (regex)); |
|||
|
|||
s = re_compile_pattern ("\\(\\(\\(a\\)\\)\\)", 13, ®ex); |
|||
if (s != NULL) |
|||
{ |
|||
puts ("failed to compile pattern /\\(\\(\\(a\\)\\)\\)/"); |
|||
result = 1; |
|||
} |
|||
else |
|||
{ |
|||
match = re_match (®ex, "apl", 3, 0, ®s); |
|||
n = 4; |
|||
if (match != 1) |
|||
{ |
|||
printf ("re_match returned %d, expected 1\n", match); |
|||
result = 1; |
|||
} |
|||
else if (regs.num_regs <= n || regs.start[n] != -1 || regs.end[n] != -1) |
|||
{ |
|||
puts ("re_match failed to fill the -1 sentinel"); |
|||
result = 1; |
|||
} |
|||
} |
|||
|
|||
if (result == 0) |
|||
puts (" -> OK"); |
|||
|
|||
return result; |
|||
} |
|||
@ -0,0 +1,84 @@ |
|||
/* Test for the STOP parameter of re_match_2 and re_search_2.
|
|||
Copyright (C) 2002 Free Software Foundation, Inc. |
|||
This file is part of the GNU C Library. |
|||
Contributed by Stepan Kasal <kasal@math.cas.cz>, 2002. |
|||
|
|||
The GNU C Library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2.1 of the License, or (at your option) any later version. |
|||
|
|||
The GNU C Library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with the GNU C Library; if not, write to the Free |
|||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
|||
02111-1307 USA. */ |
|||
|
|||
#include <locale.h> |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#include <string.h> |
|||
#include <sys/types.h> |
|||
#include <regex.h> |
|||
|
|||
|
|||
int |
|||
main (void) |
|||
{ |
|||
struct re_pattern_buffer regex; |
|||
const char *s; |
|||
int match[4]; |
|||
|
|||
memset (®ex, '\0', sizeof (regex)); |
|||
|
|||
s = re_compile_pattern ("xy$", 3, ®ex); |
|||
if (s != NULL) |
|||
{ |
|||
puts ("failed to compile pattern \"xy$\""); |
|||
return 1; |
|||
} |
|||
else |
|||
match[0] = re_match_2(®ex,"xyz",3,NULL,0,0,NULL,2); |
|||
|
|||
free (regex.buffer); |
|||
memset (®ex, '\0', sizeof (regex)); |
|||
|
|||
s = re_compile_pattern ("xy\\>", 4, ®ex); |
|||
if (s != NULL) |
|||
{ |
|||
puts ("failed to compile pattern \"xy\\>\""); |
|||
return 1; |
|||
} |
|||
else |
|||
match[1] = re_search_2(®ex,"xyz",3,NULL,0,0,2,NULL,2); |
|||
|
|||
free (regex.buffer); |
|||
memset (®ex, '\0', sizeof (regex)); |
|||
|
|||
s = re_compile_pattern ("xy \\<", 5, ®ex); |
|||
if (s != NULL) |
|||
{ |
|||
puts ("failed to compile pattern \"xy \\<\""); |
|||
return 1; |
|||
} |
|||
else |
|||
{ |
|||
match[2] = re_match_2(®ex,"xy ",4,NULL,0,0,NULL,3); |
|||
match[3] = re_match_2(®ex,"xy z",4,NULL,0,0,NULL,3); |
|||
} |
|||
|
|||
if (match[0] != -1 || match[1] != -1 || match[2] != -1 || match[3] != 3) |
|||
{ |
|||
printf ("re_{match,search}_2 returned %d,%d,%d,%d, expected -1,-1,-1,3\n", |
|||
match[0], match[1], match[2], match[3]); |
|||
return 1; |
|||
} |
|||
|
|||
puts (" -> OK"); |
|||
|
|||
return 0; |
|||
} |
|||
Loading…
Reference in new issue