uvg266/tests/util.bash
Arttu Ylä-Outinen 674af752a2 Convert travis tests to scripts
Moves tests from .travis.yml to bash scripts in tests directory. Adds
the test scripts to tests/Makefile.am so that they are included when
running make check.
2017-06-22 09:37:55 +03:00

66 lines
1.3 KiB
Bash

#!/bin/bash
# Helper functions for test scripts.
set -euo pipefail
# Temporary files for encoder input and output.
yuvfile="$(mktemp --tmpdir tmp.XXXXXXXXXX.yuv)"
hevcfile="$(mktemp --tmpdir tmp.XXXXXXXXXX.hevc)"
cleanup() {
rm -rf ${yuvfile} ${hevcfile}
}
trap cleanup EXIT
print_and_run() {
printf '\n\n$ %s\n' "$*"
"$@"
}
prepare() {
cleanup
print_and_run \
ffmpeg -f lavfi -i "mandelbrot=size=${1}" \
-vframes "${2}" -pix_fmt yuv420p \
"${yuvfile}"
}
valgrind_test() {
dimensions="$1"
shift
frames="$1"
shift
prepare "${dimensions}" "${frames}"
print_and_run \
libtool execute \
valgrind --leak-check=full --error-exitcode=1 -- \
../src/kvazaar -i "${yuvfile}" "--input-res=${dimensions}" -o "${hevcfile}" "$@"
print_and_run \
TAppDecoderStatic -b "${hevcfile}"
cleanup
}
encode_test() {
dimensions="$1"
shift
frames="$1"
shift
expected_status="$1"
shift
prepare "${dimensions}" "${frames}"
set +e
print_and_run \
libtool execute \
../src/kvazaar -i "${yuvfile}" "--input-res=${dimensions}" -o "${hevcfile}" "$@"
actual_status="$?"
set -e
[[ ${actual_status} = ${expected_status} ]]
}