sh tests: Add support for running tested programs within another program.

Specifying the --prefix command line arg executes all test programs within the
context of the prefix string, which is assigned to VPX_TEST_PREFIX.
All test functions updated to include VPX_TEST_PREFIX in their eval command.

Change-Id: I2e215cc8f216048edf3269db02a6b5660fe32318
This commit is contained in:
Tom Finegan 2014-07-10 15:17:05 -07:00
Родитель 46441ec5c8
Коммит 926a6f63cb
11 изменённых файлов: 39 добавлений и 26 удалений

Просмотреть файл

@ -39,7 +39,8 @@ decode_to_md5() {
return 1
fi
eval "${decoder}" "${input_file}" "${output_file}" ${devnull}
eval "${VPX_TEST_PREFIX}" "${decoder}" "${input_file}" "${output_file}" \
${devnull}
[ -e "${output_file}" ] || return 1

Просмотреть файл

@ -39,7 +39,8 @@ decode_with_drops() {
return 1
fi
eval "${decoder}" "${input_file}" "${output_file}" "${drop_mode}" ${devnull}
eval "${VPX_TEST_PREFIX}" "${decoder}" "${input_file}" "${output_file}" \
"${drop_mode}" ${devnull}
[ -e "${output_file}" ] || return 1
}

Просмотреть файл

@ -37,7 +37,8 @@ postproc() {
return 1
fi
eval "${decoder}" "${input_file}" "${output_file}" ${devnull}
eval "${VPX_TEST_PREFIX}" "${decoder}" "${input_file}" "${output_file}" \
${devnull}
[ -e "${output_file}" ] || return 1
}

Просмотреть файл

@ -38,7 +38,7 @@ resize_util() {
return 1
fi
eval "${resizer}" "${YUV_RAW_INPUT}" \
eval "${VPX_TEST_PREFIX}" "${resizer}" "${YUV_RAW_INPUT}" \
"${YUV_RAW_INPUT_WIDTH}x${YUV_RAW_INPUT_HEIGHT}" \
"${target_dimensions}" "${output_file}" ${frames_to_resize} \
${devnull}

Просмотреть файл

@ -37,7 +37,8 @@ simple_decoder() {
return 1
fi
eval "${decoder}" "${input_file}" "${output_file}" ${devnull}
eval "${VPX_TEST_PREFIX}" "${decoder}" "${input_file}" "${output_file}" \
${devnull}
[ -e "${output_file}" ] || return 1
}

Просмотреть файл

@ -34,7 +34,7 @@ simple_encoder() {
return 1
fi
eval "${encoder}" "${codec}" "${YUV_RAW_INPUT_WIDTH}" \
eval "${VPX_TEST_PREFIX}" "${encoder}" "${codec}" "${YUV_RAW_INPUT_WIDTH}" \
"${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" 9999 \
${devnull}

Просмотреть файл

@ -16,6 +16,7 @@ VPX_TEST_TOOLS_COMMON_SH=included
set -e
devnull='> /dev/null 2>&1'
VPX_TEST_PREFIX=""
elog() {
echo "$@" 1>&2
@ -204,9 +205,12 @@ vpxdec() {
local decoder="${LIBVPX_BIN_PATH}/vpxdec${VPX_TEST_EXE_SUFFIX}"
if [ -z "${pipe_input}" ]; then
eval "${decoder}" "$input" --summary --noblit "$@" ${devnull}
eval "${VPX_TEST_PREFIX}" "${decoder}" "$input" --summary --noblit "$@" \
${devnull}
else
cat "${input}" | eval "${decoder}" - --summary --noblit "$@" ${devnull}
cat "${input}" \
| eval "${VPX_TEST_PREFIX}" "${decoder}" - --summary --noblit "$@" \
${devnull}
fi
}
@ -252,16 +256,14 @@ vpxenc() {
fi
if [ -z "${pipe_input}" ]; then
eval "${encoder}" --codec=${codec} --width=${width} --height=${height} \
--limit=${frames} ${use_ivf} ${extra_flags} --output="${output}" \
"${input}" \
${devnull}
eval "${VPX_TEST_PREFIX}" "${encoder}" --codec=${codec} --width=${width} \
--height=${height} --limit=${frames} ${use_ivf} ${extra_flags} \
--output="${output}" "${input}" ${devnull}
else
cat "${input}" \
| eval "${encoder}" --codec=${codec} --width=${width} \
--height=${height} --limit=${frames} ${use_ivf} ${extra_flags} \
--output="${output}" - \
${devnull}
| eval "${VPX_TEST_PREFIX}" "${encoder}" --codec=${codec} \
--width=${width} --height=${height} --limit=${frames} ${use_ivf} \
${extra_flags} --output="${output}" - ${devnull}
fi
if [ ! -e "${output}" ]; then
@ -351,6 +353,9 @@ cat << EOF
--help: Display this message and exit.
--test-data-path <path to libvpx test data directory>
--show-program-output: Shows output from all programs being tested.
--prefix: Allows for a user specified prefix to be inserted before all test
programs. Grants the ability, for example, to run test programs
within valgrind.
--verbose: Verbose output.
When the --bin-path option is not specified the script attempts to use
@ -400,6 +405,10 @@ while [ -n "$1" ]; do
LIBVPX_TEST_DATA_PATH="$2"
shift
;;
--prefix)
VPX_TEST_PREFIX="$2"
shift
;;
--verbose)
VPX_TEST_VERBOSE_OUTPUT=yes
;;
@ -466,6 +475,7 @@ vlog "$(basename "${0%.*}") test configuration:
VPX_TEST_EXE_SUFFIX=${VPX_TEST_EXE_SUFFIX}
VPX_TEST_FILTER=${VPX_TEST_FILTER}
VPX_TEST_OUTPUT_DIR=${VPX_TEST_OUTPUT_DIR}
VPX_TEST_PREFIX=${VPX_TEST_PREFIX}
VPX_TEST_RAND=${VPX_TEST_RAND}
VPX_TEST_RUN_DISABLED_TESTS=${VPX_TEST_RUN_DISABLED_TESTS}
VPX_TEST_SHOW_PROGRAM_OUTPUT=${VPX_TEST_SHOW_PROGRAM_OUTPUT}

Просмотреть файл

@ -34,7 +34,7 @@ twopass_encoder() {
return 1
fi
eval "${encoder}" "${codec}" "${YUV_RAW_INPUT_WIDTH}" \
eval "${VPX_TEST_PREFIX}" "${encoder}" "${codec}" "${YUV_RAW_INPUT_WIDTH}" \
"${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" \
${devnull}

Просмотреть файл

@ -39,9 +39,9 @@ vpx_set_ref() {
return 1
fi
eval "${encoder}" "${YUV_RAW_INPUT_WIDTH}" "${YUV_RAW_INPUT_HEIGHT}" \
"${YUV_RAW_INPUT}" "${output_file}" "${ref_frame_num}" \
${devnull}
eval "${VPX_TEST_PREFIX}" "${encoder}" "${YUV_RAW_INPUT_WIDTH}" \
"${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" \
"${ref_frame_num}" ${devnull}
[ -e "${output_file}" ] || return 1
}

Просмотреть файл

@ -39,10 +39,9 @@ vp9_spatial_svc_encoder() {
return 1
fi
eval "${encoder}" -w "${YUV_RAW_INPUT_WIDTH}" -h "${YUV_RAW_INPUT_HEIGHT}" \
-k "${max_kf}" -f "${frames_to_encode}" "$@" "${YUV_RAW_INPUT}" \
"${output_file}" \
${devnull}
eval "${VPX_TEST_PREFIX}" "${encoder}" -w "${YUV_RAW_INPUT_WIDTH}" \
-h "${YUV_RAW_INPUT_HEIGHT}" -k "${max_kf}" -f "${frames_to_encode}" \
"$@" "${YUV_RAW_INPUT}" "${output_file}" ${devnull}
[ -e "${output_file}" ] || return 1
}

Просмотреть файл

@ -44,8 +44,8 @@ vpx_tsvc_encoder() {
return 1
fi
eval "${encoder}" "${YUV_RAW_INPUT}" "${output_file}" "${codec}" \
"${YUV_RAW_INPUT_WIDTH}" "${YUV_RAW_INPUT_HEIGHT}" \
eval "${VPX_TEST_PREFIX}" "${encoder}" "${YUV_RAW_INPUT}" "${output_file}" \
"${codec}" "${YUV_RAW_INPUT_WIDTH}" "${YUV_RAW_INPUT_HEIGHT}" \
"${timebase_num}" "${timebase_den}" "${speed}" "${frame_drop_thresh}" \
"$@" \
${devnull}