diff options
Diffstat (limited to 'tests/SkLiteDLTest.cpp')
-rw-r--r-- | tests/SkLiteDLTest.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/tests/SkLiteDLTest.cpp b/tests/SkLiteDLTest.cpp index d719c0bb76..4dfce09bba 100644 --- a/tests/SkLiteDLTest.cpp +++ b/tests/SkLiteDLTest.cpp @@ -5,9 +5,10 @@ * found in the LICENSE file. */ -#include "Test.h" #include "SkLiteDL.h" #include "SkLiteRecorder.h" +#include "SkRSXform.h" +#include "Test.h" DEF_TEST(SkLiteDL_basics, r) { SkLiteDL p; @@ -62,3 +63,28 @@ DEF_TEST(SkLiteRecorder_RecordsFlush, r) { canvas.flush(); REPORTER_ASSERT(r, !dl.empty()); } + +// skia:7133 regression test. +// At one point we recorded text before the transforms, which makes it easy for +// the recording buffer to not be suitably aligned for the transforms. +DEF_TEST(SkLiteRecorder_RSXformAlignment, r) { + SkLiteDL dl; + SkLiteRecorder canvas; + canvas.reset(&dl, {0,0,100,100}); + + SkPaint paint; + paint.setTextEncoding(SkPaint::kUTF8_TextEncoding); + + // These values don't really matter... we just need 5 valid transforms. + SkRSXform xforms[] = { + {1,0, 1,1}, + {1,0, 2,2}, + {1,0, 3,3}, + {1,0, 4,4}, + {1,0, 5,5}, + }; + canvas.drawTextRSXform("hello", 5, xforms, nullptr, paint); + + // We're just checking that this recorded our draw without SkASSERTing in Debug builds. + REPORTER_ASSERT(r, !dl.empty()); +} |