summaryrefslogtreecommitdiffstats
path: root/contrib/netbsd-tests/ipf/t_nat_exec.sh
blob: 78110dc81080b71556e9d2d5b6f39a3d78f071d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# $NetBSD: t_nat_exec.sh,v 1.20 2014/07/15 20:00:23 martin 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.
#

nattest()
{
	h_copydata $1
	infmt=$2
	outfmt=$3
	shift
	shift
	shift
	args=$@

	if [ $outfmt = hex ] ; then
		format="-xF $infmt"
	else
		format="-F $infmt"
	fi

	format="$format"

	test -f in  && test -f reg || atf_fail "Test input file missing"

	{ while read rule; do
		atf_check -o save:save -x \
		    "echo \"$rule\" | ipftest $format -RDbN - -i in $args"
		cat save >>out
		echo "-------------------------------" >>out
	done; } <reg

	diff -u exp out || atf_fail "results differ"
}

test_case n1 nattest text text
test_case n2 nattest text text
test_case n3 nattest text text
test_case n4 nattest text text
test_case n5 nattest text text
test_case n6 nattest text text
test_case n7 nattest text text
test_case n8 nattest hex hex -T update_ipid=0
test_case n9 nattest hex hex -T update_ipid=0
test_case n10 nattest hex hex -T update_ipid=0
test_case n11 nattest text text
failing_test_case n12 nattest "Known to be broken" hex hex -T update_ipid=0 -v
test_case n13 nattest text text
failing_test_case_be n14 nattest "See PR kern/47665" text text
test_case n15 nattest text text -T update_ipid=0
test_case n16 nattest hex hex -D
test_case n17 nattest hex hex -D
test_case n100 nattest text text
test_case n101 nattest text text
test_case n102 nattest text text
test_case n103 nattest text text
test_case n104 nattest hex hex -T update_ipid=0
test_case n105 nattest hex hex -T update_ipid=0
test_case n106 nattest hex hex -T update_ipid=0
test_case n200 nattest hex hex -T update_ipid=0
test_case n1_6 nattest text text -6
test_case n2_6 nattest text text -6
#test_case n3_6 nattest text text -6
test_case n4_6 nattest text text -6
test_case n5_6 nattest text text -6
test_case n6_6 nattest text text -6
test_case n7_6 nattest text text -6
failing_test_case_be n8_6 nattest "See PR kern/47665" hex hex -6
failing_test_case_be n9_6 nattest "See PR kern/47665" hex hex -6
test_case n11_6 nattest text text -6
test_case n12_6 nattest hex hex -6
test_case n15_6 nattest text text -6

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
	atf_add_test_case n100
	atf_add_test_case n101
	atf_add_test_case n102
	atf_add_test_case n103
	atf_add_test_case n104
	atf_add_test_case n105
	atf_add_test_case n106
	atf_add_test_case n200

	atf_add_test_case n1_6
	atf_add_test_case n2_6
#	atf_add_test_case n3_6
	atf_add_test_case n4_6
	atf_add_test_case n5_6
	atf_add_test_case n6_6
	atf_add_test_case n7_6
	atf_add_test_case n8_6
	atf_add_test_case n9_6
	atf_add_test_case n11_6
	atf_add_test_case n12_6
	atf_add_test_case n15_6
}
OpenPOWER on IntegriCloud