Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
tests
MetaDataTest.cpp
Go to the documentation of this file.
1
/*
2
* Copyright 2011 Google Inc.
3
*
4
* Use of this source code is governed by a BSD-style license that can be
5
* found in the LICENSE file.
6
*/
7
8
#include "
include/core/SkScalar.h
"
9
#include "
tests/Test.h
"
10
#include "
tools/SkMetaData.h
"
11
12
#include <array>
13
#include <cstddef>
14
#include <cstdint>
15
#include <cstring>
16
17
DEF_TEST
(MetaData,
reporter
) {
18
SkMetaData
m1;
19
20
REPORTER_ASSERT
(
reporter
, !m1.
findS32
(
"int"
));
21
REPORTER_ASSERT
(
reporter
, !m1.
findScalar
(
"scalar"
));
22
REPORTER_ASSERT
(
reporter
, !m1.
removeS32
(
"int"
));
23
REPORTER_ASSERT
(
reporter
, !m1.
removeScalar
(
"scalar"
));
24
25
m1.
setS32
(
"int"
, 12345);
26
m1.
setScalar
(
"scalar"
,
SK_Scalar1
* 42);
27
m1.
setPtr
(
"ptr"
, &m1);
28
m1.
setBool
(
"true"
,
true
);
29
m1.
setBool
(
"false"
,
false
);
30
31
int32_t n;
32
SkScalar
s
;
33
34
m1.
setScalar
(
"scalar"
,
SK_Scalar1
/2);
35
36
REPORTER_ASSERT
(
reporter
, m1.
findS32
(
"int"
, &n) && n == 12345);
37
REPORTER_ASSERT
(
reporter
, m1.
findScalar
(
"scalar"
, &
s
) &&
s
==
SK_Scalar1
/2);
38
REPORTER_ASSERT
(
reporter
, m1.
hasBool
(
"true"
,
true
));
39
REPORTER_ASSERT
(
reporter
, m1.
hasBool
(
"false"
,
false
));
40
41
SkMetaData::Iter
iter(m1);
42
const
char
*
name
;
43
44
static
const
struct
{
45
const
char
*
fName
;
46
SkMetaData::Type
fType;
47
int
fCount;
48
} gElems[] = {
49
{
"int"
,
SkMetaData::kS32_Type
, 1 },
50
{
"scalar"
,
SkMetaData::kScalar_Type
, 1 },
51
{
"ptr"
,
SkMetaData::kPtr_Type
, 1 },
52
{
"true"
,
SkMetaData::kBool_Type
, 1 },
53
{
"false"
,
SkMetaData::kBool_Type
, 1 }
54
};
55
56
size_t
loop = 0;
57
int
count
;
58
SkMetaData::Type
t;
59
while
((
name
= iter.
next
(&t, &
count
)) !=
nullptr
)
60
{
61
int
match
= 0;
62
for
(
unsigned
i = 0; i < std::size(gElems); i++)
63
{
64
if
(!strcmp(
name
, gElems[i].
fName
))
65
{
66
match
+= 1;
67
REPORTER_ASSERT
(
reporter
, gElems[i].fType == t);
68
REPORTER_ASSERT
(
reporter
, gElems[i].fCount ==
count
);
69
}
70
}
71
REPORTER_ASSERT
(
reporter
,
match
== 1);
72
loop += 1;
73
}
74
REPORTER_ASSERT
(
reporter
, loop == std::size(gElems));
75
76
REPORTER_ASSERT
(
reporter
, m1.
removeS32
(
"int"
));
77
REPORTER_ASSERT
(
reporter
, m1.
removeScalar
(
"scalar"
));
78
REPORTER_ASSERT
(
reporter
, m1.
removeBool
(
"true"
));
79
REPORTER_ASSERT
(
reporter
, m1.
removeBool
(
"false"
));
80
81
REPORTER_ASSERT
(
reporter
, !m1.
findS32
(
"int"
));
82
REPORTER_ASSERT
(
reporter
, !m1.
findScalar
(
"scalar"
));
83
REPORTER_ASSERT
(
reporter
, !m1.
findBool
(
"true"
));
84
REPORTER_ASSERT
(
reporter
, !m1.
findBool
(
"false"
));
85
}
match
static bool match(const char *needle, const char *haystack)
Definition
DM.cpp:1132
fName
const char * fName
Definition
FontCacheBench.cpp:71
reporter
reporter
Definition
FontMgrTest.cpp:39
count
int count
Definition
FontMgrTest.cpp:50
SkMetaData.h
SkScalar.h
SK_Scalar1
#define SK_Scalar1
Definition
SkScalar.h:18
Test.h
DEF_TEST
#define DEF_TEST(name, reporter)
Definition
Test.h:312
REPORTER_ASSERT
#define REPORTER_ASSERT(r, cond,...)
Definition
Test.h:286
SkMetaData::Iter
Definition
SkMetaData.h:69
SkMetaData::Iter::next
const char * next(Type *, int *count)
Definition
SkMetaData.cpp:227
SkMetaData
Definition
SkMetaData.h:15
SkMetaData::hasBool
bool hasBool(const char name[], bool value) const
Definition
SkMetaData.h:40
SkMetaData::removeBool
bool removeBool(const char name[])
Definition
SkMetaData.cpp:212
SkMetaData::findScalar
bool findScalar(const char name[], SkScalar *value=nullptr) const
Definition
SkMetaData.cpp:109
SkMetaData::Type
Type
Definition
SkMetaData.h:56
SkMetaData::kPtr_Type
@ kPtr_Type
Definition
SkMetaData.h:59
SkMetaData::kBool_Type
@ kBool_Type
Definition
SkMetaData.h:60
SkMetaData::kScalar_Type
@ kScalar_Type
Definition
SkMetaData.h:58
SkMetaData::kS32_Type
@ kS32_Type
Definition
SkMetaData.h:57
SkMetaData::setS32
void setS32(const char name[], int32_t value)
Definition
SkMetaData.cpp:24
SkMetaData::setPtr
void setPtr(const char name[], void *value)
Definition
SkMetaData.cpp:42
SkMetaData::removeScalar
bool removeScalar(const char name[])
Definition
SkMetaData.cpp:202
SkMetaData::removeS32
bool removeS32(const char name[])
Definition
SkMetaData.cpp:197
SkMetaData::setBool
void setBool(const char name[], bool value)
Definition
SkMetaData.cpp:46
SkMetaData::setScalar
void setScalar(const char name[], SkScalar value)
Definition
SkMetaData.cpp:29
SkMetaData::findBool
bool findBool(const char name[], bool *value=nullptr) const
Definition
SkMetaData.cpp:149
SkMetaData::findS32
bool findS32(const char name[], int32_t *value=nullptr) const
Definition
SkMetaData.cpp:96
SkScalar
float SkScalar
Definition
extension.cpp:12
s
struct MyStruct s
name
const char * name
Definition
fuchsia.cc:50
Generated on Fri Apr 26 2024 06:17:47 for Flutter Engine by
1.9.8