Bug 1330529 - Part 1: Fix PDFium gtest by using absolute path to PDFium DLL. r?jimm
This gtest assumed the current working directory ($OBJDIR/_tests/gtest/) was in the DLL LoadLibrary path. That is no longer true with this bug's patches, so the gtest must specify the absolute path to the PDFium DLL to load it.
MozReview-Commit-ID: 5TXj6A9Tb9w
--- a/widget/windows/gtest/TestEMFConversion.cpp
+++ b/widget/windows/gtest/TestEMFConversion.cpp
@@ -119,22 +119,29 @@ class EMFViaExtDLLHelper: public PDFViaE
{
public:
EMFViaExtDLLHelper() {}
~EMFViaExtDLLHelper() {}
protected:
virtual bool CreatePDFiumEngineIfNeed() override {
if (!mPDFiumEngine) {
- #ifdef _WIN64
- nsAutoCString externalDll("pdfium_ref_x64.dll");
- #else
- nsAutoCString externalDll("pdfium_ref_x86.dll");
- #endif
+#ifdef _WIN64
+#define PDFIUM_FILENAME "pdfium_ref_x64.dll"
+#else
+#define PDFIUM_FILENAME "pdfium_ref_x86.dll"
+#endif
+ nsAutoString pdfiumPath;
+ MOZ_RELEASE_ASSERT(NS_SUCCEEDED(GetFilePathViaSpecialDirectory(
+ NS_OS_CURRENT_WORKING_DIR,
+ PDFIUM_FILENAME,
+ pdfiumPath)));
+ const NS_ConvertUTF16toUTF8 externalDll(pdfiumPath);
mPDFiumEngine = PDFiumEngineShim::GetInstanceOrNull(externalDll);
+ MOZ_RELEASE_ASSERT(mPDFiumEngine);
}
return !!mPDFiumEngine;
}
};
// Compare an EMF file with the reference which is generated by the external
// library.
@@ -196,9 +203,9 @@ TEST(TestEMFConversion, TestInsufficient
ASSERT_FALSE(PDFHelper->SavePageToFile(emfPath.get(), 0, 0, 0));
ASSERT_FALSE(PDFHelper->SavePageToFile(emfPath.get(), 0, 100, -1));
PDFHelper->CloseDocument();
}
} // namespace widget
-} // namespace mozilla
\ No newline at end of file
+} // namespace mozilla