static bool test_filter_ch_index() { bool pass = true ; char result[MAXSTR+1] ; ntests++ ; filter_ch_index(ts_abccba, result, 'a') ; pass = assert(! result[4], "result not properly terminated") && pass ; pass = assert_eql("bccb", result, "filter_ch_index(\"abccba\", result, 'a')") && pass ; filter_ch_index(ts_abccba, result, 'b') ; pass = assert_eql("acca", result, "filter_ch_index(\"abccba\", result, 'b')") && pass ; filter_ch_index(ts_abccba, result, 'c') ; pass = assert_eql("abba", result, "filter_ch_index(\"abccba\", result, 'c')") && pass ; filter_ch_index(ts_abccba, result, 'z') ; pass = assert(! result[6], "result not properly terminated") && pass ; pass = assert_eql(ts_abccba, result, "filter_ch_index(\"abccba\", result, 'z')") && pass ; filter_ch_index(ts_empty, result, 'a') ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_ch_index(\"\", result, 'a')") && pass ; return pass ; }
static bool test_filter_substr() { bool pass = true ; char *result ; ntests++ ; result = filter_substr(ts_abccba, "cba") ; pass = assert(! result[3], "result not properly terminated") && pass ; pass = assert_eql("abc", result, "filter_substr(\"abccba\", \"cba\")") && pass ; free(result) ; result = filter_substr(ts_abccba, "ab") ; pass = assert(! result[4], "result not properly terminated") && pass ; pass = assert_eql("ccba", result, "filter_substr(\"abccba\", \"ba\")") && pass ; free(result) ; result = filter_substr(ts_abccba, "c") ; pass = assert(! result[4], "result not properly terminated") && pass ; pass = assert_eql("abba", result, "filter_substr(\"abccba\", \"c\")") && pass ; free(result) ; result = filter_substr("abcabcabc", "abc") ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_substr(\"abcabcabc\", \"abc\")") && pass ; free(result) ; result = filter_substr(ts_empty, "cba") ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_substr(\"\", \"cba\")") && pass ; free(result) ; result = filter_substr(ts_abccba, "ccbx") ; pass = assert(! result[6], "result not properly terminated") && pass ; pass = assert_eql(ts_abccba, result, "filter_substr(\"abccba\", \"ccbx\")") && pass ; free(result) ; result = filter_substr("Moses supposes his toeses are roses.", "oses") ; pass = assert(! result[24], "result not properly terminated") && pass ; pass = assert_eql("M supp his toeses are r.", result, "filter_substr(\"Moses supposes his toeses are roses.\", \"oses\")") && pass ; free(result) ; return pass ; }
static bool test_filter_any_ptr() { bool pass = true ; char *result ; ntests++ ; result = filter_any_ptr(ts_abccba, "cba") ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_any_ptr(\"abccba\", \"cba\")") && pass ; free(result) ; result = filter_any_ptr(ts_abccba, "ba") ; pass = assert(! result[2], "result not properly terminated") && pass ; pass = assert_eql("cc", result, "filter_any_ptr(\"abccba\", \"ba\")") && pass ; free(result) ; result = filter_any_ptr(ts_abccba, "c") ; pass = assert(! result[4], "result not properly terminated") && pass ; pass = assert_eql("abba", result, "filter_any_ptr(\"abccba\", \"c\")") && pass ; free(result) ; result = filter_any_ptr(ts_abccba, "") ; pass = assert(! result[6], "result not properly terminated") && pass ; pass = assert_eql("abccba", result, "filter_any_ptr(\"abccba\", \"\")") && pass ; free(result) ; result = filter_any_ptr(ts_empty, "cba") ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_any_ptr(\"\", \"cba\")") && pass ; free(result) ; return pass ; }
static bool test_filter_ch_ptr() { bool pass = true ; char *result ; ntests++ ; result = filter_ch_ptr(ts_abccba, 'a') ; pass = assert(! result[4], "result not properly terminated") && pass ; pass = assert_eql("bccb", result, "filter_ch_ptr(\"abccba\", 'a')") && pass ; free(result) ; result = filter_ch_ptr(ts_abccba, 'b') ; pass = assert_eql("acca", result, "filter_ch_ptr(\"abccba\", 'b')") && pass ; free(result) ; result = filter_ch_ptr(ts_abccba, 'c') ; pass = assert_eql("abba", result, "filter_ch_ptr(\"abccba\", 'c')") && pass ; free(result) ; result = filter_ch_ptr(ts_abccba, 'z') ; pass = assert(! result[6], "result not properly terminated") && pass ; pass = assert_eql(ts_abccba, result, "filter_ch_ptr(\"abccba\", 'z')") && pass ; free(result) ; result = filter_ch_ptr(ts_empty, 'a') ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_ch_ptr(\"\", 'a')") && pass ; free(result) ; return pass ; }
static bool test_filter_any_index() { bool pass = true ; char result[MAXSTR+1] ; ntests++ ; filter_any_index(ts_abccba, result, "cba") ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_any_index(\"abccba\", result, \"cba\")") && pass ; filter_any_index(ts_abccba, result, "ba") ; pass = assert(! result[2], "result not properly terminated") && pass ; pass = assert_eql("cc", result, "filter_any_index(\"abccba\", result, \"ba\")") && pass ; filter_any_index(ts_abccba, result, "c") ; pass = assert(! result[4], "result not properly terminated") && pass ; pass = assert_eql("abba", result, "filter_any_index(\"abccba\", result, \"c\")") && pass ; filter_any_index(ts_abccba, result, "") ; pass = assert(! result[6], "result not properly terminated") && pass ; pass = assert_eql("abccba", result, "filter_any_index(\"abccba\", result, \"\")") && pass ; filter_any_index(ts_empty, result, "cba") ; pass = assert(! result[0], "result not properly terminated") && pass ; pass = assert_eql(ts_empty, result, "filter_any_index(\"\", result, \"cba\")") && pass ; return pass ; }
static void TestPDFStream(skiatest::Reporter* reporter) { char streamBytes[] = "Test\nFoo\tBar"; std::unique_ptr<SkStreamAsset> streamData(new SkMemoryStream( streamBytes, strlen(streamBytes), true)); auto stream = sk_make_sp<SkPDFStream>(std::move(streamData)); assert_emit_eq(reporter, *stream, "<</Length 12>> stream\nTest\nFoo\tBar\nendstream"); stream->dict()->insertInt("Attribute", 42); assert_emit_eq(reporter, *stream, "<</Length 12\n/Attribute 42>> stream\n" "Test\nFoo\tBar\nendstream"); { char streamBytes2[] = "This is a longer string, so that compression " "can do something with it. With shorter strings, " "the short circuit logic cuts in and we end up " "with an uncompressed string."; auto stream = sk_make_sp<SkPDFStream>( SkData::MakeWithCopy(streamBytes2, strlen(streamBytes2))); SkDynamicMemoryWStream compressedByteStream; SkDeflateWStream deflateWStream(&compressedByteStream); deflateWStream.write(streamBytes2, strlen(streamBytes2)); deflateWStream.finalize(); SkDynamicMemoryWStream expected; expected.writeText("<</Filter /FlateDecode\n/Length 116>> stream\n"); compressedByteStream.writeToStream(&expected); compressedByteStream.reset(); expected.writeText("\nendstream"); SkAutoDataUnref expectedResultData2(expected.copyToData()); SkString result = emit_to_string(*stream); assert_eql(reporter, result, (const char*)expectedResultData2->data(), expectedResultData2->size()); } }
static void assert_eq(skiatest::Reporter* reporter, const SkString& skString, const char* str) { assert_eql(reporter, skString, str, strlen(str)); }