string test alignment fix by Mahesh Bodapati
[libc-test.git] / src / regression / regex-bracket-icase.c
blob82b9287406c12d2139e6538c098a162e675be1c0
1 // [^aBcC] with REG_ICASE should match d,D but not a,A,b,B,c,C according to
2 // http://austingroupbugs.net/view.php?id=872
3 #include <regex.h>
4 #include <limits.h>
5 #include <stdio.h>
6 #include "test.h"
8 int main(void)
10 char buf[100];
11 char *pat;
12 regex_t re;
13 int n, i;
14 struct {
15 char *s;
16 int n;
17 } t[] = {
18 {"a", REG_NOMATCH},
19 {"A", REG_NOMATCH},
20 {"b", REG_NOMATCH},
21 {"B", REG_NOMATCH},
22 {"c", REG_NOMATCH},
23 {"C", REG_NOMATCH},
24 {"d", 0},
25 {"D", 0},
26 {0,0}
29 pat = "[^aBcC]";
30 n = regcomp(&re, pat, REG_ICASE);
31 if (n) {
32 regerror(n, &re, buf, sizeof buf);
33 t_error("regcomp(\"%s\") failed: %d (%s)\n", pat, n, buf);
36 for (i = 0; t[i].s; i++) {
37 n = regexec(&re, t[i].s, 0, 0, 0);
38 if (n != t[i].n) {
39 regerror(n, &re, buf, sizeof buf);
40 t_error("regexec(/%s/, \"%s\") returned %d (%s), wanted %d\n",
41 pat, t[i].s, n, buf, t[i].n);
45 return t_status;