1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0-or-later
3# Copyright (c) 2019 Petr Vorel <pvorel@suse.cz>
4
5TST_TESTFUNC=do_test
6TST_CNT=2
7
8PATH="$(dirname $0)/../../../../testcases/lib/:$PATH"
9
10TST_NET_SKIP_VARIABLE_INIT=1
11
12# from tst_net_vars.c
13IPV4_NET16_UNUSED="10.23"
14IPV6_NET32_UNUSED="fd00:23"
15
16
17IPV4_DATA="
180 0|10.23.0.0
190 1|10.23.0.1
201 0|10.23.1.0
211 1|10.23.1.1
221 2|10.23.1.2
232 2|10.23.2.2
241 3|10.23.1.3
253 3|10.23.3.3
261 128|10.23.1.128
27128 128|10.23.128.128
281 254|10.23.1.254
29254 254|10.23.254.254
301 255|10.23.1.255
31255 255|10.23.255.255
321 256|10.23.1.0
33256 256|10.23.0.0
341 257|10.23.1.1
35257 257|10.23.1.1
36
37-c 0|10.23.0.2
38-c 0 lhost|10.23.0.2
39-c 0 rhost|10.23.0.1
40
41-c 1|10.23.0.2
42-c 1 rhost|10.23.0.1
43-c 2|10.23.0.4
44-c 2 rhost|10.23.0.3
45-c 127|10.23.0.254
46-c 127 rhost|10.23.0.253
47-c 128|10.23.1.2
48-c 128 rhost|10.23.1.1
49-c 254|10.23.1.254
50-c 254 rhost|10.23.1.253
51-c 255|10.23.2.2
52-c 255 rhost|10.23.2.1
53
54-c 0 -h1,255|10.23.0.2
55-c 0 -h1,255 rhost|10.23.0.1
56-c 1 -h1,255|10.23.0.2
57-c 1 -h1,255 rhost|10.23.0.1
58-c 127 -h1,255|10.23.0.254
59-c 127 -h1,255 rhost|10.23.0.253
60-c 128 -h1,255|10.23.1.1
61-c 128 -h1,255 rhost|10.23.0.255
62-c 255 -h1,255|10.23.1.255
63-c 255 -h1,255 rhost|10.23.1.254
64-c 256 -h1,255|10.23.2.2
65-c 256 -h1,255 rhost|10.23.2.1
66
67-c1 -h 2,8 -n 2,8|10.23.2.3
68-c1 -h 2,8 -n 2,8 rhost|10.23.2.2
69-c2 -h 2,8 -n 2,8|10.23.2.5
70-c2 -h 2,8 -n 2,8 rhost|10.23.2.4
71
72-c1 -n 22,44|10.23.22.2
73-c1 -n 22,44 rhost|10.23.22.1
74-c2 -n 22,44|10.23.22.4
75-c2 -n 22,44 rhost|10.23.22.3
76"
77
78IPV6_DATA="
790 0|fd00:23::
800 1|fd00:23::1
811 0|fd00:23:1::
821 1|fd00:23:1::1
831 2|fd00:23:1::2
842 2|fd00:23:2::2
851 3|fd00:23:1::3
863 3|fd00:23:3::3
871 32767|fd00:23:1::7fff
8832767 32767|fd00:23:7fff::7fff
891 65534|fd00:23:1::fffe
9065534 65534|fd00:23:fffe::fffe
911 65535|fd00:23:1::ffff
9265535 65535|fd00:23:ffff::ffff
931 65536|fd00:23:1::
9465536 65536|fd00:23::
951 65537|fd00:23:1::1
9665537 65537|fd00:23:1::1
97
98-c 0|fd00:23::2
99-c 0 lhost|fd00:23::2
100-c 0 rhost|fd00:23::1
101
102-c 1|fd00:23::2
103-c 1 rhost|fd00:23::1
104-c 2|fd00:23::4
105-c 2 rhost|fd00:23::3
106-c 32767|fd00:23::fffe
107-c 32767 rhost|fd00:23::fffd
108-c 32768|fd00:23:1::2
109-c 32768 rhost|fd00:23:1::1
110-c 65534|fd00:23:1::fffe
111-c 65534 rhost|fd00:23:1::fffd
112-c 65535|fd00:23:2::2
113-c 65535 rhost|fd00:23:2::1
114
115-c 0 -h1,65535|fd00:23::2
116-c 0 -h1,65535 rhost|fd00:23::1
117-c 1 -h1,65535|fd00:23::2
118-c 1 -h1,65535 rhost|fd00:23::1
119-c 32767 -h1,65535|fd00:23::fffe
120-c 32767 -h1,65535 rhost|fd00:23::fffd
121-c 32768 -h1,65535|fd00:23:1::1
122-c 32768 -h1,65535 rhost|fd00:23::ffff
123-c 65535 -h1,65535|fd00:23:1::ffff
124-c 65535 -h1,65535 rhost|fd00:23:1::fffe
125-c 65536 -h1,65535|fd00:23:2::2
126-c 65536 -h1,65535 rhost|fd00:23:2::1
127
128-c1 -h 2,8 -n 2,8|fd00:23:2::3
129-c1 -h 2,8 -n 2,8 rhost|fd00:23:2::2
130-c2 -h 2,8 -n 2,8|fd00:23:2::5
131-c2 -h 2,8 -n 2,8 rhost|fd00:23:2::4
132
133-c1 -n 22,44|fd00:23:16::2
134-c1 -n 22,44 rhost|fd00:23:16::1
135-c2 -n 22,44|fd00:23:16::4
136-c2 -n 22,44 rhost|fd00:23:16::3
137"
138
139test_tst_ipaddr_un()
140{
141	local data cmd i result
142	local var="$1"
143
144	tst_res TINFO "Testing for IPv${TST_IPVER}, data: \$$var"
145
146	eval data="\$$var"
147	IFS="
148"
149	for i in $data; do
150		cmd="tst_ipaddr_un $(echo $i | cut -d'|' -f 1)"
151		result="$(echo $i | cut -d'|' -f 2)"
152		tst_res TINFO "testing $cmd"
153		EXPECT_PASS "[ '$(eval $cmd)' = '$result' ]"
154	done
155}
156
157do_test2()
158{
159	test_tst_ipaddr_un "IPV${TST_IPVER}_DATA"
160}
161
162do_test()
163{
164	case $1 in
165	 1) TST_IPV6= TST_IPVER=4 do_test2;;
166	 2) TST_IPV6=6 TST_IPVER=6 do_test2;;
167	esac
168}
169
170. tst_net.sh
171tst_run
172