Commit ab9160de authored by Joshua Litt's avatar Joshua Litt

Allow test data path to be set by preprocessor symbol

Change-Id: I19c482c7cba34db574b3f33178ba20aede49779e
parent 103c4603
......@@ -18,16 +18,35 @@
namespace libvpx_test {
static FILE *OpenTestDataFile(const std::string& file_name) {
std::string path_to_source = file_name;
const char *kDataPath = getenv("LIBVPX_TEST_DATA_PATH");
if (kDataPath) {
path_to_source = kDataPath;
path_to_source += "/";
path_to_source += file_name;
// Helper macros to ensure LIBVPX_TEST_DATA_PATH is a quoted string.
// These are undefined right below GetDataPath
// NOTE: LIBVPX_TEST_DATA_PATH MUST NOT be a quoted string before
// Stringification or the GetDataPath will fail at runtime
#define TO_STRING(S) #S
// A simple function to encapsulate cross platform retrieval of test data path
static std::string GetDataPath() {
const char *const data_path = getenv("LIBVPX_TEST_DATA_PATH");
if (data_path == NULL) {
// In some environments, we cannot set environment variables
// Instead, we set the data path by using a preprocessor symbol
// which can be set from make files
return ".";
return data_path;
// Undefining stringification macros because they are not used elsewhere
#undef TO_STRING
static FILE *OpenTestDataFile(const std::string& file_name) {
const std::string path_to_source = GetDataPath() + "/" + file_name;
return fopen(path_to_source.c_str(), "rb");
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment