diff options
Diffstat (limited to 'lib/libregex/tests')
-rw-r--r-- | lib/libregex/tests/Makefile | 18 | ||||
-rw-r--r-- | lib/libregex/tests/gnuext.in | 34 | ||||
-rwxr-xr-x | lib/libregex/tests/libregex_test.sh | 55 |
3 files changed, 107 insertions, 0 deletions
diff --git a/lib/libregex/tests/Makefile b/lib/libregex/tests/Makefile new file mode 100644 index 000000000000..7c6820f70a45 --- /dev/null +++ b/lib/libregex/tests/Makefile @@ -0,0 +1,18 @@ +PACKAGE= tests +TESTSRC= ${SRCTOP}/contrib/netbsd-tests/lib/libc/regex + +.PATH: ${SRCTOP}/tests + +.include "${SRCTOP}/lib/libc/tests/regex/Makefile.inc" + +ATF_TESTS_SH+= libregex_test + +${PACKAGE}DATA_FILES+= gnuext.in + +LIBADD.h_regex+=regex +.for t in ${NETBSD_ATF_TESTS_C} +LIBADD.$t+= regex +.endfor + +.include <netbsd-tests.test.mk> +.include <bsd.test.mk> diff --git a/lib/libregex/tests/gnuext.in b/lib/libregex/tests/gnuext.in new file mode 100644 index 000000000000..3ce0f4af1b34 --- /dev/null +++ b/lib/libregex/tests/gnuext.in @@ -0,0 +1,34 @@ +# BRE Quantifiers +ab\?c b abc abc +ab\+c b abc abc +# BRE Branching +abc\|de b abc abc +a\|b\|c b abc a +\(ab\|bc\) b abcd ab +# ERE Backrefs +(ab)\1 - ab +(ab)\1 - abab abab +\1(ab) C ESUBREG +(a)(b)(c)(d)(e)(f)(g)(h)(i)\9 - abcdefghii abcdefghii +# \w, \W, \s, \S (_alnum, ^_alnum, space, ^space) +\w+ - -%@a_0X- a_0X +\w\+ b -%@a_0X- a_0X +\s+ - aSNTb SNT +\s\+ b aSNTb SNT +# Word boundaries (\b, \B, \<, \>, \`, \') +# (is/not boundary, start/end word, start/end subject string) +\babc\b & <abc> abc +\<abc\> & <abc> abc +\Babc\B & abc +\B[abc]\B & <abc> b +\B[abc]+ - <abc> bc +\B[abc]\+ b <abc> bc +\`abc & abc abc +abc\' & abc abc +\`abc\' & abc abc +\`.+\' - abNc abNc +\`.\+\' b abNc abNc +(\`a) - Na +(a\`) - aN +(a\') - aN +(\'a) - Na diff --git a/lib/libregex/tests/libregex_test.sh b/lib/libregex/tests/libregex_test.sh new file mode 100755 index 000000000000..7a675944d05b --- /dev/null +++ b/lib/libregex/tests/libregex_test.sh @@ -0,0 +1,55 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2017 Kyle Evans <kevans@FreeBSD.org> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +check() +{ + local dataname="${1}"; shift + + prog="$(atf_get_srcdir)/h_regex" + data="$(atf_get_srcdir)/data/${dataname}.in" + + atf_check -x "${prog} <${data}" + atf_check -x "${prog} -el <${data}" + atf_check -x "${prog} -er <${data}" +} + +create_tc() +{ + local name="${1}"; shift + local descr="${1}"; shift + + atf_test_case "${name}" + eval "${name}_head() { atf_set 'descr' '${descr}'; }" + eval "${name}_body() { check '${name}'; }" + + atf_add_test_case "${name}" +} + +atf_init_test_cases() +{ + create_tc gnuext "Check GNU extension functionality" +} |