From: Bruno Haible Date: Fri, 3 Jul 2020 16:49:18 +0000 (+0200) Subject: dfa tests: Follow common file naming conventions. X-Git-Tag: v1.0~3925 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=4577ee9c6bc628eb25f4d9044d343530b43d1841;p=gnulib.git dfa tests: Follow common file naming conventions. * tests/test-dfa-match-aux.c: Renamed from tests/dfa-match-aux.c. * tests/test-dfa-match.sh: Renamed from tests/dfa-match.sh. Update. * tests/test-dfa-invalid-char-class.sh: Renamed from tests/dfa-invalid-char-class.sh. Update. * modules/dfa-tests (Files, Makefile.am): Update. --- diff --git a/ChangeLog b/ChangeLog index 4e1e067e08..080f9e8342 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2020-07-03 Bruno Haible + + dfa tests: Follow common file naming conventions. + * tests/test-dfa-match-aux.c: Renamed from tests/dfa-match-aux.c. + * tests/test-dfa-match.sh: Renamed from tests/dfa-match.sh. Update. + * tests/test-dfa-invalid-char-class.sh: Renamed from + tests/dfa-invalid-char-class.sh. Update. + * modules/dfa-tests (Files, Makefile.am): Update. + 2020-07-03 Bruno Haible asyncsafe-spin: Use GCC extended asm syntax for SunStudio 12 compiler. diff --git a/modules/dfa-tests b/modules/dfa-tests index 5855652c90..4c447c28e5 100644 --- a/modules/dfa-tests +++ b/modules/dfa-tests @@ -1,7 +1,7 @@ Files: -tests/dfa-match.sh -tests/dfa-match-aux.c -tests/dfa-invalid-char-class.sh +tests/test-dfa-match.sh +tests/test-dfa-match-aux.c +tests/test-dfa-invalid-char-class.sh Depends-on: getprogname @@ -13,9 +13,9 @@ regex configure.ac: Makefile.am: -TESTS += \ - dfa-invalid-char-class.sh \ - dfa-match.sh +TESTS += \ + test-dfa-invalid-char-class.sh \ + test-dfa-match.sh -check_PROGRAMS += dfa-match-aux -dfa_match_aux_LDADD = $(LDADD) $(LIB_SETLOCALE) @LIBINTL@ $(LIB_MBRTOWC) +check_PROGRAMS += test-dfa-match-aux +test_dfa_match_aux_LDADD = $(LDADD) $(LIB_SETLOCALE) @LIBINTL@ $(LIB_MBRTOWC) diff --git a/tests/dfa-invalid-char-class.sh b/tests/dfa-invalid-char-class.sh deleted file mode 100755 index 8e8824dc4a..0000000000 --- a/tests/dfa-invalid-char-class.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# This use of our DFA-testing helper would fail for grep-2.21. - -# Copyright 2014-2020 Free Software Foundation, Inc. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -. "${srcdir=.}/init.sh"; path_prepend_ ../src - -# Add "." to PATH for the use of dfa-match-aux. -path_prepend_ . - -fail=0 - -echo 'dfaerror: invalid character class' > exp -LC_ALL=C ${CHECKER} dfa-match-aux '[[:foo:]]' a > out 2>&1 -compare exp out || fail=1 - -Exit $fail diff --git a/tests/dfa-match-aux.c b/tests/dfa-match-aux.c deleted file mode 100644 index e0c5f3df47..0000000000 --- a/tests/dfa-match-aux.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Auxiliary program to test a DFA code path that cannot be triggered - by grep or gawk. - Copyright 2014-2020 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "getprogname.h" - -_Noreturn void -dfaerror (char const *mesg) -{ - printf ("dfaerror: %s\n", mesg); - exit (EXIT_FAILURE); -} - -_Noreturn void -dfawarn (char const *mesg) -{ - printf ("dfawarn: %s\n", mesg); - exit (EXIT_FAILURE); -} - -int -main (int argc, char **argv) -{ - struct dfa *dfa; - char *beg, *end, *p; - int allow_nl; - struct localeinfo localeinfo; - - if (argc < 3) - exit (EXIT_FAILURE); - - setlocale (LC_ALL, ""); - init_localeinfo (&localeinfo); - - dfa = dfaalloc (); - dfasyntax (dfa, &localeinfo, RE_SYNTAX_GREP | RE_NO_EMPTY_RANGES, 0); - dfacomp (argv[1], strlen (argv[1]), dfa, 0); - - beg = argv[2]; - end = argv[2] + strlen (argv[2]); - allow_nl = argc > 3 && atoi (argv[3]); - - p = dfaexec (dfa, beg, end, allow_nl, NULL, NULL); - - if (p != NULL) - printf ("%zd\n", p - beg); - - exit (EXIT_SUCCESS); -} diff --git a/tests/dfa-match.sh b/tests/dfa-match.sh deleted file mode 100755 index bc9e1dc522..0000000000 --- a/tests/dfa-match.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# This would fail with grep-2.21's dfa.c. - -# Copyright 2014-2020 Free Software Foundation, Inc. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -. "${srcdir=.}/init.sh"; path_prepend_ ../src - -# Add "." to PATH for the use of dfa-match-aux. -path_prepend_ . - -if (type timeout) >/dev/null 2>&1; then - if timeout --help 2>&1 | grep BusyBox; then - timeout_10='timeout -t 10' - else - timeout_10='timeout 10' - fi -else - timeout_10= -fi - -fail=0 - -${CHECKER} dfa-match-aux a ba 0 > out || fail=1 -compare /dev/null out || fail=1 - -in=$(printf "bb\nbb") -$timeout_10 ${CHECKER} dfa-match-aux a "$in" 1 > out || fail=1 -compare /dev/null out || fail=1 - -Exit $fail diff --git a/tests/test-dfa-invalid-char-class.sh b/tests/test-dfa-invalid-char-class.sh new file mode 100755 index 0000000000..094bab003a --- /dev/null +++ b/tests/test-dfa-invalid-char-class.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# This use of our DFA-testing helper would fail for grep-2.21. + +# Copyright 2014-2020 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program 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 General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +# Add "." to PATH for the use of test-dfa-match-aux. +path_prepend_ . + +fail=0 + +echo 'dfaerror: invalid character class' > exp +LC_ALL=C ${CHECKER} test-dfa-match-aux '[[:foo:]]' a > out 2>&1 +compare exp out || fail=1 + +Exit $fail diff --git a/tests/test-dfa-match-aux.c b/tests/test-dfa-match-aux.c new file mode 100644 index 0000000000..e0c5f3df47 --- /dev/null +++ b/tests/test-dfa-match-aux.c @@ -0,0 +1,73 @@ +/* Auxiliary program to test a DFA code path that cannot be triggered + by grep or gawk. + Copyright 2014-2020 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "getprogname.h" + +_Noreturn void +dfaerror (char const *mesg) +{ + printf ("dfaerror: %s\n", mesg); + exit (EXIT_FAILURE); +} + +_Noreturn void +dfawarn (char const *mesg) +{ + printf ("dfawarn: %s\n", mesg); + exit (EXIT_FAILURE); +} + +int +main (int argc, char **argv) +{ + struct dfa *dfa; + char *beg, *end, *p; + int allow_nl; + struct localeinfo localeinfo; + + if (argc < 3) + exit (EXIT_FAILURE); + + setlocale (LC_ALL, ""); + init_localeinfo (&localeinfo); + + dfa = dfaalloc (); + dfasyntax (dfa, &localeinfo, RE_SYNTAX_GREP | RE_NO_EMPTY_RANGES, 0); + dfacomp (argv[1], strlen (argv[1]), dfa, 0); + + beg = argv[2]; + end = argv[2] + strlen (argv[2]); + allow_nl = argc > 3 && atoi (argv[3]); + + p = dfaexec (dfa, beg, end, allow_nl, NULL, NULL); + + if (p != NULL) + printf ("%zd\n", p - beg); + + exit (EXIT_SUCCESS); +} diff --git a/tests/test-dfa-match.sh b/tests/test-dfa-match.sh new file mode 100755 index 0000000000..a7285ec0b2 --- /dev/null +++ b/tests/test-dfa-match.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# This would fail with grep-2.21's dfa.c. + +# Copyright 2014-2020 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program 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 General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +# Add "." to PATH for the use of test-dfa-match-aux. +path_prepend_ . + +if (type timeout) >/dev/null 2>&1; then + if timeout --help 2>&1 | grep BusyBox; then + timeout_10='timeout -t 10' + else + timeout_10='timeout 10' + fi +else + timeout_10= +fi + +fail=0 + +${CHECKER} test-dfa-match-aux a ba 0 > out || fail=1 +compare /dev/null out || fail=1 + +in=$(printf "bb\nbb") +$timeout_10 ${CHECKER} test-dfa-match-aux a "$in" 1 > out || fail=1 +compare /dev/null out || fail=1 + +Exit $fail