aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/RecorderTest.cpp
blob: e04a9e9f6033d1919411cca3d0f5f5f93085de46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "Test.h"

#include "SkRecord.h"
#include "SkRecorder.h"
#include "SkRecords.h"

#define COUNT(T) + 1
static const int kRecordTypes = SK_RECORD_TYPES(COUNT);
#undef COUNT

// Tallies the types of commands it sees into histogram.
class Tally {
public:
    explicit Tally(int histogram[kRecordTypes]) : fHistogram(histogram) {}

    template <typename T> void operator()(const T&) {
        ++fHistogram[T::kType];
    }

private:
    int* fHistogram;
};

DEF_TEST(Recorder, r) {
    SkRecord record;
    SkRecorder recorder(&record, 1920, 1080);

    recorder.drawRect(SkRect::MakeWH(10, 10), SkPaint());

    int histogram[kRecordTypes];
    bzero(&histogram, sizeof(histogram));

    record.visit(Tally(histogram));

    REPORTER_ASSERT(r, 1 == histogram[SkRecords::DrawRect::kType]);
}