Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
shell
platform
embedder
tests
embedder_frozen_unittests.cc
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "flutter/shell/platform/embedder/embedder.h"
6
#include "flutter/shell/platform/embedder/tests/embedder_frozen.h"
7
#include "flutter/testing/testing.h"
8
9
namespace
flutter
{
10
namespace
testing {
11
12
// Assert that both types have the same member with the same offset.
13
// This prevents reordering of "frozen" embedder API struct members.
14
#define ASSERT_EQ_OFFSET(type1, type2, member) \
15
ASSERT_EQ(offsetof(type1, member), offsetof(type2, member))
16
17
// New members must not be added to `FlutterTransformation`
18
// as it would break the ABI of `FlutterSemanticsNode`.
19
// See: https://github.com/flutter/flutter/issues/121176
20
TEST
(EmbedderFrozen, FlutterTransformationIsFrozen) {
21
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, scaleX);
22
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, skewX);
23
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, transX);
24
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, skewY);
25
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, scaleY);
26
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, transY);
27
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, pers0);
28
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, pers1);
29
ASSERT_EQ_OFFSET
(
FlutterTransformation
,
FrozenFlutterTransformation
, pers2);
30
}
31
32
// New members must not be added to `FlutterRect` as it would
33
// break the ABI of `FlutterSemanticsNode` and `FlutterDamage`.
34
// See: https://github.com/flutter/flutter/issues/121176
35
// See: https://github.com/flutter/flutter/issues/121347
36
TEST
(EmbedderFrozen, FlutterRectIsFrozen) {
37
ASSERT_EQ_OFFSET
(
FlutterRect
,
FrozenFlutterRect
,
left
);
38
ASSERT_EQ_OFFSET
(
FlutterRect
,
FrozenFlutterRect
, top);
39
ASSERT_EQ_OFFSET
(
FlutterRect
,
FrozenFlutterRect
,
right
);
40
ASSERT_EQ_OFFSET
(
FlutterRect
,
FrozenFlutterRect
, bottom);
41
}
42
43
// New members must not be added to `FlutterPoint` as it would
44
// break the ABI of `FlutterLayer`.
45
TEST
(EmbedderFrozen, FlutterPointIsFrozen) {
46
ASSERT_EQ_OFFSET
(
FlutterPoint
,
FrozenFlutterPoint
,
x
);
47
ASSERT_EQ_OFFSET
(
FlutterPoint
,
FrozenFlutterPoint
,
y
);
48
}
49
50
// New members must not be added to `FlutterDamage` as it would
51
// break the ABI of `FlutterPresentInfo`.
52
TEST
(EmbedderFrozen, FlutterDamageIsFrozen) {
53
ASSERT_EQ_OFFSET
(
FlutterDamage
,
FrozenFlutterDamage
, struct_size);
54
ASSERT_EQ_OFFSET
(
FlutterDamage
,
FrozenFlutterDamage
, num_rects);
55
ASSERT_EQ_OFFSET
(
FlutterDamage
,
FrozenFlutterDamage
, damage);
56
}
57
58
// New members must not be added to `FlutterSemanticsNode`
59
// as it would break the ABI of `FlutterSemanticsUpdate`.
60
// See: https://github.com/flutter/flutter/issues/121176
61
TEST
(EmbedderFrozen, FlutterSemanticsNodeIsFrozen) {
62
ASSERT_EQ(
sizeof
(
FlutterSemanticsNode
),
sizeof
(
FrozenFlutterSemanticsNode
));
63
64
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
65
struct_size);
66
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
id
);
67
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
flags
);
68
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, actions);
69
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
70
text_selection_base);
71
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
72
text_selection_extent);
73
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
74
scroll_child_count);
75
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
76
scroll_index);
77
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
78
scroll_position);
79
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
80
scroll_extent_max);
81
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
82
scroll_extent_min);
83
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, elevation);
84
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, thickness);
85
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, label);
86
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, hint);
87
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
value
);
88
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
89
increased_value);
90
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
91
decreased_value);
92
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
93
text_direction);
94
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, rect);
95
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
transform
);
96
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
97
child_count);
98
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
99
children_in_traversal_order);
100
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
101
children_in_hit_test_order);
102
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
103
custom_accessibility_actions_count);
104
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
105
custom_accessibility_actions);
106
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
,
107
platform_view_id);
108
ASSERT_EQ_OFFSET
(
FlutterSemanticsNode
,
FrozenFlutterSemanticsNode
, tooltip);
109
}
110
111
// New members must not be added to `FlutterSemanticsCustomAction`
112
// as it would break the ABI of `FlutterSemanticsUpdate`.
113
// See: https://github.com/flutter/flutter/issues/121176
114
TEST
(EmbedderFrozen, FlutterSemanticsCustomActionIsFrozen) {
115
ASSERT_EQ(
sizeof
(
FlutterSemanticsCustomAction
),
116
sizeof
(
FrozenFlutterSemanticsCustomAction
));
117
118
ASSERT_EQ_OFFSET
(
FlutterSemanticsCustomAction
,
119
FrozenFlutterSemanticsCustomAction
, struct_size);
120
ASSERT_EQ_OFFSET
(
FlutterSemanticsCustomAction
,
121
FrozenFlutterSemanticsCustomAction
,
id
);
122
ASSERT_EQ_OFFSET
(
FlutterSemanticsCustomAction
,
123
FrozenFlutterSemanticsCustomAction
, override_action);
124
ASSERT_EQ_OFFSET
(
FlutterSemanticsCustomAction
,
125
FrozenFlutterSemanticsCustomAction
, label);
126
ASSERT_EQ_OFFSET
(
FlutterSemanticsCustomAction
,
127
FrozenFlutterSemanticsCustomAction
, hint);
128
}
129
130
}
// namespace testing
131
}
// namespace flutter
TEST
#define TEST(S, s, D, expected)
Definition
FitsInTest.cpp:15
left
static bool left(const SkPoint &p0, const SkPoint &p1)
Definition
SkPolyUtils.cpp:527
right
static bool right(const SkPoint &p0, const SkPoint &p1)
Definition
SkPolyUtils.cpp:532
ASSERT_EQ_OFFSET
#define ASSERT_EQ_OFFSET(type1, type2, member)
Definition
embedder_frozen_unittests.cc:14
flags
FlutterSemanticsFlag flags
Definition
fl_accessible_node.cc:105
value
uint8_t value
Definition
fl_standard_message_codec.cc:36
y
double y
Definition
mouse-input-test.cc:83
x
double x
Definition
mouse-input-test.cc:82
flutter
Definition
asset_manager.cc:10
transform
static SkColor4f transform(SkColor4f c, SkColorSpace *src, SkColorSpace *dst)
Definition
p3.cpp:47
FlutterDamage
A structure to represent a damage region.
Definition
embedder.h:458
FlutterPoint
A structure to represent a 2D point.
Definition
embedder.h:443
FlutterRect
A structure to represent a rectangle.
Definition
embedder.h:435
FlutterSemanticsCustomAction
Definition
embedder.h:1443
FlutterSemanticsNode
Definition
embedder.h:1256
FlutterTransformation
Definition
embedder.h:275
flutter::testing::FrozenFlutterDamage
Definition
embedder_frozen.h:60
flutter::testing::FrozenFlutterPoint
Definition
embedder_frozen.h:53
flutter::testing::FrozenFlutterRect
Definition
embedder_frozen.h:44
flutter::testing::FrozenFlutterSemanticsCustomAction
Definition
embedder_frozen.h:103
flutter::testing::FrozenFlutterSemanticsNode
Definition
embedder_frozen.h:69
flutter::testing::FrozenFlutterTransformation
Definition
embedder_frozen.h:28
Generated on Fri Apr 26 2024 06:14:27 for Flutter Engine by
1.9.8