summaryrefslogtreecommitdiff
path: root/testsuite/tst-boost.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tst-boost.c')
-rw-r--r--testsuite/tst-boost.c233
1 files changed, 0 insertions, 233 deletions
diff --git a/testsuite/tst-boost.c b/testsuite/tst-boost.c
deleted file mode 100644
index 8227deb..0000000
--- a/testsuite/tst-boost.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Regular expression tests.
- Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- 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., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301 USA. */
-
-#include <config.h>
-
-#include <sys/types.h>
-#ifdef HAVE_MCHECK_H
-#include <mcheck.h>
-#endif
-#include <regex.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-void
-frob_escapes (char *src, int pattern)
-{
- char *dst;
-
- for (dst = src; *src != '\0'; dst++, src++)
- {
- if (*src == '\\')
- {
- switch (src[1])
- {
- case 't':
- src++;
- *dst = '\t';
- continue;
- case 'n':
- src++;
- *dst = '\n';
- continue;
- case 'r':
- src++;
- *dst = '\r';
- continue;
- case '\\':
- case '^':
- case '{':
- case '|':
- case '}':
- if (!pattern)
- {
- src++;
- *dst = *src;
- continue;
- }
- break;
- }
- }
- if (src != dst)
- *dst = *src;
- }
- *dst = '\0';
-}
-
-int
-main (int argc, char **argv)
-{
- int ret = 0, n;
- char *line = NULL;
- size_t line_len = 0;
- ssize_t len;
- FILE *f;
- char *pattern, *string;
- int flags = REG_EXTENDED;
- int eflags = 0;
- regex_t re;
- regmatch_t rm[20];
-
-#ifdef HAVE_MCHECK_H
- mtrace ();
-#endif
-
- if (argc < 2)
- {
- fprintf (stderr, "Missing test filename\n");
- return 1;
- }
-
- f = fopen (argv[1], "r");
- if (f == NULL)
- {
- fprintf (stderr, "Couldn't open %s\n", argv[1]);
- return 1;
- }
-
- while ((len = getline (&line, &line_len, f)) > 0)
- {
- char *p, *q;
- int i;
-
- if (line[len - 1] == '\n')
- line[--len] = '\0';
-
- puts (line);
-
- if (line[0] == ';')
- continue;
-
- if (line[0] == '\0')
- continue;
-
- if (line[0] == '-')
- {
- if (strstr (line, "REG_BASIC"))
- flags = 0;
- else
- flags = REG_EXTENDED;
- if (strstr (line, "REG_ICASE"))
- flags |= REG_ICASE;
- if (strstr (line, "REG_NEWLINE"))
- flags |= REG_NEWLINE;
- eflags = 0;
- if (strstr (line, "REG_NOTBOL"))
- eflags |= REG_NOTBOL;
- if (strstr (line, "REG_NOTEOL"))
- eflags |= REG_NOTEOL;
- continue;
- }
-
- pattern = line + strspn (line, " \t");
- if (*pattern == '\0')
- continue;
- p = pattern + strcspn (pattern, " \t");
- if (*p == '\0')
- continue;
- *p++ = '\0';
-
- string = p + strspn (p, " \t");
- if (*string == '\0')
- continue;
- if (*string == '"')
- {
- string++;
- p = strchr (string, '"');
- if (p == NULL)
- continue;
- *p++ = '\0';
- }
- else
- {
- p = string + strcspn (string, " \t");
- if (*string == '!')
- string = NULL;
- else if (*p == '\0')
- continue;
- else
- *p++ = '\0';
- }
-
- frob_escapes (pattern, 1);
- if (string != NULL)
- frob_escapes (string, 0);
-
- n = regcomp (&re, pattern, flags);
- if (n != 0)
- {
- if (string != NULL)
- {
- char buf[500];
- regerror (n, &re, buf, sizeof (buf));
- printf ("FAIL regcomp unexpectedly failed: %s\n",
- buf);
- ret = 1;
- }
- continue;
- }
- else if (string == NULL)
- {
- regfree (&re);
- puts ("FAIL regcomp unpexpectedly succeeded");
- ret = 1;
- continue;
- }
-
- if (regexec (&re, string, 20, rm, eflags))
- {
- for (i = 0; i < 20; ++i)
- {
- rm[i].rm_so = -1;
- rm[i].rm_eo = -1;
- }
- }
-
- regfree (&re);
-
- for (i = 0; i < 20 && *p != '\0'; ++i)
- {
- int rm_so, rm_eo;
-
- rm_so = strtol (p, &q, 10);
- if (p == q)
- break;
- p = q;
-
- rm_eo = strtol (p, &q, 10);
- if (p == q)
- break;
- p = q;
-
- if (rm[i].rm_so != rm_so || rm[i].rm_eo != rm_eo)
- {
- printf ("FAIL rm[%d] %d..%d != expected %d..%d\n",
- i, rm[i].rm_so, rm[i].rm_eo, rm_so, rm_eo);
- ret = 1;
- break;
- }
- }
- }
-
- free (line);
- fclose (f);
- return ret;
-}