diff options
Diffstat (limited to 'tests/RecordTest.cpp')
-rw-r--r-- | tests/RecordTest.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/tests/RecordTest.cpp b/tests/RecordTest.cpp index 9e02c882db..e613b425fd 100644 --- a/tests/RecordTest.cpp +++ b/tests/RecordTest.cpp @@ -5,13 +5,14 @@ * found in the LICENSE file. */ -#include "Test.h" - +#include "RecordTestUtils.h" #include "SkBitmap.h" #include "SkImageInfo.h" -#include "SkShader.h" #include "SkRecord.h" #include "SkRecords.h" +#include "SkShader.h" +#include "Test.h" + // Sums the area of any DrawRect command it sees. class AreaSummer { @@ -76,6 +77,25 @@ DEF_TEST(Record, r) { REPORTER_ASSERT(r, summer.area() == 500); } +DEF_TEST(Record_defrag, r) { + SkRecord record; + APPEND(record, SkRecords::Save); + APPEND(record, SkRecords::ClipRect); + APPEND(record, SkRecords::NoOp); + APPEND(record, SkRecords::DrawRect); + APPEND(record, SkRecords::NoOp); + APPEND(record, SkRecords::NoOp); + APPEND(record, SkRecords::Restore); + REPORTER_ASSERT(r, record.count() == 7); + + record.defrag(); + REPORTER_ASSERT(r, record.count() == 4); + assert_type<SkRecords::Save >(r, record, 0); + assert_type<SkRecords::ClipRect>(r, record, 1); + assert_type<SkRecords::DrawRect>(r, record, 2); + assert_type<SkRecords::Restore >(r, record, 3); +} + #undef APPEND template <typename T> |