summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/check-implementation.sh43
1 files changed, 27 insertions, 16 deletions
diff --git a/test/check-implementation.sh b/test/check-implementation.sh
index 985ff04..0ce739d 100755
--- a/test/check-implementation.sh
+++ b/test/check-implementation.sh
@@ -6,7 +6,7 @@ set -eu
# well as another one, and compare vectors.
TEST_DIR=$(dirname $0)
-ROOT=${TEST_DIR}/..
+ROOT_DIR=${TEST_DIR}/..
implem=$1
@@ -17,8 +17,12 @@ run-genkat ()
local implem=$2
local mode=$3
local keylen=$4
+ echo "Testing mode ${mode}-${keylen}…"
- local src_dir=${ROOT}/src/
+ local src_dir=${ROOT_DIR}/src
+ local vectors_dir=${tmp_dir}/vectors/${implem}
+ local genkat_dir=${tmp_dir}/genkat/${implem}/${mode}-${keylen}
+ local genkat=${genkat_dir}/genkat
local source_files=(
ae-common.h
@@ -28,30 +32,34 @@ run-genkat ()
tweakey.{c,h}
)
+ mkdir -p ${genkat_dir} # "-p" to allow comparing ref against ref.
+
local f
for f in ${source_files[@]}
do
- cp ${src_dir}/${implem}/${f} ${tmp_dir}
+ cp ${src_dir}/${implem}/${f} ${genkat_dir}
done
- cp ${src_dir}/${mode}-${keylen}/_parameters.h ${tmp_dir}
- cp ${ROOT_DIR}/nist/{api.h,encrypt.c} ${tmp_dir}
+ cp ${src_dir}/${mode}-${keylen}/_parameters.h ${genkat_dir}
+ cp ${ROOT_DIR}/nist/{api.h,encrypt.c} ${genkat_dir}
+ cp ${ROOT_DIR}/nist/TestVectorGen/* ${genkat_dir}
local nist_flags=(-std=c99 -Wall -Wextra -Wshadow -fsanitize=address,undefined -O2)
- gcc ${nist_flags[@]} -Werror -I${tmp_dir} -o ${tmp_dir}/genkat
- (
- cd ${tmp_dir}
- ./genkat
- cat LWC_AEAD_KAT*.txt
- )
+ gcc ${nist_flags[@]} -Werror -I${genkat_dir} ${genkat_dir}/*.c -o ${genkat}
+
+ ${genkat}
+ mv LWC_AEAD_KAT*.txt ${vectors_dir}/${mode}-${keylen}
}
test-implem ()
{
- local implem=$1
- local tmp_dir=$(mktemp -d)
+ local tmp_dir=$1
+ local implem=$2
+ echo "Testing implementation ${implem}…"
+
+ mkdir -p ${tmp_dir}/{genkat,vectors}/${implem}
local mode
local keylen
@@ -63,9 +71,12 @@ test-implem ()
run-genkat ${tmp_dir} ${implem} ${mode} ${keylen}
done
done
-
- rm -r ${tmp_dir}
}
-diff -u <(test-implem ref) <(test-implem ${implem})
+tmp_dir=$(mktemp -d)
+
+test-implem ${tmp_dir} ref
+test-implem ${tmp_dir} ${implem}
+
+diff --brief --new-file --recursive ${tmp_dir}/vectors/ref ${tmp_dir}/vectors/${implem}