summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-04-25 18:49:32 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-25 18:49:32 +0000
commite08d2b1fee0db40bac9538ca8b7be0a951675bd6 (patch)
tree81ded468a54adb247f46d7824632f6c4a537619c /testing
parenteb3ec8f29846a5df67269a53ca94d1d740c84513 (diff)
downloadpdfium-e08d2b1fee0db40bac9538ca8b7be0a951675bd6.tar.xz
Introduce ScopedFPDF types in public/cpp/fpdf_scopers.h
Applies std::remove_ptr to the public API types so that we can deduce a correct unique ptr type no matter how that API might change away from void* usage. Creates shorter names for std::unique_ptr<std::remove_pointer<>, ...> Change-Id: I04a0ff43cb7d5a4d3867939a53a54c9cef00db86 Reviewed-on: https://pdfium-review.googlesource.com/31292 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'testing')
-rw-r--r--testing/embedder_test.cpp29
-rw-r--r--testing/embedder_test.h19
-rw-r--r--testing/libfuzzer/pdf_font_fuzzer.cc10
3 files changed, 24 insertions, 34 deletions
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index fd53b52fdc..03eebe3abc 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -15,6 +15,7 @@
#include <vector>
#include "core/fdrm/crypto/fx_crypt.h"
+#include "public/cpp/fpdf_scopers.h"
#include "public/fpdf_dataavail.h"
#include "public/fpdf_edit.h"
#include "public/fpdf_text.h"
@@ -305,13 +306,12 @@ void EmbedderTest::UnloadPage(FPDF_PAGE page) {
page_map_.erase(page_number);
}
-std::unique_ptr<void, FPDFBitmapDeleter> EmbedderTest::RenderLoadedPage(
- FPDF_PAGE page) {
+ScopedFPDFBitmap EmbedderTest::RenderLoadedPage(FPDF_PAGE page) {
return RenderLoadedPageWithFlags(page, 0);
}
-std::unique_ptr<void, FPDFBitmapDeleter>
-EmbedderTest::RenderLoadedPageWithFlags(FPDF_PAGE page, int flags) {
+ScopedFPDFBitmap EmbedderTest::RenderLoadedPageWithFlags(FPDF_PAGE page,
+ int flags) {
if (GetPageNumberForLoadedPage(page) < 0) {
NOTREACHED();
return nullptr;
@@ -319,14 +319,12 @@ EmbedderTest::RenderLoadedPageWithFlags(FPDF_PAGE page, int flags) {
return RenderPageWithFlags(page, form_handle_, flags);
}
-std::unique_ptr<void, FPDFBitmapDeleter> EmbedderTest::RenderSavedPage(
- FPDF_PAGE page) {
+ScopedFPDFBitmap EmbedderTest::RenderSavedPage(FPDF_PAGE page) {
return RenderSavedPageWithFlags(page, 0);
}
-std::unique_ptr<void, FPDFBitmapDeleter> EmbedderTest::RenderSavedPageWithFlags(
- FPDF_PAGE page,
- int flags) {
+ScopedFPDFBitmap EmbedderTest::RenderSavedPageWithFlags(FPDF_PAGE page,
+ int flags) {
if (GetPageNumberForSavedPage(page) < 0) {
NOTREACHED();
return nullptr;
@@ -335,15 +333,13 @@ std::unique_ptr<void, FPDFBitmapDeleter> EmbedderTest::RenderSavedPageWithFlags(
}
// static
-std::unique_ptr<void, FPDFBitmapDeleter> EmbedderTest::RenderPageWithFlags(
- FPDF_PAGE page,
- FPDF_FORMHANDLE handle,
- int flags) {
+ScopedFPDFBitmap EmbedderTest::RenderPageWithFlags(FPDF_PAGE page,
+ FPDF_FORMHANDLE handle,
+ int flags) {
int width = static_cast<int>(FPDF_GetPageWidth(page));
int height = static_cast<int>(FPDF_GetPageHeight(page));
int alpha = FPDFPage_HasTransparency(page) ? 1 : 0;
- std::unique_ptr<void, FPDFBitmapDeleter> bitmap(
- FPDFBitmap_Create(width, height, alpha));
+ ScopedFPDFBitmap bitmap(FPDFBitmap_Create(width, height, alpha));
FPDF_DWORD fill_color = alpha ? 0x00000000 : 0xFFFFFFFF;
FPDFBitmap_FillRect(bitmap.get(), 0, 0, width, height, fill_color);
FPDF_RenderPageBitmap(bitmap.get(), page, 0, 0, width, height, 0, flags);
@@ -417,8 +413,7 @@ void EmbedderTest::VerifySavedRendering(FPDF_PAGE page,
ASSERT(saved_document_);
ASSERT(page);
- std::unique_ptr<void, FPDFBitmapDeleter> bitmap =
- RenderSavedPageWithFlags(page, FPDF_ANNOT);
+ ScopedFPDFBitmap bitmap = RenderSavedPageWithFlags(page, FPDF_ANNOT);
CompareBitmap(bitmap.get(), width, height, md5);
}
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index 4923180c4a..8156dd2353 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -9,7 +9,7 @@
#include <memory>
#include <string>
-#include "public/cpp/fpdf_deleters.h"
+#include "public/cpp/fpdf_scopers.h"
#include "public/fpdf_dataavail.h"
#include "public/fpdf_ext.h"
#include "public/fpdf_formfill.h"
@@ -126,26 +126,22 @@ class EmbedderTest : public ::testing::Test,
void UnloadPage(FPDF_PAGE page);
// RenderLoadedPageWithFlags() with no flags.
- std::unique_ptr<void, FPDFBitmapDeleter> RenderLoadedPage(FPDF_PAGE page);
+ ScopedFPDFBitmap RenderLoadedPage(FPDF_PAGE page);
// Convert |page| loaded via LoadPage() into a bitmap with the specified page
// rendering |flags|.
//
// See public/fpdfview.h for a list of page rendering flags.
- std::unique_ptr<void, FPDFBitmapDeleter> RenderLoadedPageWithFlags(
- FPDF_PAGE page,
- int flags);
+ ScopedFPDFBitmap RenderLoadedPageWithFlags(FPDF_PAGE page, int flags);
// RenderSavedPageWithFlags() with no flags.
- std::unique_ptr<void, FPDFBitmapDeleter> RenderSavedPage(FPDF_PAGE page);
+ ScopedFPDFBitmap RenderSavedPage(FPDF_PAGE page);
// Convert |page| loaded via LoadSavedPage() into a bitmap with the specified
// page rendering |flags|.
//
// See public/fpdfview.h for a list of page rendering flags.
- std::unique_ptr<void, FPDFBitmapDeleter> RenderSavedPageWithFlags(
- FPDF_PAGE page,
- int flags);
+ ScopedFPDFBitmap RenderSavedPageWithFlags(FPDF_PAGE page, int flags);
// Convert |page| into a bitmap with the specified page rendering |flags|.
// The form handle associated with |page| should be passed in via |handle|.
@@ -153,8 +149,9 @@ class EmbedderTest : public ::testing::Test,
//
// See public/fpdfview.h for a list of page rendering flags.
// If none of the above Render methods are appropriate, then use this one.
- static std::unique_ptr<void, FPDFBitmapDeleter>
- RenderPageWithFlags(FPDF_PAGE page, FPDF_FORMHANDLE handle, int flags);
+ static ScopedFPDFBitmap RenderPageWithFlags(FPDF_PAGE page,
+ FPDF_FORMHANDLE handle,
+ int flags);
protected:
using PageNumberToHandleMap = std::map<int, FPDF_PAGE>;
diff --git a/testing/libfuzzer/pdf_font_fuzzer.cc b/testing/libfuzzer/pdf_font_fuzzer.cc
index aed66613fa..7c596307f0 100644
--- a/testing/libfuzzer/pdf_font_fuzzer.cc
+++ b/testing/libfuzzer/pdf_font_fuzzer.cc
@@ -5,7 +5,7 @@
#include <cstring>
#include <memory>
-#include "public/cpp/fpdf_deleters.h"
+#include "public/cpp/fpdf_scopers.h"
#include "public/fpdf_edit.h"
#include "public/fpdfview.h"
@@ -13,15 +13,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
if (size < 2)
return 0;
- std::unique_ptr<void, FPDFDocumentDeleter> doc(FPDF_CreateNewDocument());
- std::unique_ptr<void, FPDFPageDeleter> page(
- FPDFPage_New(doc.get(), 0, 612, 792));
+ ScopedFPDFDocument doc(FPDF_CreateNewDocument());
+ ScopedFPDFPage page(FPDFPage_New(doc.get(), 0, 612, 792));
int font_type = data[0];
FPDF_BOOL cid = data[1];
data += 2;
size -= 2;
- std::unique_ptr<void, FPDFFontDeleter> font(
- FPDFText_LoadFont(doc.get(), data, size, font_type, cid));
+ ScopedFPDFFont font(FPDFText_LoadFont(doc.get(), data, size, font_type, cid));
if (!font)
return 0;