#!/bin/sh # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # SPDX-License-Identifier: MPL-2.0 # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. . ../conf.sh status=0 checkout() { rc=$1 case $rc in 0) : ok ;; *) echo_i "failed" status=$((status + 1)) return 1 ;; esac case $out in *$hash*) : ok ;; *) echo_i "expect $hash" echo_i "output $out" echo_i "failed" status=$((status + 1)) ;; esac } # test cases taken from RFC 5155 appendix A algo=1 flags=0 iters=12 salt="aabbccdd" while read name hash do echo_i "checking $NSEC3HASH $name" { out=$($NSEC3HASH $salt $algo $iters $name); rc=$?; } || true checkout $rc echo_i "checking $NSEC3HASH -r $name" { out=$($NSEC3HASH -r $algo $flags $iters $salt $name); rc=$?; } || true checkout $rc done <&1); rc=$?; } || true checkfail $rc echo_i "checking $NSEC3HASH extra args" { out=$($NSEC3HASH 00 1 0 two names 2>&1); rc=$?; } || true checkfail $rc echo_i "checking $NSEC3HASH bad option" { out=$($NSEC3HASH -? 2>&1); rc=$?; } || true checkfail $rc echo_i "exit status: $status" [ $status -eq 0 ] || exit 1