xref: /netbsd-src/external/bsd/unbound/dist/testdata/svcb.tdir/svcb.test (revision 91f7d55fb697b5e0475da4718fa34c3a3ebeac85)
1# #-- svcb.test --#
2# source the master var file when it's there
3[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
4# use .tpkg.var.test for in test variable passing
5[ -f .tpkg.var.test ] && source .tpkg.var.test
6
7
8# check and write the test vectors in their respective formats
9PRE=../..
10if ! $PRE/readzone svcb.test-vectors-pf.zone > svcb.test-vectors-pf.zone.out
11then
12	echo "Could not parse presentation format zone"
13	exit 1
14
15elif ! $PRE/readzone svcb.test-vectors-pf.zone.out > svcb.test-vectors-pf.zone.out.out
16then
17	echo "Could not parse output from presentation format zone"
18	exit 1
19
20elif ! $PRE/readzone svcb.test-vectors-wf.zone > svcb.test-vectors-wf.zone.out
21then
22	echo "Could not parse RFC3597 formatted zone"
23	exit 1
24
25elif ! $PRE/readzone svcb.test-vectors-wf.zone.out > svcb.test-vectors-wf.zone.out.out
26then
27	echo "Could not parse output from RFC3597 formatted zone"
28	exit 1
29else
30	echo "All test zones parsed successfully"
31fi
32
33
34# check the formatting of the written files
35if ! diff svcb.test-vectors-pf.zone.out svcb.test-vectors-pf.zone.out.out
36then
37	echo "Parsing inconsistency 1"
38	exit 1
39
40elif ! diff svcb.test-vectors-pf.zone.out svcb.test-vectors-wf.zone.out
41then
42	echo "Parsing inconsistency 2"
43	exit 1
44
45elif ! diff svcb.test-vectors-pf.zone.out svcb.test-vectors-wf.zone.out.out
46then
47	echo "Parsing inconsistency 3"
48	exit 1
49else
50	echo "Parsing of SVCB and HTTPS was consistent"
51fi
52
53
54# check all the failure cases
55if $PRE/readzone svcb.failure-cases-01
56then
57	echo "Failure case 01: ech value is not base64 encoded"
58	echo "Incorrectly succeeded"
59	exit 1
60
61elif $PRE/readzone svcb.failure-cases-02
62then
63	echo "Failure case 02: port value needs to be a positive integer < 65536"
64	echo "Incorrectly succeeded"
65	exit 1
66
67elif $PRE/readzone svcb.failure-cases-03
68then
69	echo "Failure case 03: 65 SvcParams is too many SvcParams; the limit is 64"
70	echo "Incorrectly succeeded"
71	exit 1
72
73elif $PRE/readzone svcb.failure-cases-04
74then
75	echo "Failure case 04: 256 is too many characters for an alpn; maximum is 255"
76	echo "Incorrectly succeeded"
77	exit 1
78
79else
80	echo "All failure cases test successfully"
81fi
82
83
84# check all the success and write them
85if ! $PRE/readzone svcb.success-cases.zone > svcb.success-cases.zone.out
86then
87 	echo "Some particular success cases did not succeed to parse"
88 	exit 1
89
90elif ! diff svcb.success-cases.zone.out svcb.success-cases.zone.cmp
91then
92	echo "Some success cases could not be printed"
93 	exit 1
94else
95 	echo "All particular success cases parsed and printed successfully"
96fi
97
98
99