| Index: tests/PathTest.cpp
|
| diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
|
| index 4637e9218b8533762850e76cbffc4edd9d178f48..e6795d63c5909bb370a5080d0b96d0e87c34e24c 100644
|
| --- a/tests/PathTest.cpp
|
| +++ b/tests/PathTest.cpp
|
| @@ -84,18 +84,50 @@ static void test_path_close_issue1474(skiatest::Reporter* reporter) {
|
|
|
| static void test_android_specific_behavior(skiatest::Reporter* reporter) {
|
| #ifdef SK_BUILD_FOR_ANDROID
|
| - // Copy constructor should preserve generation ID, but assignment shouldn't.
|
| - SkPath original;
|
| + // Make sure we treat fGenerationID and fSourcePath correctly for each of
|
| + // copy, assign, rewind, reset, and swap.
|
| + SkPath original, source, anotherSource;
|
| + original.setSourcePath(&source);
|
| original.moveTo(0, 0);
|
| original.lineTo(1, 1);
|
| REPORTER_ASSERT(reporter, original.getGenerationID() > 0);
|
| + REPORTER_ASSERT(reporter, original.getSourcePath() == &source);
|
|
|
| - const SkPath copy(original);
|
| + uint32_t copyID, assignID;
|
| +
|
| + // Test copy constructor. Copy generation ID, copy source path.
|
| + SkPath copy(original);
|
| REPORTER_ASSERT(reporter, copy.getGenerationID() == original.getGenerationID());
|
| + REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
|
|
|
| + // Test assigment operator. Increment generation ID, copy source path.
|
| SkPath assign;
|
| + assignID = assign.getGenerationID();
|
| assign = original;
|
| - REPORTER_ASSERT(reporter, assign.getGenerationID() != original.getGenerationID());
|
| + REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID);
|
| + REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath());
|
| +
|
| + // Test rewind. Increment generation ID, don't touch source path.
|
| + copyID = copy.getGenerationID();
|
| + copy.rewind();
|
| + REPORTER_ASSERT(reporter, copy.getGenerationID() > copyID);
|
| + REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath());
|
| +
|
| + // Test reset. Increment generation ID, don't touch source path.
|
| + assignID = assign.getGenerationID();
|
| + assign.reset();
|
| + REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID);
|
| + REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath());
|
| +
|
| + // Test swap. Increment both generation IDs, swap source paths.
|
| + copy.setSourcePath(&anotherSource);
|
| + copyID = copy.getGenerationID();
|
| + assignID = assign.getGenerationID();
|
| + copy.swap(assign);
|
| + 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
|
| }
|
|
|
|
|