skia2/tests/BadIcoTest.cpp
bungeman 606add3dfb Revert of SkFontData to use smart pointers. (patchset #3 id:40001 of https://codereview.chromium.org/2339273002/ )
Reason for revert:
Killing Mac

Original issue's description:
> SkFontData to use smart pointers.
>
> The SkFontData type is not exposed externally, so any method which uses
> it can be updated to use smart pointers without affecting external
> users. Updating this first will make updating the public API much
> easier.
>
> This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to
> std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It
> appears that no one outside Skia is currently using SkStream::NewfromFile
> so this is a good time to update it as well.
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339273002
>
> Committed: https://skia.googlesource.com/skia/+/d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c

TBR=mtklein@chromium.org,halcanary@google.com,mtklein@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2343933002
2016-09-15 10:57:39 -07:00

46 lines
1.3 KiB
C++

/*
* Copyright 2014 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "Resources.h"
#include "Test.h"
#include "SkBitmap.h"
#include "SkCodec.h"
#include "SkStream.h"
#include "SkOSFile.h"
DEF_TEST(BadImage, reporter) {
const char* const badImages [] = {
"sigabort_favicon.ico",
"sigsegv_favicon.ico",
"sigsegv_favicon_2.ico",
"ico_leak01.ico",
"ico_fuzz0.ico",
"ico_fuzz1.ico",
"skbug3442.webp",
"skbug3429.webp",
};
const char* badImagesFolder = "invalid_images";
SkString resourcePath = GetResourcePath(badImagesFolder);
for (size_t i = 0; i < SK_ARRAY_COUNT(badImages); ++i) {
SkString fullPath = SkOSPath::Join(resourcePath.c_str(), badImages[i]);
SkAutoTDelete<SkStream> stream(SkStream::NewFromFile(fullPath.c_str()));
SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.release()));
// These images are corrupt. It's not important whether we succeed/fail in codec
// creation or decoding. We just want to make sure that we don't crash.
if (codec) {
SkBitmap bm;
bm.allocPixels(codec->getInfo());
codec->getPixels(codec->getInfo(), bm.getPixels(),
bm.rowBytes());
}
}
}