ref: 926a6f63cb362098cb5ee5332f0e8149ae452675
parent: 46441ec5c88529a9a3d4860d899992bf23e368e6
author: Tom Finegan <tomfinegan@google.com>
date: Thu Jul 10 11:17:05 EDT 2014
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
--- a/test/decode_to_md5.sh
+++ b/test/decode_to_md5.sh
@@ -39,7 +39,8 @@
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--- a/test/decode_with_drops.sh
+++ b/test/decode_with_drops.sh
@@ -39,7 +39,8 @@
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}
--- a/test/postproc.sh
+++ b/test/postproc.sh
@@ -37,7 +37,8 @@
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}
--- a/test/resize_util.sh
+++ b/test/resize_util.sh
@@ -38,7 +38,7 @@
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}--- a/test/simple_decoder.sh
+++ b/test/simple_decoder.sh
@@ -37,7 +37,8 @@
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}
--- a/test/simple_encoder.sh
+++ b/test/simple_encoder.sh
@@ -34,7 +34,7 @@
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}--- a/test/tools_common.sh
+++ b/test/tools_common.sh
@@ -16,6 +16,7 @@
set -e
devnull='> /dev/null 2>&1'
+VPX_TEST_PREFIX=""
elog() {echo "$@" 1>&2
@@ -204,9 +205,12 @@
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 @@
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 @@
--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 @@
LIBVPX_TEST_DATA_PATH="$2"
shift
;;
+ --prefix)
+ VPX_TEST_PREFIX="$2"
+ shift
+ ;;
--verbose)
VPX_TEST_VERBOSE_OUTPUT=yes
;;
@@ -466,6 +475,7 @@
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}--- a/test/twopass_encoder.sh
+++ b/test/twopass_encoder.sh
@@ -34,7 +34,7 @@
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}--- a/test/vp8cx_set_ref.sh
+++ b/test/vp8cx_set_ref.sh
@@ -39,9 +39,9 @@
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}
--- a/test/vp9_spatial_svc_encoder.sh
+++ b/test/vp9_spatial_svc_encoder.sh
@@ -39,10 +39,9 @@
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}
--- a/test/vpx_temporal_svc_encoder.sh
+++ b/test/vpx_temporal_svc_encoder.sh
@@ -44,8 +44,8 @@
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}--
⑨