diff options
author | scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-09-14 17:26:37 +0000 |
---|---|---|
committer | scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-09-14 17:26:37 +0000 |
commit | d614c6a4e059bd9ea5b882ca845e886a82aeff5c (patch) | |
tree | 37469753a1eafa0d3207523130a934efa0955b0c /tests | |
parent | 9548be3badb2e542035a20070cdfcd39e633f048 (diff) |
For a picture playback with nothing written, use an empty SkData.
This prevents crashing when attempting to access fOpData.
BUG=https://code.google.com/p/skia/issues/detail?id=870
Review URL: https://codereview.appspot.com/6499108
git-svn-id: http://skia.googlecode.com/svn/trunk@5550 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PictureTest.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp new file mode 100644 index 0000000000..34d7832034 --- /dev/null +++ b/tests/PictureTest.cpp @@ -0,0 +1,42 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "Test.h" +#include "SkPicture.h" +#include "SkStream.h" + +#ifdef SK_DEBUG +// Ensure that deleting SkPicturePlayback does not assert. Asserts only fire in debug mode, so only +// run in debug mode. +static void test_deleting_empty_playback() { + SkPicture picture; + // Creates an SkPictureRecord + picture.beginRecording(0, 0); + // Turns that into an SkPicturePlayback + picture.endRecording(); + // Deletes the old SkPicturePlayback, and creates a new SkPictureRecord + picture.beginRecording(0, 0); +} + +// Ensure that serializing an empty picture does not assert. Likewise only runs in debug mode. +static void test_serializing_empty_picture() { + SkPicture picture; + picture.beginRecording(0, 0); + picture.endRecording(); + SkDynamicMemoryWStream stream; + picture.serialize(&stream); +} +#endif + +static void TestPicture(skiatest::Reporter* reporter) { +#ifdef SK_DEBUG + test_deleting_empty_playback(); + test_serializing_empty_picture(); +#endif +} + +#include "TestClassDef.h" +DEFINE_TESTCLASS("Picture", PictureTestClass, TestPicture) |