blob: dad28f32f7e04a234af647a1275e602b7e108a30 [file] [log] [blame]
#!/bin/sh
. ../../lib/sh-test-lib
OUTPUT="$(pwd)/output"
mkdir -p "${OUTPUT}"
RESULT_FILE="${OUTPUT}/result.txt"
export RESULT_FILE
TEST_SUITE="cryptsetup"
usage() {
echo "Usage: $0 [-s] [-h <hash>] [-c <cipher>]" 1>&2
exit 1
}
while getopts "h:c:s:" o; do
case "$o" in
h) HASH="${OPTARG}" ;;
c) CIPHER="${OPTARG}" ;;
s) SKIP_INSTALL="${OPTARG}" ;;
*) usage ;;
esac
done
echo HASH="${HASH}"
echo CIPHER="${CIPHER}"
create_out_dir "${OUTPUT}"
install_deps "cryptsetup" "${SKIP_INSTALL}"
# First test to check if cryptsetup is properly installed
cryptsetup --version
exit_on_fail "${TEST_SUITE}-version"
for h in ${HASH}; do
LOG_FILE="${OUTPUT}/${TEST_SUITE}-hash-$h.txt"
if pipe0_status "cryptsetup benchmark -h $h" "tee ${LOG_FILE}"; then
# get metric
iter=$(grep -v "^#" "${LOG_FILE}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | tr -s ' ' | cut -d' ' -f2)
add_metric "${TEST_SUITE}-benchmark-hash-$h" "pass" "$iter" "iter/s"
else
report_fail "${TEST_SUITE}-benchmark-hash-$h"
fi
done
for c in ${CIPHER}; do
cipher=$(echo "$c" | cut -d'_' -f1)
key=$(echo "$c" | cut -d'_' -f2)
LOG_FILE="${OUTPUT}/${TEST_SUITE}-cipher-$c.txt"
if pipe0_status "cryptsetup benchmark -c $cipher -s $key" "tee ${LOG_FILE}"; then
# get metric
result=$(grep -v "^#" "${LOG_FILE}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | tr -s ' ')
enc=$(echo "$result" | cut -d' ' -f3)
enc_unit=$(echo "$result" | cut -d' ' -f4)
add_metric "${TEST_SUITE}-benchmark-cipher-$c-encryption" "pass" "$enc" "$enc_unit"
dec=$(echo "$result" | cut -d' ' -f5)
dec_unit=$(echo "$result" | cut -d' ' -f6)
add_metric "${TEST_SUITE}-benchmark-cipher-$c-decryption" "pass" "$dec" "$dec_unit"
else
report_fail "${TEST_SUITE}-benchmark-cipher-$c-encryption"
report_fail "${TEST_SUITE}-benchmark-cipher-$c-decryption"
fi
done