Index: tests/PathTest.cpp |
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp |
index e265d317cadd87d0cad7a047576036cc2c036042..3941ad6e183946ff42f86a40434c87c8b5467f02 100644 |
--- a/tests/PathTest.cpp |
+++ b/tests/PathTest.cpp |
@@ -15,6 +15,7 @@ |
#include "SkRandom.h" |
#include "SkReader32.h" |
#include "SkSize.h" |
+#include "SkStream.h" |
#include "SkSurface.h" |
#include "SkTypes.h" |
#include "SkWriter32.h" |
@@ -3364,6 +3365,44 @@ static void test_operatorEqual(skiatest::Reporter* reporter) { |
REPORTER_ASSERT(reporter, a == b); |
} |
+static void compare_dump(skiatest::Reporter* reporter, const SkPath& path, bool force, |
+ const char* str) { |
+ SkDynamicMemoryWStream wStream; |
+ path.dump(&wStream, force); |
+ SkAutoDataUnref data(wStream.copyToData()); |
+ REPORTER_ASSERT(reporter, data->size() == strlen(str)); |
+ REPORTER_ASSERT(reporter, !memcmp(data->data(), str, strlen(str))); |
+} |
+ |
+static void test_dump(skiatest::Reporter* reporter) { |
+ SkPath p; |
+ compare_dump(reporter, p, false, ""); |
+ compare_dump(reporter, p, true, ""); |
+ p.moveTo(1, 2); |
+ p.lineTo(3, 4); |
+ compare_dump(reporter, p, false, "path.moveTo(1, 2);\n" |
+ "path.lineTo(3, 4);\n"); |
+ compare_dump(reporter, p, true, "path.moveTo(1, 2);\n" |
+ "path.lineTo(3, 4);\n" |
+ "path.lineTo(1, 2);\n" |
+ "path.close();\n"); |
+ p.reset(); |
+ p.moveTo(1, 2); |
+ p.quadTo(3, 4, 5, 6); |
+ compare_dump(reporter, p, false, "path.moveTo(1, 2);\n" |
+ "path.quadTo(3, 4, 5, 6);\n"); |
+ p.reset(); |
+ p.moveTo(1, 2); |
+ p.conicTo(3, 4, 5, 6, 0.5f); |
+ compare_dump(reporter, p, false, "path.moveTo(1, 2);\n" |
+ "path.conicTo(3, 4, 5, 6, 0.5f);\n"); |
+ p.reset(); |
+ p.moveTo(1, 2); |
+ p.cubicTo(3, 4, 5, 6, 7, 8); |
+ compare_dump(reporter, p, false, "path.moveTo(1, 2);\n" |
+ "path.cubicTo(3, 4, 5, 6, 7, 8);\n"); |
+} |
+ |
class PathTest_Private { |
public: |
static void TestPathTo(skiatest::Reporter* reporter) { |
@@ -3513,4 +3552,5 @@ DEF_TEST(Paths, reporter) { |
test_contains(reporter); |
PathTest_Private::TestPathTo(reporter); |
PathRefTest_Private::TestPathRef(reporter); |
+ test_dump(reporter); |
} |