diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-01-22 17:36:32 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-01-22 17:36:32 -0800 |
commit | 1b1bb499613adc8b051ed602b04bea8758e582e6 (patch) | |
tree | 894a89762946cda8d5a015eb9e4fb587adde0749 /testing | |
parent | 19c6160ba46af0ec266c9b3903a65ef3186176df (diff) | |
download | pdfium-1b1bb499613adc8b051ed602b04bea8758e582e6.tar.xz |
Merge to XFA: pdfium_embeddertests fixes
This pulls in:
af9be4f Add pdfium_embeddertests to BUILD.gn
36faa4a Fix build of pdfium_embeddertest under V8_USE_EXTERNAL_STARTUP_DATA.
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/873453005
Diffstat (limited to 'testing')
-rw-r--r-- | testing/embedder_test.cpp | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index 539f48cff5..bebe307cf3 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -29,6 +29,8 @@ namespace { +const char* g_exe_path_ = nullptr; + // Reads the entire contents of a file into a newly malloc'd buffer. static char* GetFileContents(const char* filename, size_t* retlen) { FILE* file = fopen(filename, "rb"); @@ -60,18 +62,13 @@ static char* GetFileContents(const char* filename, size_t* retlen) { #ifdef V8_USE_EXTERNAL_STARTUP_DATA // Returns the full path for an external V8 data file based on either // the currect exectuable path or an explicit override. -static std::string GetFullPathForSnapshotFile(const Options& options, +static std::string GetFullPathForSnapshotFile(const std::string& exe_path, const std::string& filename) { std::string result; - if (!options.bin_directory.empty()) { - result = options.bin_directory; - if (*options.bin_directory.rbegin() != PATH_SEPARATOR) { - result += PATH_SEPARATOR; - } - } else if (!options.exe_path.empty()) { - size_t last_separator = options.exe_path.rfind(PATH_SEPARATOR); + if (!exe_path.empty()) { + size_t last_separator = exe_path.rfind(PATH_SEPARATOR); if (last_separator != std::string::npos) { - result = options.exe_path.substr(0, last_separator + 1); + result = exe_path.substr(0, last_separator + 1); } } result += filename; @@ -80,10 +77,10 @@ static std::string GetFullPathForSnapshotFile(const Options& options, // Reads an extenal V8 data file from the |options|-indicated location, // returing true on success and false on error. -static bool GetExternalData(const Options& options, - const std::string& bin_filename, +static bool GetExternalData(const std::string& exe_path, + const std::string& filename, v8::StartupData* result_data) { - std::string full_path = GetFullPathForSnapshotFile(options, bin_filename); + std::string full_path = GetFullPathForSnapshotFile(exe_path, filename); size_t data_length = 0; char* data_buffer = GetFileContents(full_path.c_str(), &data_length); if (!data_buffer) { @@ -177,10 +174,10 @@ void EmbedderTest::SetUp() { v8::V8::InitializeICU(); #ifdef V8_USE_EXTERNAL_STARTUP_DATA - ASSERT_TRUE(GetExternalData(options, "natives_blob.bin", &natives_)); - ASSERT_TRUE(GetExternalData(options, "snapshot_blob.bin", &snapshot_)); - v8::V8::SetNativesDataBlob(&natives); - v8::V8::SetSnapshotDataBlob(&snapshot); + ASSERT_TRUE(GetExternalData(g_exe_path_, "natives_blob.bin", &natives_)); + ASSERT_TRUE(GetExternalData(g_exe_path_, "snapshot_blob.bin", &snapshot_)); + v8::V8::SetNativesDataBlob(&natives_); + v8::V8::SetSnapshotDataBlob(&snapshot_); #endif // V8_USE_EXTERNAL_STARTUP_DATA FPDF_InitLibrary(); @@ -307,3 +304,11 @@ void EmbedderTest::UnloadPage(FPDF_PAGE page, FPDF_FORMHANDLE form) { FORM_OnBeforeClosePage(page, form); FPDF_ClosePage(page); } + +// Can't use gtest-provided main since we need to stash the path to the +// executable in order to find the external V8 binary data files. +int main(int argc, char** argv) { + g_exe_path_ = argv[0]; + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} |