aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Writer32Test.cpp
diff options
context:
space:
mode:
authorGravatar mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-09-03 18:07:01 +0000
committerGravatar mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-09-03 18:07:01 +0000
commit8b4ba6373559026f7e24de1b8b487d8b72256dc1 (patch)
treed3489f727573219b30b01f31a326fd2ff162691d /tests/Writer32Test.cpp
parentc6168f2b2c9bf7ef48389a1076cafc4a59579212 (diff)
Fix bug in SkWriter32.
If you give SkWriter32 external storage but that external storage is too small for the first reservation you make, you'll hit an assert in debug mode. I think the answer is to simply remove the SkASSERT. Added a test. BUG= R=reed@google.com Review URL: https://codereview.chromium.org/23646007 git-svn-id: http://skia.googlecode.com/svn/trunk@11062 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/Writer32Test.cpp')
-rw-r--r--tests/Writer32Test.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp
index 194164dd1c..fd232fc4d0 100644
--- a/tests/Writer32Test.cpp
+++ b/tests/Writer32Test.cpp
@@ -21,6 +21,15 @@ static void check_contents(skiatest::Reporter* reporter, const SkWriter32& write
REPORTER_ASSERT(reporter, !memcmp(storage.get(), expected, size));
}
+
+static void test_reserve(skiatest::Reporter* reporter) {
+ // There used to be a bug where we'd assert your first reservation had to
+ // fit in external storage if you used it. This would crash in debug mode.
+ uint8_t storage[4];
+ SkWriter32 writer(0, storage, sizeof(storage));
+ writer.reserve(40);
+}
+
static void test_string_null(skiatest::Reporter* reporter) {
uint8_t storage[8];
SkWriter32 writer(0, storage, sizeof(storage));
@@ -238,6 +247,7 @@ static void Tests(skiatest::Reporter* reporter) {
testWritePad(reporter, &writer);
}
+ test_reserve(reporter);
test_string_null(reporter);
test_ptr(reporter);
test_rewind(reporter);