diff options
author | Chris Palmer <palmer@chromium.org> | 2017-04-06 14:45:39 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-06 23:40:27 +0000 |
commit | 2b797295d6851b3189bcb38c5994074f36453865 (patch) | |
tree | 90f119d1b1bff860e265c13919e19410282b6bda | |
parent | 8a24b25ee0b08128b28dfae0ee86b8348a51b40b (diff) | |
download | pdfium-2b797295d6851b3189bcb38c5994074f36453865.tar.xz |
Fix unit tests to initialize PartitionAlloc.
Tests need to be subclasses of FPDF_Test.
BUG=pdfium:700
Change-Id: I317ec2c49567e58cb57c6222e387574226f594b3
Reviewed-on: https://pdfium-review.googlesource.com/3890
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Chris Palmer <palmer@chromium.org>
-rw-r--r-- | BUILD.gn | 2 | ||||
-rw-r--r-- | core/fxcrt/fx_basic_memmgr.cpp | 10 | ||||
-rw-r--r-- | core/fxcrt/fx_memory.h | 1 | ||||
-rw-r--r-- | fpdfsdk/fpdfview.cpp | 9 | ||||
-rw-r--r-- | testing/test_support.cpp | 4 | ||||
-rw-r--r-- | xfa/fde/css/cfde_cssdeclaration_unittest.cpp | 7 | ||||
-rw-r--r-- | xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp | 11 | ||||
-rw-r--r-- | xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp | 33 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_ffapp_unittest.cpp (renamed from xfa/fxfa/cxfa_ffapp_unitest.cpp) | 9 | ||||
-rw-r--r-- | xfa/fxfa/fm2js/xfa_simpleexpression_unittest.cpp | 5 | ||||
-rw-r--r-- | xfa/fxfa/parser/xfa_utils_unittest.cpp | 7 |
11 files changed, 60 insertions, 38 deletions
@@ -1892,7 +1892,7 @@ test("pdfium_unittests") { "xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp", "xfa/fgas/layout/fgas_rtfbreak_unittest.cpp", "xfa/fxfa/app/cxfa_textparser_unittest.cpp", - "xfa/fxfa/cxfa_ffapp_unitest.cpp", + "xfa/fxfa/cxfa_ffapp_unittest.cpp", "xfa/fxfa/fm2js/xfa_simpleexpression_unittest.cpp", "xfa/fxfa/parser/xfa_utils_unittest.cpp", ] diff --git a/core/fxcrt/fx_basic_memmgr.cpp b/core/fxcrt/fx_basic_memmgr.cpp index 06568c04ad..f3aaa3678d 100644 --- a/core/fxcrt/fx_basic_memmgr.cpp +++ b/core/fxcrt/fx_basic_memmgr.cpp @@ -11,6 +11,16 @@ pdfium::base::PartitionAllocatorGeneric gArrayBufferPartitionAllocator; pdfium::base::PartitionAllocatorGeneric gStringPartitionAllocator; +void FXMEM_InitalizePartitionAlloc() { + static bool s_gPartitionAllocatorsInitialized = false; + if (!s_gPartitionAllocatorsInitialized) { + pdfium::base::PartitionAllocGlobalInit(FX_OutOfMemoryTerminate); + gArrayBufferPartitionAllocator.init(); + gStringPartitionAllocator.init(); + s_gPartitionAllocatorsInitialized = true; + } +} + void* FXMEM_DefaultAlloc(size_t byte_size, int flags) { return (void*)malloc(byte_size); } diff --git a/core/fxcrt/fx_memory.h b/core/fxcrt/fx_memory.h index c4d619efab..eb369d7d6c 100644 --- a/core/fxcrt/fx_memory.h +++ b/core/fxcrt/fx_memory.h @@ -31,6 +31,7 @@ void FXMEM_DefaultFree(void* pointer, int flags); extern pdfium::base::PartitionAllocatorGeneric gArrayBufferPartitionAllocator; extern pdfium::base::PartitionAllocatorGeneric gStringPartitionAllocator; +void FXMEM_InitalizePartitionAlloc(); NEVER_INLINE void FX_OutOfMemoryTerminate(); inline void* FX_SafeRealloc(void* ptr, size_t num_members, size_t member_size) { diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp index d94bec688b..0b77676cf9 100644 --- a/fpdfsdk/fpdfview.cpp +++ b/fpdfsdk/fpdfview.cpp @@ -368,14 +368,7 @@ FPDF_InitLibraryWithConfig(const FPDF_LIBRARY_CONFIG* cfg) { if (g_pCodecModule) return; - static bool s_gPartitionAllocatorsInitialized = false; - if (!s_gPartitionAllocatorsInitialized) { - pdfium::base::PartitionAllocGlobalInit(FX_OutOfMemoryTerminate); - gArrayBufferPartitionAllocator.init(); - gStringPartitionAllocator.init(); - s_gPartitionAllocatorsInitialized = true; - } - + FXMEM_InitalizePartitionAlloc(); g_pCodecModule = new CCodec_ModuleMgr(); CFX_GEModule* pModule = CFX_GEModule::Get(); diff --git a/testing/test_support.cpp b/testing/test_support.cpp index 6e1bb64bc0..20f1cadf09 100644 --- a/testing/test_support.cpp +++ b/testing/test_support.cpp @@ -9,6 +9,7 @@ #include <string> +#include "core/fxcrt/fx_memory.h" #include "testing/utils/path_service.h" #ifdef PDF_ENABLE_V8 @@ -214,11 +215,10 @@ int TestSaver::WriteBlockCallback(FPDF_FILEWRITE* pFileWrite, namespace pdfium { void FPDF_Test::SetUp() { - FPDF_InitLibrary(); + FXMEM_InitalizePartitionAlloc(); } void FPDF_Test::TearDown() { - FPDF_DestroyLibrary(); } } // namespace pdfium diff --git a/xfa/fde/css/cfde_cssdeclaration_unittest.cpp b/xfa/fde/css/cfde_cssdeclaration_unittest.cpp index 48a3c72c39..80cd72c4d3 100644 --- a/xfa/fde/css/cfde_cssdeclaration_unittest.cpp +++ b/xfa/fde/css/cfde_cssdeclaration_unittest.cpp @@ -5,8 +5,11 @@ #include "xfa/fde/css/cfde_cssdeclaration.h" #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" -TEST(CFDE_CSSDecalration, HexEncodingParsing) { +class CFDE_CSSDecalrationTest : public pdfium::FPDF_Test {}; + +TEST_F(CFDE_CSSDecalrationTest, HexEncodingParsing) { FX_ARGB color; // Length value invalid. @@ -42,7 +45,7 @@ TEST(CFDE_CSSDecalration, HexEncodingParsing) { EXPECT_EQ(60, FXARGB_B(color)); } -TEST(CFDE_CSSDecalration, RGBEncodingParsing) { +TEST_F(CFDE_CSSDecalrationTest, RGBEncodingParsing) { FX_ARGB color; // Invalid input for rgb() syntax. diff --git a/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp b/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp index 2864c842ad..077fb54e93 100644 --- a/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp +++ b/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp @@ -7,9 +7,12 @@ #include "xfa/fde/css/cfde_cssvaluelistparser.h" #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" #include "third_party/base/ptr_util.h" -TEST(CFDE_CSSValueListParser, rgb_short) { +class CFDE_CSSValueListParserTest : public pdfium::FPDF_Test {}; + +TEST_F(CFDE_CSSValueListParserTest, rgb_short) { FDE_CSSPrimitiveType type; const wchar_t* start; int32_t len; @@ -40,7 +43,7 @@ TEST(CFDE_CSSValueListParser, rgb_short) { EXPECT_FALSE(parser->NextValue(type, start, len)); } -TEST(CFDE_CSSValueListParser, number_parsing) { +TEST_F(CFDE_CSSValueListParserTest, number_parsing) { FDE_CSSPrimitiveType type; const wchar_t* start; int32_t len; @@ -82,7 +85,7 @@ TEST(CFDE_CSSValueListParser, number_parsing) { EXPECT_EQ(L"43a1.12.34", CFX_WideString(start, len)); } -TEST(CFDE_CSSValueListParser, string_parsing) { +TEST_F(CFDE_CSSValueListParserTest, string_parsing) { FDE_CSSPrimitiveType type; const wchar_t* start; int32_t len; @@ -105,7 +108,7 @@ TEST(CFDE_CSSValueListParser, string_parsing) { EXPECT_EQ(L"standalone", CFX_WideString(start, len)); } -TEST(CFDE_CSSValueListParser, multiparsing) { +TEST_F(CFDE_CSSValueListParserTest, multiparsing) { FDE_CSSPrimitiveType type; const wchar_t* start; int32_t len; diff --git a/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp b/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp index e54b2cecaf..66f4bbf928 100644 --- a/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp +++ b/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp @@ -7,9 +7,12 @@ #include <memory> #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" #include "xfa/fgas/crt/ifgas_stream.h" -TEST(CFDE_XMLSyntaxParser, CData) { +class CFDE_XMLSyntaxParserTest : public pdfium::FPDF_Test {}; + +TEST_F(CFDE_XMLSyntaxParserTest, CData) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <![CDATA[\n" @@ -54,7 +57,7 @@ TEST(CFDE_XMLSyntaxParser, CData) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, CDataWithInnerScript) { +TEST_F(CFDE_XMLSyntaxParserTest, CDataWithInnerScript) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <![CDATA[\n" @@ -101,7 +104,7 @@ TEST(CFDE_XMLSyntaxParser, CDataWithInnerScript) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, ArrowBangArrow) { +TEST_F(CFDE_XMLSyntaxParserTest, ArrowBangArrow) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <!>\n" @@ -135,7 +138,7 @@ TEST(CFDE_XMLSyntaxParser, ArrowBangArrow) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, ArrowBangBracketArrow) { +TEST_F(CFDE_XMLSyntaxParserTest, ArrowBangBracketArrow) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <![>\n" @@ -164,7 +167,7 @@ TEST(CFDE_XMLSyntaxParser, ArrowBangBracketArrow) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, IncompleteCData) { +TEST_F(CFDE_XMLSyntaxParserTest, IncompleteCData) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <![CDATA>\n" @@ -193,7 +196,7 @@ TEST(CFDE_XMLSyntaxParser, IncompleteCData) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, UnClosedCData) { +TEST_F(CFDE_XMLSyntaxParserTest, UnClosedCData) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <![CDATA[\n" @@ -222,7 +225,7 @@ TEST(CFDE_XMLSyntaxParser, UnClosedCData) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, EmptyCData) { +TEST_F(CFDE_XMLSyntaxParserTest, EmptyCData) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <![CDATA[]]>\n" @@ -258,7 +261,7 @@ TEST(CFDE_XMLSyntaxParser, EmptyCData) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, Comment) { +TEST_F(CFDE_XMLSyntaxParserTest, Comment) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <!-- A Comment -->\n" @@ -291,7 +294,7 @@ TEST(CFDE_XMLSyntaxParser, Comment) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, IncorrectCommentStart) { +TEST_F(CFDE_XMLSyntaxParserTest, IncorrectCommentStart) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <!- A Comment -->\n" @@ -324,7 +327,7 @@ TEST(CFDE_XMLSyntaxParser, IncorrectCommentStart) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, CommentEmpty) { +TEST_F(CFDE_XMLSyntaxParserTest, CommentEmpty) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <!---->\n" @@ -357,7 +360,7 @@ TEST(CFDE_XMLSyntaxParser, CommentEmpty) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, CommentThreeDash) { +TEST_F(CFDE_XMLSyntaxParserTest, CommentThreeDash) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <!--->\n" @@ -384,7 +387,7 @@ TEST(CFDE_XMLSyntaxParser, CommentThreeDash) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, CommentTwoDash) { +TEST_F(CFDE_XMLSyntaxParserTest, CommentTwoDash) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">\n" L" <!-->\n" @@ -411,7 +414,7 @@ TEST(CFDE_XMLSyntaxParser, CommentTwoDash) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, Entities) { +TEST_F(CFDE_XMLSyntaxParserTest, Entities) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">" L"B" @@ -445,7 +448,7 @@ TEST(CFDE_XMLSyntaxParser, Entities) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, EntityOverflowHex) { +TEST_F(CFDE_XMLSyntaxParserTest, EntityOverflowHex) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">" L"�" @@ -476,7 +479,7 @@ TEST(CFDE_XMLSyntaxParser, EntityOverflowHex) { EXPECT_EQ(FDE_XmlSyntaxResult::EndOfString, parser.DoSyntaxParse()); } -TEST(CFDE_XMLSyntaxParser, EntityOverflowDecimal) { +TEST_F(CFDE_XMLSyntaxParserTest, EntityOverflowDecimal) { const wchar_t* input = L"<script contentType=\"application/x-javascript\">" L"�" diff --git a/xfa/fxfa/cxfa_ffapp_unitest.cpp b/xfa/fxfa/cxfa_ffapp_unittest.cpp index e8accdfeb2..4d65ccbb2f 100644 --- a/xfa/fxfa/cxfa_ffapp_unitest.cpp +++ b/xfa/fxfa/cxfa_ffapp_unittest.cpp @@ -11,9 +11,12 @@ #include "core/fpdfapi/parser/cpdf_stream.h" #include "core/fxcrt/fx_memory.h" #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" #include "third_party/base/ptr_util.h" -TEST(CXFAFileRead, NoStreams) { +class CXFAFileReadTest : public pdfium::FPDF_Test {}; + +TEST_F(CXFAFileReadTest, NoStreams) { std::vector<CPDF_Stream*> streams; CFX_RetainPtr<IFX_SeekableReadStream> fileread = MakeSeekableReadStream(streams); @@ -24,7 +27,7 @@ TEST(CXFAFileRead, NoStreams) { EXPECT_EQ(0xbd, output_buffer[0]); } -TEST(CXFAFileRead, EmptyStreams) { +TEST_F(CXFAFileReadTest, EmptyStreams) { std::vector<CPDF_Stream*> streams; auto stream1 = pdfium::MakeUnique<CPDF_Stream>(); streams.push_back(stream1.get()); @@ -37,7 +40,7 @@ TEST(CXFAFileRead, EmptyStreams) { EXPECT_EQ(0xbd, output_buffer[0]); } -TEST(CXFAFileRead, NormalStreams) { +TEST_F(CXFAFileReadTest, NormalStreams) { std::vector<CPDF_Stream*> streams; auto stream1 = pdfium::MakeUnique<CPDF_Stream>(); auto stream2 = pdfium::MakeUnique<CPDF_Stream>(); diff --git a/xfa/fxfa/fm2js/xfa_simpleexpression_unittest.cpp b/xfa/fxfa/fm2js/xfa_simpleexpression_unittest.cpp index 7826d9b53c..a2c7f1b878 100644 --- a/xfa/fxfa/fm2js/xfa_simpleexpression_unittest.cpp +++ b/xfa/fxfa/fm2js/xfa_simpleexpression_unittest.cpp @@ -8,10 +8,13 @@ #include <utility> #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" #include "third_party/base/ptr_util.h" #include "xfa/fxfa/fm2js/xfa_lexer.h" -TEST(FMCallExpression, more_than_32_arguments) { +class FMCallExpressionTest : public pdfium::FPDF_Test {}; + +TEST_F(FMCallExpressionTest, more_than_32_arguments) { // Use sign as it has 3 object parameters at positions 0, 5, and 6. auto exp = pdfium::MakeUnique<CXFA_FMIdentifierExpression>(0, L"sign"); diff --git a/xfa/fxfa/parser/xfa_utils_unittest.cpp b/xfa/fxfa/parser/xfa_utils_unittest.cpp index c39ed69306..e4dd09419e 100644 --- a/xfa/fxfa/parser/xfa_utils_unittest.cpp +++ b/xfa/fxfa/parser/xfa_utils_unittest.cpp @@ -8,9 +8,12 @@ #include <vector> #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" #include "third_party/base/ptr_util.h" -TEST(XfaUtilsImp, XFA_MapRotation) { +class XfaUtilsImpTest : public pdfium::FPDF_Test {}; + +TEST_F(XfaUtilsImpTest, XFA_MapRotation) { struct TestCase { int input; int expected_output; @@ -26,7 +29,7 @@ TEST(XfaUtilsImp, XFA_MapRotation) { } } -class XFANodeIteratorTest : public testing::Test { +class XFANodeIteratorTest : public pdfium::FPDF_Test { public: class Node { public: |