aboutsummaryrefslogtreecommitdiff
path: root/contrib/unbound/testdata/svcb.tdir/svcb.test
blob: 17330e08fde64a9f26809d56e37fdbf8ff1b468b (plain) (blame)
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
# #-- svcb.test --#
# source the master var file when it's there
[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
# use .tpkg.var.test for in test variable passing
[ -f .tpkg.var.test ] && source .tpkg.var.test


# check and write the test vectors in their respective formats
PRE=../..
if ! $PRE/readzone svcb.test-vectors-pf.zone > svcb.test-vectors-pf.zone.out
then
	echo "Could not parse presentation format zone"
	exit 1

elif ! $PRE/readzone svcb.test-vectors-pf.zone.out > svcb.test-vectors-pf.zone.out.out
then
	echo "Could not parse output from presentation format zone"
	exit 1

elif ! $PRE/readzone svcb.test-vectors-wf.zone > svcb.test-vectors-wf.zone.out
then
	echo "Could not parse RFC3597 formatted zone"
	exit 1

elif ! $PRE/readzone svcb.test-vectors-wf.zone.out > svcb.test-vectors-wf.zone.out.out
then
	echo "Could not parse output from RFC3597 formatted zone"
	exit 1
else
	echo "All test zones parsed successfully"
fi


# check the formatting of the written files
if ! diff svcb.test-vectors-pf.zone.out svcb.test-vectors-pf.zone.out.out
then
	echo "Parsing inconsistency 1"
	exit 1

elif ! diff svcb.test-vectors-pf.zone.out svcb.test-vectors-wf.zone.out
then
	echo "Parsing inconsistency 2"
	exit 1

elif ! diff svcb.test-vectors-pf.zone.out svcb.test-vectors-wf.zone.out.out
then
	echo "Parsing inconsistency 3"
	exit 1
else
	echo "Parsing of SVCB and HTTPS was consistent"
fi


# check all the failure cases
if $PRE/readzone svcb.failure-cases-01
then
	echo "Failure case 01: ech value is not base64 encoded"
	echo "Incorrectly succeeded"
	exit 1

elif $PRE/readzone svcb.failure-cases-02
then
	echo "Failure case 02: port value needs to be a positive integer < 65536"
	echo "Incorrectly succeeded"
	exit 1

elif $PRE/readzone svcb.failure-cases-03
then
	echo "Failure case 02: 65 SvcParams is too many SvcParams; the limit is 64"
	echo "Incorrectly succeeded"
	exit 1

elif $PRE/readzone svcb.failure-cases-04
then
	echo "Failure case 04: 256 is too many characters for an alpn; maximum is 255"
	echo "Incorrectly succeeded"
	exit 1
else
	echo "All failure cases test successfully"
fi


# check all the success and write them
if ! $PRE/readzone svcb.success-cases.zone > svcb.success-cases.zone.out
then
 	echo "Some particular success cases did not succeed to parse"
 	exit 1

elif ! diff svcb.success-cases.zone.out svcb.success-cases.zone.cmp
then
	echo "Some success cases could not be printed"
 	exit 1
else
 	echo "All particular success cases parsed and printed successfully"
fi