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