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 return 1
fi fi
eval "${decoder}" "${input_file}" "${output_file}" ${devnull} eval "${VPX_TEST_PREFIX}" "${decoder}" "${input_file}" "${output_file}" \
${devnull}
[ -e "${output_file}" ] || return 1 [ -e "${output_file}" ] || return 1

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

@ -39,7 +39,8 @@ decode_with_drops() {
return 1 return 1
fi 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 [ -e "${output_file}" ] || return 1
} }

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

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

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

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

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

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

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

@ -34,7 +34,7 @@ simple_encoder() {
return 1 return 1
fi 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 \ "${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" 9999 \
${devnull} ${devnull}

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

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

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

@ -34,7 +34,7 @@ twopass_encoder() {
return 1 return 1
fi 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}" \ "${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" \
${devnull} ${devnull}

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

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

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

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

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

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