static void test2(skiatest::Reporter* reporter, SkWriter32* writer) { static const char gStr[] = "abcdefghimjklmnopqrstuvwxyz"; size_t i; size_t len = 0; for (i = 0; i <= 26; ++i) { len += SkWriter32::WriteStringSize(gStr, i); writer->writeString(gStr, i); } REPORTER_ASSERT(reporter, writer->bytesWritten() == len); SkAutoMalloc storage(len); writer->flatten(storage.get()); SkReader32 reader; reader.setMemory(storage.get(), len); for (i = 0; i <= 26; ++i) { REPORTER_ASSERT(reporter, !reader.eof()); const char* str = reader.readString(&len); REPORTER_ASSERT(reporter, i == len); REPORTER_ASSERT(reporter, strlen(str) == len); REPORTER_ASSERT(reporter, !memcmp(str, gStr, len)); // Ensure that the align4 of the string is padded with zeroes. size_t alignedSize = SkAlign4(len + 1); for (size_t j = len; j < alignedSize; j++) { REPORTER_ASSERT(reporter, 0 == str[j]); } } REPORTER_ASSERT(reporter, reader.eof()); }
static void test2(skiatest::Reporter* reporter, SkWriter32* writer) { static const char gStr[] = "abcdefghimjklmnopqrstuvwxyz"; size_t i; size_t len = 0; for (i = 0; i <= 26; ++i) { len += SkWriter32::WriteStringSize(gStr, i); writer->writeString(gStr, i); } REPORTER_ASSERT(reporter, writer->size() == len); SkAutoMalloc storage(len); writer->flatten(storage.get()); SkReader32 reader; reader.setMemory(storage.get(), len); for (i = 0; i <= 26; ++i) { REPORTER_ASSERT(reporter, !reader.eof()); const char* str = reader.readString(&len); REPORTER_ASSERT(reporter, i == len); REPORTER_ASSERT(reporter, strlen(str) == len); REPORTER_ASSERT(reporter, !memcmp(str, gStr, len)); } REPORTER_ASSERT(reporter, reader.eof()); }
static void assert_eof(skiatest::Reporter* reporter, const SkReader32& reader) { REPORTER_ASSERT(reporter, reader.eof()); REPORTER_ASSERT(reporter, reader.size() == reader.offset()); REPORTER_ASSERT(reporter, (const char*)reader.peek() == (const char*)reader.base() + reader.size()); }