Unreverts revert: Makes it possible to find files used by some unit tests when running them as Chrome native tests.
TBR=andrew@webrtc.org BUG=N/A Review URL: https://webrtc-codereview.appspot.com/1754005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4303 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
1932fe1865
commit
34773d9b6b
2
DEPS
2
DEPS
@ -158,7 +158,7 @@ hooks = [
|
|||||||
# If a newer version or no current download exists, it will download
|
# If a newer version or no current download exists, it will download
|
||||||
# the resources and extract them.
|
# the resources and extract them.
|
||||||
"pattern": ".",
|
"pattern": ".",
|
||||||
"action": ["python", Var("root_dir") + "/webrtc/tools/update.py"],
|
"action": ["python", Var("root_dir") + "/webrtc/tools/update_resources.py"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# A change to a .gyp, .gypi, or to GYP itself should run the generator.
|
# A change to a .gyp, .gypi, or to GYP itself should run the generator.
|
||||||
|
@ -62,6 +62,8 @@
|
|||||||
'sources': [
|
'sources': [
|
||||||
'test_suite.cc',
|
'test_suite.cc',
|
||||||
'test_suite.h',
|
'test_suite.h',
|
||||||
|
'testsupport/android/root_path_android.cc',
|
||||||
|
'testsupport/android/root_path_android_chromium.cc',
|
||||||
'testsupport/fileutils.cc',
|
'testsupport/fileutils.cc',
|
||||||
'testsupport/fileutils.h',
|
'testsupport/fileutils.h',
|
||||||
'testsupport/frame_reader.cc',
|
'testsupport/frame_reader.cc',
|
||||||
@ -79,6 +81,36 @@
|
|||||||
'testsupport/trace_to_stderr.cc',
|
'testsupport/trace_to_stderr.cc',
|
||||||
'testsupport/trace_to_stderr.h',
|
'testsupport/trace_to_stderr.h',
|
||||||
],
|
],
|
||||||
|
'conditions': [
|
||||||
|
# TODO(henrike): remove build_with_chromium==1 when the bots are using
|
||||||
|
# Chromium's buildbots.
|
||||||
|
['build_with_chromium==1 and OS=="android" and gtest_target_type=="shared_library"', {
|
||||||
|
'dependencies': [
|
||||||
|
'<(DEPTH)/base/base.gyp:base',
|
||||||
|
],
|
||||||
|
'sources!': [
|
||||||
|
'testsupport/android/root_path_android.cc',
|
||||||
|
],
|
||||||
|
# WebRTC tests use resource files for testing. These files are not
|
||||||
|
# hosted in WebRTC. The script ensures that the needed resources
|
||||||
|
# are downloaded. In stand alone WebRTC the script is called by
|
||||||
|
# the DEPS file. In Chromium, i.e. here, the files are pulled down
|
||||||
|
# only if tests requiring the resources are being built.
|
||||||
|
'actions': [
|
||||||
|
{
|
||||||
|
'action_name': 'get_resources',
|
||||||
|
'inputs': ['<(webrtc_root)/tools/update_resources.py'],
|
||||||
|
'outputs': ['../../resources'],
|
||||||
|
'action': ['python',
|
||||||
|
'<(webrtc_root)/tools/update_resources.py',
|
||||||
|
'-p ../../../'],
|
||||||
|
}],
|
||||||
|
}, {
|
||||||
|
'sources!': [
|
||||||
|
'testsupport/android/root_path_android_chromium.cc',
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
# Depend on this target when you want to have test_support but also the
|
# Depend on this target when you want to have test_support but also the
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace test {
|
namespace test {
|
||||||
|
|
||||||
|
@ -31,28 +31,33 @@
|
|||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace test {
|
namespace test {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
static const char* kPathDelimiter = "\\";
|
const char* kPathDelimiter = "\\";
|
||||||
#else
|
#else
|
||||||
static const char* kPathDelimiter = "/";
|
const char* kPathDelimiter = "/";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WEBRTC_ANDROID
|
#ifdef WEBRTC_ANDROID
|
||||||
static const char* kRootDirName = "/sdcard/";
|
const char* kResourcesDirName = "resources";
|
||||||
static const char* kResourcesDirName = "resources";
|
|
||||||
#else
|
#else
|
||||||
// The file we're looking for to identify the project root dir.
|
// The file we're looking for to identify the project root dir.
|
||||||
static const char* kProjectRootFileName = "DEPS";
|
const char* kProjectRootFileName = "DEPS";
|
||||||
static const char* kOutputDirName = "out";
|
const char* kResourcesDirName = "resources";
|
||||||
static const char* kFallbackPath = "./";
|
|
||||||
static const char* kResourcesDirName = "resources";
|
|
||||||
#endif
|
#endif
|
||||||
const char* kCannotFindProjectRootDir = "ERROR_CANNOT_FIND_PROJECT_ROOT_DIR";
|
|
||||||
|
|
||||||
namespace {
|
const char* kFallbackPath = "./";
|
||||||
|
const char* kOutputDirName = "out";
|
||||||
char relative_dir_path[FILENAME_MAX];
|
char relative_dir_path[FILENAME_MAX];
|
||||||
bool relative_dir_path_set = false;
|
bool relative_dir_path_set = false;
|
||||||
}
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
const char* kCannotFindProjectRootDir = "ERROR_CANNOT_FIND_PROJECT_ROOT_DIR";
|
||||||
|
|
||||||
|
std::string OutputPathAndroid();
|
||||||
|
std::string ProjectRoothPathAndroid();
|
||||||
|
|
||||||
void SetExecutablePath(const std::string& path) {
|
void SetExecutablePath(const std::string& path) {
|
||||||
std::string working_dir = WorkingDir();
|
std::string working_dir = WorkingDir();
|
||||||
@ -73,18 +78,30 @@ bool FileExists(std::string& file_name) {
|
|||||||
return stat(file_name.c_str(), &file_info) == 0;
|
return stat(file_name.c_str(), &file_info) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string OutputPathImpl() {
|
||||||
|
std::string path = ProjectRootPath();
|
||||||
|
if (path == kCannotFindProjectRootDir) {
|
||||||
|
return kFallbackPath;
|
||||||
|
}
|
||||||
|
path += kOutputDirName;
|
||||||
|
if (!CreateDirectory(path)) {
|
||||||
|
return kFallbackPath;
|
||||||
|
}
|
||||||
|
return path + kPathDelimiter;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef WEBRTC_ANDROID
|
#ifdef WEBRTC_ANDROID
|
||||||
|
|
||||||
std::string ProjectRootPath() {
|
std::string ProjectRootPath() {
|
||||||
return kRootDirName;
|
return ProjectRoothPathAndroid();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string OutputPath() {
|
std::string OutputPath() {
|
||||||
return kRootDirName;
|
return OutputPathAndroid();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string WorkingDir() {
|
std::string WorkingDir() {
|
||||||
return kRootDirName;
|
return ProjectRootPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // WEBRTC_ANDROID
|
#else // WEBRTC_ANDROID
|
||||||
@ -114,15 +131,7 @@ std::string ProjectRootPath() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string OutputPath() {
|
std::string OutputPath() {
|
||||||
std::string path = ProjectRootPath();
|
return OutputPathImpl();
|
||||||
if (path == kCannotFindProjectRootDir) {
|
|
||||||
return kFallbackPath;
|
|
||||||
}
|
|
||||||
path += kOutputDirName;
|
|
||||||
if (!CreateDirectory(path)) {
|
|
||||||
return kFallbackPath;
|
|
||||||
}
|
|
||||||
return path + kPathDelimiter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string WorkingDir() {
|
std::string WorkingDir() {
|
||||||
|
@ -23,6 +23,7 @@ REMOTE_URL_BASE = 'http://commondatastorage.googleapis.com/webrtc-resources'
|
|||||||
VERSION_FILENAME = 'webrtc-resources-version'
|
VERSION_FILENAME = 'webrtc-resources-version'
|
||||||
FILENAME_PREFIX = 'webrtc-resources-'
|
FILENAME_PREFIX = 'webrtc-resources-'
|
||||||
EXTENSION = '.tgz'
|
EXTENSION = '.tgz'
|
||||||
|
RELATIVE_OUTPUT_PATH = '../../'
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -41,14 +42,6 @@ def main():
|
|||||||
print 'Skipping resources download since WEBRTC_SKIP_RESOURCES_DOWNLOAD set'
|
print 'Skipping resources download since WEBRTC_SKIP_RESOURCES_DOWNLOAD set'
|
||||||
return
|
return
|
||||||
|
|
||||||
project_root_dir = os.path.normpath(sys.path[0] + '/../../')
|
|
||||||
downloads_dir = os.path.join(project_root_dir, 'resources')
|
|
||||||
current_version_file = os.path.join(downloads_dir, VERSION_FILENAME)
|
|
||||||
|
|
||||||
# Ensure the downloads dir is created.
|
|
||||||
if not os.path.isdir(downloads_dir):
|
|
||||||
os.mkdir(downloads_dir)
|
|
||||||
|
|
||||||
# Define and parse arguments.
|
# Define and parse arguments.
|
||||||
parser = OptionParser()
|
parser = OptionParser()
|
||||||
parser.add_option('-f', '--force', action='store_true', dest='force',
|
parser.add_option('-f', '--force', action='store_true', dest='force',
|
||||||
@ -56,7 +49,17 @@ def main():
|
|||||||
parser.add_option('-b', '--base_url', dest='base_url',
|
parser.add_option('-b', '--base_url', dest='base_url',
|
||||||
help= 'Overrides the default Base URL (%s) and uses the '
|
help= 'Overrides the default Base URL (%s) and uses the '
|
||||||
'supplied URL instead.' % REMOTE_URL_BASE)
|
'supplied URL instead.' % REMOTE_URL_BASE)
|
||||||
(options, unused_args) = parser.parse_args()
|
parser.add_option('-p', dest='path', help= 'path of resources directory'
|
||||||
|
'relative to this script', default=RELATIVE_OUTPUT_PATH)
|
||||||
|
options = parser.parse_args()[0]
|
||||||
|
|
||||||
|
project_root_dir = os.path.normpath(sys.path[0] + '/' + options.path)
|
||||||
|
downloads_dir = os.path.join(project_root_dir, 'resources')
|
||||||
|
current_version_file = os.path.join(downloads_dir, VERSION_FILENAME)
|
||||||
|
|
||||||
|
# Ensure the downloads dir is created.
|
||||||
|
if not os.path.isdir(downloads_dir):
|
||||||
|
os.mkdir(downloads_dir)
|
||||||
|
|
||||||
# Download archive if forced or DEPS version is different than our current.
|
# Download archive if forced or DEPS version is different than our current.
|
||||||
current_version = _get_current_version(current_version_file)
|
current_version = _get_current_version(current_version_file)
|
Loading…
x
Reference in New Issue
Block a user