Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1705)

Unified Diff: tests/PathTest.cpp

Issue 49693002: Use SkPathRef gen id for SkPath::getGenerationID (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: upload again, rietveld diff failed. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkPathRef.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/PathTest.cpp
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index c47b2c4858d6f9ff3f2351c4a2db25fe484ca8aa..6544c0b8d7d3375e6731580d38cdd178e2771c92 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -127,7 +127,6 @@ static void test_android_specific_behavior(skiatest::Reporter* reporter) {
original.setSourcePath(&source);
original.moveTo(0, 0);
original.lineTo(1, 1);
- REPORTER_ASSERT(reporter, original.getGenerationID() > 0);
REPORTER_ASSERT(reporter, original.getSourcePath() == &source);
uint32_t copyID, assignID;
@@ -137,37 +136,88 @@ static void test_android_specific_behavior(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, copy.getGenerationID() == original.getGenerationID());
REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
- // Test assigment operator. Increment generation ID, copy source path.
+ // Test assigment operator. Change generation ID, copy source path.
SkPath assign;
assignID = assign.getGenerationID();
assign = original;
- REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID);
+ REPORTER_ASSERT(reporter, assign.getGenerationID() != assignID);
REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath());
- // Test rewind. Increment generation ID, don't touch source path.
+ // Test rewind. Change generation ID, don't touch source path.
copyID = copy.getGenerationID();
copy.rewind();
- REPORTER_ASSERT(reporter, copy.getGenerationID() > copyID);
+ REPORTER_ASSERT(reporter, copy.getGenerationID() != copyID);
REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
- // Test reset. Increment generation ID, don't touch source path.
+ // Test reset. Change generation ID, don't touch source path.
assignID = assign.getGenerationID();
assign.reset();
- REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID);
+ REPORTER_ASSERT(reporter, assign.getGenerationID() != assignID);
REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath());
- // Test swap. Increment both generation IDs, swap source paths.
+ // Test swap. Swap the generation IDs, swap source paths.
+ copy.reset();
+ copy.moveTo(2, 2);
copy.setSourcePath(&anotherSource);
copyID = copy.getGenerationID();
+ assign.moveTo(3, 3);
assignID = assign.getGenerationID();
copy.swap(assign);
- REPORTER_ASSERT(reporter, copy.getGenerationID() > copyID);
- REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID);
+ REPORTER_ASSERT(reporter, copy.getGenerationID() != copyID);
+ REPORTER_ASSERT(reporter, assign.getGenerationID() != assignID);
REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
REPORTER_ASSERT(reporter, assign.getSourcePath() == &anotherSource);
#endif
}
+static void test_gen_id(skiatest::Reporter* reporter) {
+ SkPath a, b;
+ REPORTER_ASSERT(reporter, a.getGenerationID() == b.getGenerationID());
+
+ a.moveTo(0, 0);
+ const uint32_t z = a.getGenerationID();
+ REPORTER_ASSERT(reporter, z != b.getGenerationID());
+
+ a.reset();
+ REPORTER_ASSERT(reporter, a.getGenerationID() == b.getGenerationID());
+
+ a.moveTo(1, 1);
+ const uint32_t y = a.getGenerationID();
+ REPORTER_ASSERT(reporter, z != y);
+
+ b.moveTo(2, 2);
+ const uint32_t x = b.getGenerationID();
+ REPORTER_ASSERT(reporter, x != y && x != z);
+
+ a.swap(b);
+ REPORTER_ASSERT(reporter, b.getGenerationID() == y && a.getGenerationID() == x);
+
+ b = a;
+ REPORTER_ASSERT(reporter, b.getGenerationID() == x);
+
+ SkPath c(a);
+ REPORTER_ASSERT(reporter, c.getGenerationID() == x);
+
+ c.lineTo(3, 3);
+ const uint32_t w = c.getGenerationID();
+ REPORTER_ASSERT(reporter, b.getGenerationID() == x);
+ REPORTER_ASSERT(reporter, a.getGenerationID() == x);
+ REPORTER_ASSERT(reporter, w != x);
+
+#ifdef SK_BUILD_FOR_ANDROID
+ static bool kExpectGenIDToIgnoreFill = false;
+#else
+ static bool kExpectGenIDToIgnoreFill = true;
+#endif
+
+ c.toggleInverseFillType();
+ const uint32_t v = c.getGenerationID();
+ REPORTER_ASSERT(reporter, (v == w) == kExpectGenIDToIgnoreFill);
+
+ c.rewind();
+ REPORTER_ASSERT(reporter, v != c.getGenerationID());
+}
+
// This used to assert in the debug build, as the edges did not all line-up.
static void test_bad_cubic_crbug234190() {
SkPath path;
@@ -2620,6 +2670,7 @@ static void TestPath(skiatest::Reporter* reporter) {
test_bad_cubic_crbug229478();
test_bad_cubic_crbug234190();
test_android_specific_behavior(reporter);
+ test_gen_id(reporter);
test_path_close_issue1474(reporter);
test_path_to_region(reporter);
}
« no previous file with comments | « src/core/SkPathRef.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698