diff options
Diffstat (limited to 'testsuite/runptests.c')
-rw-r--r-- | testsuite/runptests.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/testsuite/runptests.c b/testsuite/runptests.c deleted file mode 100644 index bd28a62..0000000 --- a/testsuite/runptests.c +++ /dev/null @@ -1,125 +0,0 @@ -/* POSIX regex testsuite from IEEE 2003.2. - Copyright (C) 1998-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. - - 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> -#include <regex.h> -#include <stdio.h> -#include <string.h> - -/* Data structure to describe the tests. */ -struct test -{ - int start; - int end; - const char *reg; - const char *str; - int options; -} tests[] = -{ -#include "ptestcases.h" -}; - - -int -main (int argc, char *argv[]) -{ - size_t cnt; - int errors = 0; - - for (cnt = 0; cnt < sizeof (tests) / sizeof (tests[0]); ++cnt) - if (tests[cnt].str == NULL) - { - printf ("\n%s\n%.*s\n", tests[cnt].reg, - (int) strlen (tests[cnt].reg), - "-----------------------------------------------------"); - } - else if (tests[cnt].reg == NULL) - printf ("!!! %s\n", tests[cnt].str); - else - { - regex_t re; - regmatch_t match[20]; - int err; - - printf ("regexp: \"%s\", string: \"%s\" -> ", tests[cnt].reg, - tests[cnt].str); - - /* Compile the expression. */ - err = regcomp (&re, tests[cnt].reg, tests[cnt].options); - if (err != 0) - { - if (tests[cnt].start == -2) - puts ("compiling failed, OK"); - else - { - char buf[100]; - regerror (err, &re, buf, sizeof (buf)); - printf ("FAIL: %s\n", buf); - ++errors; - } - - continue; - } - else if (tests[cnt].start == -2) - { - puts ("compiling succeeds, FAIL"); - errors++; - continue; - } - - /* Run the actual test. */ - err = regexec (&re, tests[cnt].str, 20, match, 0); - - if (err != 0) - { - if (tests[cnt].start == -1) - puts ("no match, OK"); - else - { - puts ("no match, FAIL"); - ++errors; - } - } - else - { - if (match[0].rm_so == 0 && tests[cnt].start == 0 - && match[0].rm_eo == 0 && tests[cnt].end == 0) - puts ("match, OK"); - else if (match[0].rm_so + 1 == tests[cnt].start - && match[0].rm_eo == tests[cnt].end) - puts ("match, OK"); - else - { - printf ("wrong match (%d to %d): FAIL\n", - match[0].rm_so, match[0].rm_eo); - ++errors; - } - } - - /* Free all resources. */ - regfree (&re); - } - - printf ("\n%u tests, %d errors\n", (int) cnt, errors); - - return errors != 0; -} |