Module Name: src
Committed By: jmmv
Date: Sat Jul 10 17:28:36 UTC 2010
Modified Files:
src/tests/ipf: Atffile Makefile
Added Files:
src/tests/ipf: h_common.sh t_bpf.sh t_filter_exec.sh t_filter_parse.sh
t_logging.sh t_nat_exec.sh t_nat_ipf_exec.sh t_nat_parse.sh
t_pools.sh
Removed Files:
src/tests/ipf: t_ipf.awk t_ipf.in
Log Message:
Do not use awk to generate the test program. Use some eval magic to generate
the tests on the fly alongside with easier-to-read functions.
While doing this, split the big monolithic test program into more granular
but cohesive test programs.
Phew, this one was tough. And it's horrible to see that many these tests
(yes, the tests themselves probably) are broken.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/ipf/Atffile src/tests/ipf/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/ipf/h_common.sh src/tests/ipf/t_bpf.sh \
src/tests/ipf/t_filter_exec.sh src/tests/ipf/t_filter_parse.sh \
src/tests/ipf/t_logging.sh src/tests/ipf/t_nat_exec.sh \
src/tests/ipf/t_nat_ipf_exec.sh src/tests/ipf/t_nat_parse.sh \
src/tests/ipf/t_pools.sh
cvs rdiff -u -r1.3 -r0 src/tests/ipf/t_ipf.awk
cvs rdiff -u -r1.2 -r0 src/tests/ipf/t_ipf.in
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/ipf/Atffile
diff -u src/tests/ipf/Atffile:1.1 src/tests/ipf/Atffile:1.2
--- src/tests/ipf/Atffile:1.1 Fri Feb 20 21:42:59 2009
+++ src/tests/ipf/Atffile Sat Jul 10 17:28:36 2010
@@ -1,6 +1,13 @@
Content-Type: application/X-atf-atffile; version="1"
-X-NetBSD-Id: "$NetBSD: Atffile,v 1.1 2009/02/20 21:42:59 jmmv Exp $"
+X-NetBSD-Id: "$NetBSD: Atffile,v 1.2 2010/07/10 17:28:36 jmmv Exp $"
prop: test-suite = "NetBSD"
-tp: t_ipf
+tp: t_bpf
+tp: t_filter_exec
+tp: t_filter_parse
+tp: t_logging
+tp: t_nat_exec
+tp: t_nat_ipf_exec
+tp: t_nat_parse
+tp: t_pools
Index: src/tests/ipf/Makefile
diff -u src/tests/ipf/Makefile:1.1 src/tests/ipf/Makefile:1.2
--- src/tests/ipf/Makefile:1.1 Fri Feb 20 21:42:59 2009
+++ src/tests/ipf/Makefile Sat Jul 10 17:28:36 2010
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2009/02/20 21:42:59 jmmv Exp $
+# $NetBSD: Makefile,v 1.2 2010/07/10 17:28:36 jmmv Exp $
NOMAN= # defined
@@ -6,11 +6,11 @@
TESTSDIR= ${TESTSBASE}/ipf
-TESTS_SH= t_ipf
-
-CLEANFILES+= t_ipf.sh
-t_ipf.sh: t_ipf.awk t_ipf.in
- ${TOOL_AWK} -f ${.CURDIR}/t_ipf.awk ${.CURDIR}/t_ipf.in >t_ipf.sh
+.for name in t_bpf t_filter_exec t_filter_parse t_logging t_nat_exec \
+ t_nat_ipf_exec t_nat_parse t_pools
+TESTS_SH+= ${name}
+TESTS_SH_SRC_${name}= h_common.sh ${name}.sh
+.endfor
SUBDIR= regress input expected
Added files:
Index: src/tests/ipf/h_common.sh
diff -u /dev/null src/tests/ipf/h_common.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/h_common.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,70 @@
+# $NetBSD: h_common.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_copydata()
+{
+ test -f $(atf_get_srcdir)/input/$1 && \
+ cp $(atf_get_srcdir)/input/$1 in
+ test -f $(atf_get_srcdir)/regress/$1 && \
+ cp $(atf_get_srcdir)/regress/$1 reg
+ test -f $(atf_get_srcdir)/expected/$1 && \
+ cp $(atf_get_srcdir)/expected/$1 exp
+}
+
+test_case()
+{
+ local name="${1}"; shift
+ local check_function="${1}"; shift
+
+ atf_test_case "${name}"
+ eval "${name}_head() { \
+ atf_set use.fs true; \
+ }"
+ eval "${name}_body() { \
+ ${check_function} '${name}' \"\...@}\"; \
+ }"
+}
+
+broken_test_case()
+{
+ local name="${1}"; shift
+ local check_function="${1}"; shift
+
+ atf_test_case "${name}"
+ eval "${name}_head() { \
+ atf_set use.fs true; \
+ }"
+ eval "${name}_body() { \
+ atf_skip 'This test case is probably broken'; \
+ ${check_function} '${name}' \"\...@}\"; \
+ }"
+}
Index: src/tests/ipf/t_bpf.sh
diff -u /dev/null src/tests/ipf/t_bpf.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_bpf.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,68 @@
+# $NetBSD: t_bpf.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_itest()
+{
+ h_copydata $1
+
+ case $3 in
+ ipf)
+ atf_check -o file:exp -e ignore ipf -Rnvf reg
+ ;;
+ ipftest)
+ atf_check -o file:exp ipftest -D -r reg -i /dev/null
+ ;;
+ esac
+}
+
+h_bpftest()
+{
+ h_copydata $(echo ${1} | tr _ .)
+ cp "$(atf_get_srcdir)/input/$(echo ${1} | sed s,bpf_,,)" in
+
+ { while read rule; do
+ atf_check -o save:save -x "echo '$rule' | ipftest -Rbr - -i in"
+ cat save >>out
+ echo "--------" >>out
+ done; } <reg
+
+ diff -u exp out || atf_fail "results differ"
+}
+
+broken_test_case bpf1 itest text ipf
+broken_test_case bpf_f1 bpftest text text
+
+atf_init_test_cases()
+{
+ atf_add_test_case bpf1
+ atf_add_test_case bpf_f1
+}
Index: src/tests/ipf/t_filter_exec.sh
diff -u /dev/null src/tests/ipf/t_filter_exec.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_filter_exec.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,128 @@
+# $NetBSD: t_filter_exec.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_dotest()
+{
+ h_copydata $1
+
+ { while read rule; do
+ atf_check -x "echo \"$rule\" | ipftest -F \
+$2 -Rbr - -i in $4 >>out"
+ echo "--------" >>out
+ done; } <reg
+
+ diff -u exp out || atf_fail "results differ"
+}
+
+h_mtest()
+{
+ h_copydata $1
+
+ atf_check -o save:out ipftest -F $2 -Rbr reg -i in
+ echo "--------" >>out
+
+ diff -u exp out || atf_fail "results differ"
+}
+
+h_dotest6()
+{
+ h_copydata $(echo ${1} | tr _ .)
+
+ ipftest -6 -r /dev/null -i /dev/null >/dev/null 2>&1 \
+ || atf_skip "skipping IPv6 tests"
+
+ { while read rule; do
+ atf_check -o save:save -x "echo \"$rule\" | \
+ipftest -F $2 -6br - -i in"
+ cat save >>out
+ echo "--------" >>out
+ done; } <reg
+
+ diff -u exp out || atf_fail "results differ"
+}
+
+test_case f1 dotest text text
+test_case f2 dotest text text
+test_case f3 dotest text text
+test_case f4 dotest text text
+test_case f5 dotest text text
+test_case f6 dotest text text
+test_case f7 dotest text text
+test_case f8 dotest text text
+test_case f9 dotest text text
+test_case f10 dotest text text
+test_case f11 dotest text text -D
+test_case f12 dotest hex hex
+test_case f13 dotest hex hex
+test_case f14 dotest text text
+test_case f15 mtest text text
+test_case f16 mtest text text
+test_case f17 mtest hex hex
+test_case f18 mtest text text
+test_case f19 dotest text text -T fr_statemax=3
+test_case f20 mtest text text
+test_case f24 mtest hex text
+test_case ipv6_1 dotest6 hex hex
+test_case ipv6_2 dotest6 hex hex
+test_case ipv6_3 dotest6 hex hex
+test_case ipv6_5 dotest6 hex hex
+test_case ipv6_6 dotest6 hex text
+
+atf_init_test_cases()
+{
+ atf_add_test_case f1
+ atf_add_test_case f2
+ atf_add_test_case f3
+ atf_add_test_case f4
+ atf_add_test_case f5
+ atf_add_test_case f6
+ atf_add_test_case f7
+ atf_add_test_case f8
+ atf_add_test_case f9
+ atf_add_test_case f10
+ atf_add_test_case f11
+ atf_add_test_case f12
+ atf_add_test_case f13
+ atf_add_test_case f14
+ atf_add_test_case f15
+ atf_add_test_case f16
+ atf_add_test_case f17
+ atf_add_test_case f18
+ atf_add_test_case f19
+ atf_add_test_case f20
+ atf_add_test_case f24
+ atf_add_test_case ipv6_1
+ atf_add_test_case ipv6_2
+ atf_add_test_case ipv6_3
+ atf_add_test_case ipv6_5
+ atf_add_test_case ipv6_6
+}
Index: src/tests/ipf/t_filter_parse.sh
diff -u /dev/null src/tests/ipf/t_filter_parse.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_filter_parse.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,131 @@
+# $NetBSD: t_filter_parse.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_itest()
+{
+ h_copydata $1
+
+ case $3 in
+ ipf)
+ atf_check -o file:exp -e ignore ipf -Rnvf reg
+ ;;
+ ipftest)
+ atf_check -o file:exp ipftest -D -r reg -i /dev/null
+ ;;
+ esac
+}
+
+h_itest_i19()
+{
+ cp "$(atf_get_srcdir)/expected/i19.dist" .
+
+ if [ "`grep LOG_SECURITY /usr/include/sys/syslog.h 2>&1`" = "" ] ; then
+ if [ "`grep LOG_AUDIT /usr/include/sys/syslog.h 2>&1`" = "" ] ; then
+ sed -e 's/security/!!!/g' i19.dist > i19.p1;
+ else
+ sed -e 's/security/audit/g' i19.dist > i19.p1;
+ fi
+ else
+ cp i19.dist i19.p1;
+ fi
+ if [ "`grep LOG_AUTHPRIV /usr/include/sys/syslog.h 2>&1`" = "" ] ; then
+ sed -e 's/authpriv/!!!/g' i19.p1 > i19.p2;
+ else
+ cp i19.p1 i19.p2;
+ fi
+ if [ "`grep LOG_LOGALERT /usr/include/sys/syslog.h 2>&1`" = "" ] ; then
+ sed -e 's/logalert/!!!/g' i19.p2 > i19.p1;
+ else
+ cp i19.p2 i19.p1;
+ fi
+ if [ "`grep LOG_FTP /usr/include/sys/syslog.h 2>&1`" = "" ] ; then
+ sed -e 's/ftp/!!!/g' i19.p1 > i19.p2;
+ else
+ cp i19.p1 i19.p2;
+ fi
+ if [ "`egrep 'LOG_CRON.*15' /usr/include/sys/syslog.h 2>&1`" != "" ] ; then
+ sed -e 's/cron/cron2/g' i19.p2 > i19;
+ else
+ cp i19.p2 i19;
+ fi
+ /bin/rm i19.p?
+
+ mv i19 exp
+ h_itest "$@"
+}
+
+test_case i1 itest text ipf
+test_case i2 itest text ipf
+test_case i3 itest text ipf
+test_case i4 itest text ipf
+test_case i5 itest text ipf
+test_case i6 itest text ipf
+test_case i7 itest text ipf
+test_case i8 itest text ipf
+test_case i9 itest text ipf
+test_case i10 itest text ipf
+test_case i11 itest text ipf
+test_case i12 itest text ipf
+test_case i13 itest text ipf
+test_case i14 itest text ipf
+test_case i15 itest text ipf
+test_case i16 itest text ipf
+test_case i17 itest text ipftest
+test_case i18 itest text ipf
+test_case i19 itest_i19 text ipf
+test_case i20 itest text ipf
+test_case i21 itest text ipf
+
+atf_init_test_cases()
+{
+ atf_add_test_case i1
+ atf_add_test_case i2
+ atf_add_test_case i3
+ atf_add_test_case i4
+ atf_add_test_case i5
+ atf_add_test_case i6
+ atf_add_test_case i7
+ atf_add_test_case i8
+ atf_add_test_case i9
+ atf_add_test_case i10
+ atf_add_test_case i11
+ atf_add_test_case i12
+ atf_add_test_case i13
+ atf_add_test_case i14
+ atf_add_test_case i15
+ atf_add_test_case i16
+ atf_add_test_case i17
+ atf_add_test_case i18
+ atf_add_test_case i19
+ atf_add_test_case i20
+ atf_add_test_case i21
+}
Index: src/tests/ipf/t_logging.sh
diff -u /dev/null src/tests/ipf/t_logging.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_logging.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,80 @@
+# $NetBSD: t_logging.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_logtest()
+{
+ h_copydata $1
+ cp $(atf_get_srcdir)/expected/$1.b exp.b
+
+ case `uname -s` in
+ OSF1)
+ GMT=:
+ ;;
+ *)
+ GMT=GMT
+ ;;
+ esac
+
+ { while read rule; do
+ echo $rule >>out
+ atf_check -o ignore -x \
+ "echo $rule | ipftest -br - -F $2 -i in -l logout"
+
+ atf_check -o save:save -x "TZ=$GMT ipmon -P /dev/null -f logout"
+ cat save >>out
+ echo "--------" >>out
+
+ atf_check -o save:save -x "TZ=$GMT ipmon -P /dev/null -bf logout"
+ cat save >>out.b
+ echo "--------" >>out.b
+ done; } <reg
+
+ atf_check -o ignore ipftest -br reg -F $2 -i in -l logout
+
+ atf_check -o save:save -x "TZ=$GMT ipmon -P /dev/null -f logout"
+ cat save >>out
+ echo "--------" >>out
+
+ atf_check -o save:save -x "TZ=$GMT ipmon -P /dev/null -bf logout"
+ cat save >>out.b
+ echo "--------" >>out.b
+
+ diff -u exp out || atf_fail "results differ"
+ diff -u exp.b out.b || atf_fail "results differ"
+}
+
+test_case l1 logtest hex hex
+
+atf_init_test_cases()
+{
+ atf_add_test_case l1
+}
Index: src/tests/ipf/t_nat_exec.sh
diff -u /dev/null src/tests/ipf/t_nat_exec.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_nat_exec.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,90 @@
+# $NetBSD: t_nat_exec.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_nattest()
+{
+ h_copydata $1
+
+ if [ $3 = hex ] ; then
+ format="-xF $2"
+ else
+ format="-F $2"
+ fi
+
+ format="$4 $format"
+
+ { while read rule; do
+ atf_check -o save:save -x \
+ "echo \"$rule\" | ipftest $format -RbN - -i in"
+ cat save >>out
+ echo "-------------------------------" >>out
+ done; } <reg
+
+ diff -u exp out || atf_fail "results differ"
+}
+
+broken_test_case n1 nattest text text
+broken_test_case n2 nattest text text
+test_case n3 nattest text text
+broken_test_case n4 nattest text text
+broken_test_case n5 nattest text text
+broken_test_case n6 nattest text text
+test_case n7 nattest text text
+test_case n8 nattest hex hex -T fr_update_ipid=0
+test_case n9 nattest hex hex -T fr_update_ipid=0
+test_case n10 nattest hex hex -T fr_update_ipid=0
+broken_test_case n11 nattest text text
+test_case n12 nattest hex hex -T fr_update_ipid=0
+test_case n13 nattest text text
+test_case n14 nattest text text
+test_case n16 nattest hex hex -D
+test_case n17 nattest hex hex -D
+
+atf_init_test_cases()
+{
+ atf_add_test_case n1
+ atf_add_test_case n2
+ atf_add_test_case n3
+ atf_add_test_case n4
+ atf_add_test_case n5
+ atf_add_test_case n6
+ atf_add_test_case n7
+ atf_add_test_case n8
+ atf_add_test_case n9
+ atf_add_test_case n10
+ atf_add_test_case n11
+ atf_add_test_case n12
+ atf_add_test_case n13
+ atf_add_test_case n14
+ atf_add_test_case n16
+ atf_add_test_case n17
+}
Index: src/tests/ipf/t_nat_ipf_exec.sh
diff -u /dev/null src/tests/ipf/t_nat_ipf_exec.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_nat_ipf_exec.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,107 @@
+# $NetBSD: t_nat_ipf_exec.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_natipftest()
+{
+ h_copydata $1
+ cp $(atf_get_srcdir)/regress/$1.nat nat
+ cp $(atf_get_srcdir)/regress/$1.ipf ipf
+
+ if [ $4 = hex ] ; then
+ format="-xF $3"
+ else
+ format="-F $3"
+ fi
+
+ case $2 in
+ single)
+ { while read rule; do
+ atf_check -o save:save -x "echo \"$rule\" | \
+ipftest -R $5 $format -b -r ipf -N - -i in"
+ cat save >>out
+ echo "-------------------------------" >>out
+ done; } <nat
+ ;;
+ multi)
+ atf_check -o save:out ipftest -R $5 \
+ $format -b -r ipf -N nat -i in
+ echo "-------------------------------" >>out
+ ;;
+ esac
+
+ diff -u exp out || atf_fail "results differ"
+}
+
+test_case ni1 natipftest multi hex hex -T fr_update_ipid=1
+test_case ni2 natipftest single hex hex -T fr_update_ipid=1
+test_case ni3 natipftest single hex hex -T fr_update_ipid=1
+test_case ni4 natipftest single hex hex -T fr_update_ipid=1
+broken_test_case ni5 natipftest single hex hex -T fr_update_ipid=1
+test_case ni6 natipftest multi hex hex -T fr_update_ipid=1
+test_case ni7 natipftest single hex hex -T fr_update_ipid=1
+test_case ni8 natipftest single hex hex -T fr_update_ipid=1
+test_case ni9 natipftest single hex hex -T fr_update_ipid=1
+broken_test_case ni10 natipftest single hex hex -T fr_update_ipid=1
+broken_test_case ni11 natipftest single hex hex -T fr_update_ipid=1
+broken_test_case ni12 natipftest single hex hex -T fr_update_ipid=1
+test_case ni13 natipftest single hex hex -T fr_update_ipid=1
+test_case ni14 natipftest single hex hex -T fr_update_ipid=1
+test_case ni15 natipftest single hex hex -T fr_update_ipid=1
+test_case ni16 natipftest single hex hex -T fr_update_ipid=1
+broken_test_case ni19 natipftest single hex hex -T fr_update_ipid=0
+broken_test_case ni20 natipftest single hex hex -T fr_update_ipid=0
+test_case ni21 natipftest multi text text
+test_case ni23 natipftest multi text text -D
+
+atf_init_test_cases()
+{
+ atf_add_test_case ni1
+ atf_add_test_case ni2
+ atf_add_test_case ni3
+ atf_add_test_case ni4
+ atf_add_test_case ni5
+ atf_add_test_case ni6
+ atf_add_test_case ni7
+ atf_add_test_case ni8
+ atf_add_test_case ni9
+ atf_add_test_case ni10
+ atf_add_test_case ni11
+ atf_add_test_case ni12
+ atf_add_test_case ni13
+ atf_add_test_case ni14
+ atf_add_test_case ni15
+ atf_add_test_case ni16
+ atf_add_test_case ni19
+ atf_add_test_case ni20
+ atf_add_test_case ni21
+ atf_add_test_case ni23
+}
Index: src/tests/ipf/t_nat_parse.sh
diff -u /dev/null src/tests/ipf/t_nat_parse.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_nat_parse.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,55 @@
+# $NetBSD: t_nat_parse.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_intest()
+{
+ h_copydata $1
+
+ atf_check -o file:exp -e ignore ipnat -Rnvf reg
+}
+
+test_case in1 intest text text
+test_case in2 intest text text
+test_case in3 intest text text
+test_case in4 intest text text
+test_case in5 intest text text
+test_case in6 intest text text
+
+atf_init_test_cases()
+{
+ atf_add_test_case in1
+ atf_add_test_case in2
+ atf_add_test_case in3
+ atf_add_test_case in4
+ atf_add_test_case in5
+ atf_add_test_case in6
+}
Index: src/tests/ipf/t_pools.sh
diff -u /dev/null src/tests/ipf/t_pools.sh:1.1
--- /dev/null Sat Jul 10 17:28:36 2010
+++ src/tests/ipf/t_pools.sh Sat Jul 10 17:28:36 2010
@@ -0,0 +1,73 @@
+# $NetBSD: t_pools.sh,v 1.1 2010/07/10 17:28:36 jmmv Exp $
+#
+# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# 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.
+#
+#
+# (C)opyright 1993-1996 by Darren Reed.
+#
+# See the IPFILTER.LICENCE file for details on licencing.
+#
+
+h_iptest()
+{
+ h_copydata $1
+ mkdir input
+ cp $(atf_get_srcdir)/input/ip2.data input/
+
+ atf_check -o file:exp -e ignore ippool -f reg -nRv
+}
+
+h_ptest()
+{
+ h_copydata $1
+ cp $(atf_get_srcdir)/regress/$1.pool pool 2>/dev/null
+ cp $(atf_get_srcdir)/regress/$1.ipf ipf
+
+ if [ -f pool ] ; then
+ atf_check -o save:out ipftest -RD -b -P pool -r ipf -i in
+ else
+ atf_check -o save:out ipftest -RD -b -r ipf -i in
+ fi
+
+ echo "-------------------------------" >>out
+
+}
+
+test_case p1 ptest text text
+test_case p2 ptest text text
+test_case p3 ptest text text
+test_case p5 ptest text text
+test_case ip1 iptest text text
+test_case ip2 iptest text text
+
+atf_init_test_cases()
+{
+ atf_add_test_case p1
+ atf_add_test_case p2
+ atf_add_test_case p3
+ atf_add_test_case p5
+ atf_add_test_case ip1
+ atf_add_test_case ip2
+}