From 47fa13640b7c8615aa7aee0d5b1d63a7bd6ed44e Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Fri, 9 Aug 2013 16:03:05 +0000 Subject: allow NULL in writeString/readString BUG=skia:1469, code.google.com/p/android/issues/detail?id=58257 R=scroggo@google.com Author: mtklein@google.com Review URL: https://chromiumcodereview.appspot.com/22359003 git-svn-id: http://skia.googlecode.com/svn/trunk@10662 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/Writer32Test.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'tests/Writer32Test.cpp') diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp index e5b93634ac..6ecfcf3eda 100644 --- a/tests/Writer32Test.cpp +++ b/tests/Writer32Test.cpp @@ -21,6 +21,34 @@ static void check_contents(skiatest::Reporter* reporter, const SkWriter32& write REPORTER_ASSERT(reporter, !memcmp(storage.get(), expected, size)); } +static void test_string_null(skiatest::Reporter* reporter) { + uint8_t storage[8]; + SkWriter32 writer(0, storage, sizeof(storage)); + SkReader32 reader(storage, sizeof(storage)); + + const char* str; + size_t len; + + // Can we write NULL? + writer.writeString(NULL); + const int32_t null[] = { 0xFFFF }; + check_contents(reporter, writer, null, sizeof(null)); + str = reader.readString(&len); + REPORTER_ASSERT(reporter, NULL == str); + REPORTER_ASSERT(reporter, 0 == len); + + writer.reset(storage, sizeof(storage)); + reader.rewind(); + + // Is NULL distinct from ""? + writer.writeString(""); + const int32_t empty[] = { 0x0, 0x0 }; + check_contents(reporter, writer, empty, sizeof(empty)); + str = reader.readString(&len); + REPORTER_ASSERT(reporter, 0 == strcmp("", str)); + REPORTER_ASSERT(reporter, 0 == len); +} + static void test_rewind(skiatest::Reporter* reporter) { SkSWriter32<32> writer(32); int32_t array[3] = { 1, 2, 4 }; @@ -228,6 +256,7 @@ static void Tests(skiatest::Reporter* reporter) { testWritePad(reporter, &writer); } + test_string_null(reporter); test_ptr(reporter); test_rewind(reporter); } -- cgit v1.2.3