| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 #include "Test.h" | 8 #include "Test.h" |
| 9 #include "SkCanvas.h" | 9 #include "SkCanvas.h" |
| 10 #include "SkPaint.h" | 10 #include "SkPaint.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 path.close(); | 77 path.close(); |
| 78 path.rCubicTo(50, 50, 85, 85, 95, 95); | 78 path.rCubicTo(50, 50, 85, 85, 95, 95); |
| 79 | 79 |
| 80 path.getLastPt(&last); | 80 path.getLastPt(&last); |
| 81 REPORTER_ASSERT(reporter, 95 == last.fX); | 81 REPORTER_ASSERT(reporter, 95 == last.fX); |
| 82 REPORTER_ASSERT(reporter, 95 == last.fY); | 82 REPORTER_ASSERT(reporter, 95 == last.fY); |
| 83 } | 83 } |
| 84 | 84 |
| 85 static void test_android_specific_behavior(skiatest::Reporter* reporter) { | 85 static void test_android_specific_behavior(skiatest::Reporter* reporter) { |
| 86 #ifdef SK_BUILD_FOR_ANDROID | 86 #ifdef SK_BUILD_FOR_ANDROID |
| 87 // Copy constructor should preserve generation ID, but assignment shouldn't. | 87 // Make sure we treat fGenerationID and fSourcePath correctly for each of |
| 88 SkPath original; | 88 // copy, assign, rewind, reset, and swap. |
| 89 SkPath original, source, anotherSource; |
| 90 original.setSourcePath(&source); |
| 89 original.moveTo(0, 0); | 91 original.moveTo(0, 0); |
| 90 original.lineTo(1, 1); | 92 original.lineTo(1, 1); |
| 91 REPORTER_ASSERT(reporter, original.getGenerationID() > 0); | 93 REPORTER_ASSERT(reporter, original.getGenerationID() > 0); |
| 94 REPORTER_ASSERT(reporter, original.getSourcePath() == &source); |
| 92 | 95 |
| 93 const SkPath copy(original); | 96 uint32_t copyID, assignID; |
| 97 |
| 98 // Test copy constructor. Copy generation ID, copy source path. |
| 99 SkPath copy(original); |
| 94 REPORTER_ASSERT(reporter, copy.getGenerationID() == original.getGenerationID
()); | 100 REPORTER_ASSERT(reporter, copy.getGenerationID() == original.getGenerationID
()); |
| 101 REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath()); |
| 95 | 102 |
| 103 // Test assigment operator. Increment generation ID, copy source path. |
| 96 SkPath assign; | 104 SkPath assign; |
| 105 assignID = assign.getGenerationID(); |
| 97 assign = original; | 106 assign = original; |
| 98 REPORTER_ASSERT(reporter, assign.getGenerationID() != original.getGeneration
ID()); | 107 REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID); |
| 108 REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath()
); |
| 109 |
| 110 // Test rewind. Increment generation ID, don't touch source path. |
| 111 copyID = copy.getGenerationID(); |
| 112 copy.rewind(); |
| 113 REPORTER_ASSERT(reporter, copy.getGenerationID() > copyID); |
| 114 REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath()); |
| 115 |
| 116 // Test reset. Increment generation ID, don't touch source path. |
| 117 assignID = assign.getGenerationID(); |
| 118 assign.reset(); |
| 119 REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID); |
| 120 REPORTER_ASSERT(reporter, assign.getSourcePath() == original.getSourcePath()
); |
| 121 |
| 122 // Test swap. Increment both generation IDs, swap source paths. |
| 123 copy.setSourcePath(&anotherSource); |
| 124 copyID = copy.getGenerationID(); |
| 125 assignID = assign.getGenerationID(); |
| 126 copy.swap(assign); |
| 127 REPORTER_ASSERT(reporter, copy.getGenerationID() > copyID); |
| 128 REPORTER_ASSERT(reporter, assign.getGenerationID() > assignID); |
| 129 REPORTER_ASSERT(reporter, copy.getSourcePath() == original.getSourcePath()); |
| 130 REPORTER_ASSERT(reporter, assign.getSourcePath() == &anotherSource); |
| 99 #endif | 131 #endif |
| 100 } | 132 } |
| 101 | 133 |
| 102 // This used to assert in the debug build, as the edges did not all line-up. | 134 // This used to assert in the debug build, as the edges did not all line-up. |
| 103 static void test_bad_cubic_crbug234190() { | 135 static void test_bad_cubic_crbug234190() { |
| 104 SkPath path; | 136 SkPath path; |
| 105 path.moveTo(13.8509f, 3.16858f); | 137 path.moveTo(13.8509f, 3.16858f); |
| 106 path.cubicTo(-2.35893e+08f, -4.21044e+08f, | 138 path.cubicTo(-2.35893e+08f, -4.21044e+08f, |
| 107 -2.38991e+08f, -4.26573e+08f, | 139 -2.38991e+08f, -4.26573e+08f, |
| 108 -2.41016e+08f, -4.30188e+08f); | 140 -2.41016e+08f, -4.30188e+08f); |
| (...skipping 2408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2517 test_clipped_cubic(); | 2549 test_clipped_cubic(); |
| 2518 test_crbug_170666(); | 2550 test_crbug_170666(); |
| 2519 test_bad_cubic_crbug229478(); | 2551 test_bad_cubic_crbug229478(); |
| 2520 test_bad_cubic_crbug234190(); | 2552 test_bad_cubic_crbug234190(); |
| 2521 test_android_specific_behavior(reporter); | 2553 test_android_specific_behavior(reporter); |
| 2522 test_path_close_issue1474(reporter); | 2554 test_path_close_issue1474(reporter); |
| 2523 } | 2555 } |
| 2524 | 2556 |
| 2525 #include "TestClassDef.h" | 2557 #include "TestClassDef.h" |
| 2526 DEFINE_TESTCLASS("Path", PathTestClass, TestPath) | 2558 DEFINE_TESTCLASS("Path", PathTestClass, TestPath) |
| OLD | NEW |