Skip to content

Commit 620f528

Browse files
arbrengfluttergithubbot
authored andcommitted
Add flow test fixtures and tests (flutter#13986)
1 parent fffeb8f commit 620f528

File tree

85 files changed

+4524
-388
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+4524
-388
lines changed

BUILD.gn

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,10 @@ group("flutter") {
9595

9696
# Fuchsia currently only supports a subset of our unit tests
9797
if (is_fuchsia) {
98-
public_deps += [ "$flutter_root/fml:fml_tests" ]
98+
public_deps += [
99+
"$flutter_root/flow:flow_tests",
100+
"$flutter_root/fml:fml_tests",
101+
]
99102
}
100103
}
101104

ci/licenses_golden/licenses_flutter

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,33 @@ FILE: ../../../flutter/flow/instrumentation.cc
3030
FILE: ../../../flutter/flow/instrumentation.h
3131
FILE: ../../../flutter/flow/layers/backdrop_filter_layer.cc
3232
FILE: ../../../flutter/flow/layers/backdrop_filter_layer.h
33+
FILE: ../../../flutter/flow/layers/backdrop_filter_layer_unittests.cc
3334
FILE: ../../../flutter/flow/layers/child_scene_layer.cc
3435
FILE: ../../../flutter/flow/layers/child_scene_layer.h
3536
FILE: ../../../flutter/flow/layers/clip_path_layer.cc
3637
FILE: ../../../flutter/flow/layers/clip_path_layer.h
38+
FILE: ../../../flutter/flow/layers/clip_path_layer_unittests.cc
3739
FILE: ../../../flutter/flow/layers/clip_rect_layer.cc
3840
FILE: ../../../flutter/flow/layers/clip_rect_layer.h
41+
FILE: ../../../flutter/flow/layers/clip_rect_layer_unittests.cc
3942
FILE: ../../../flutter/flow/layers/clip_rrect_layer.cc
4043
FILE: ../../../flutter/flow/layers/clip_rrect_layer.h
44+
FILE: ../../../flutter/flow/layers/clip_rrect_layer_unittests.cc
4145
FILE: ../../../flutter/flow/layers/color_filter_layer.cc
4246
FILE: ../../../flutter/flow/layers/color_filter_layer.h
47+
FILE: ../../../flutter/flow/layers/color_filter_layer_unittests.cc
4348
FILE: ../../../flutter/flow/layers/container_layer.cc
4449
FILE: ../../../flutter/flow/layers/container_layer.h
50+
FILE: ../../../flutter/flow/layers/container_layer_unittests.cc
4551
FILE: ../../../flutter/flow/layers/layer.cc
4652
FILE: ../../../flutter/flow/layers/layer.h
4753
FILE: ../../../flutter/flow/layers/layer_tree.cc
4854
FILE: ../../../flutter/flow/layers/layer_tree.h
55+
FILE: ../../../flutter/flow/layers/layer_tree_unittests.cc
4956
FILE: ../../../flutter/flow/layers/layer_unittests.cc
5057
FILE: ../../../flutter/flow/layers/opacity_layer.cc
5158
FILE: ../../../flutter/flow/layers/opacity_layer.h
59+
FILE: ../../../flutter/flow/layers/opacity_layer_unittests.cc
5260
FILE: ../../../flutter/flow/layers/performance_overlay_layer.cc
5361
FILE: ../../../flutter/flow/layers/performance_overlay_layer.h
5462
FILE: ../../../flutter/flow/layers/performance_overlay_layer_unittests.cc
@@ -57,14 +65,19 @@ FILE: ../../../flutter/flow/layers/physical_shape_layer.h
5765
FILE: ../../../flutter/flow/layers/physical_shape_layer_unittests.cc
5866
FILE: ../../../flutter/flow/layers/picture_layer.cc
5967
FILE: ../../../flutter/flow/layers/picture_layer.h
68+
FILE: ../../../flutter/flow/layers/picture_layer_unittests.cc
6069
FILE: ../../../flutter/flow/layers/platform_view_layer.cc
6170
FILE: ../../../flutter/flow/layers/platform_view_layer.h
71+
FILE: ../../../flutter/flow/layers/platform_view_layer_unittests.cc
6272
FILE: ../../../flutter/flow/layers/shader_mask_layer.cc
6373
FILE: ../../../flutter/flow/layers/shader_mask_layer.h
74+
FILE: ../../../flutter/flow/layers/shader_mask_layer_unittests.cc
6475
FILE: ../../../flutter/flow/layers/texture_layer.cc
6576
FILE: ../../../flutter/flow/layers/texture_layer.h
77+
FILE: ../../../flutter/flow/layers/texture_layer_unittests.cc
6678
FILE: ../../../flutter/flow/layers/transform_layer.cc
6779
FILE: ../../../flutter/flow/layers/transform_layer.h
80+
FILE: ../../../flutter/flow/layers/transform_layer_unittests.cc
6881
FILE: ../../../flutter/flow/matrix_decomposition.cc
6982
FILE: ../../../flutter/flow/matrix_decomposition.h
7083
FILE: ../../../flutter/flow/matrix_decomposition_unittests.cc

flow/BUILD.gn

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
if (is_fuchsia) {
66
import("//build/fuchsia/sdk.gni")
7+
import("$flutter_root/tools/fuchsia/fuchsia_archive.gni")
78
}
8-
99
import("$flutter_root/testing/testing.gni")
1010

1111
source_set("flow") {
@@ -102,30 +102,102 @@ test_fixtures("flow_fixtures") {
102102
fixtures = []
103103
}
104104

105+
source_set("flow_testing") {
106+
testonly = true
107+
108+
sources = [
109+
"testing/layer_test.h",
110+
"testing/mock_layer.cc",
111+
"testing/mock_layer.h",
112+
"testing/mock_texture.cc",
113+
"testing/mock_texture.h",
114+
"testing/skia_gpu_object_layer_test.cc",
115+
"testing/skia_gpu_object_layer_test.h",
116+
]
117+
118+
public_deps = [
119+
":flow",
120+
"$flutter_root/testing:skia",
121+
"//third_party/googletest:gtest",
122+
]
123+
}
124+
105125
executable("flow_unittests") {
106126
testonly = true
107127

108128
sources = [
109129
"flow_run_all_unittests.cc",
110130
"flow_test_utils.cc",
111131
"flow_test_utils.h",
132+
"layers/backdrop_filter_layer_unittests.cc",
133+
"layers/clip_path_layer_unittests.cc",
134+
"layers/clip_rect_layer_unittests.cc",
135+
"layers/clip_rrect_layer_unittests.cc",
136+
"layers/color_filter_layer_unittests.cc",
137+
"layers/container_layer_unittests.cc",
138+
"layers/layer_tree_unittests.cc",
112139
"layers/layer_unittests.cc",
140+
"layers/opacity_layer_unittests.cc",
113141
"layers/performance_overlay_layer_unittests.cc",
114142
"layers/physical_shape_layer_unittests.cc",
143+
"layers/picture_layer_unittests.cc",
144+
"layers/platform_view_layer_unittests.cc",
145+
"layers/shader_mask_layer_unittests.cc",
146+
"layers/texture_layer_unittests.cc",
147+
"layers/transform_layer_unittests.cc",
115148
"matrix_decomposition_unittests.cc",
116149
"mutators_stack_unittests.cc",
117150
"raster_cache_unittests.cc",
118151
"skia_gpu_object_unittests.cc",
152+
"testing/mock_layer_unittests.cc",
153+
"testing/mock_texture_unittests.cc",
119154
"texture_unittests.cc",
120155
]
121156

122157
deps = [
123158
":flow",
124159
":flow_fixtures",
160+
":flow_testing",
125161
"$flutter_root/fml",
162+
"$flutter_root/testing:skia",
126163
"$flutter_root/testing:testing_lib",
127164
"//third_party/dart/runtime:libdart_jit", # for tracing
128165
"//third_party/googletest:gtest",
129166
"//third_party/skia",
130167
]
131168
}
169+
170+
if (is_fuchsia) {
171+
fuchsia_archive("flow_tests") {
172+
testonly = true
173+
174+
deps = [
175+
":flow_unittests",
176+
]
177+
178+
binary = "flow_unittests"
179+
180+
libraries = common_libs
181+
182+
meta_dir = "$flutter_root/testing/fuchsia/meta"
183+
cmx_file = "$meta_dir/fuchsia_test.cmx"
184+
185+
resources = [
186+
{
187+
path = rebase_path(
188+
"$flutter_root/testing/resources/performance_overlay_gold_60fps.png")
189+
dest = "flutter/testing/resources/performance_overlay_gold_60fps.png"
190+
},
191+
{
192+
path = rebase_path(
193+
"$flutter_root/testing/resources/performance_overlay_gold_90fps.png")
194+
dest = "flutter/testing/resources/performance_overlay_gold_90fps.png"
195+
},
196+
{
197+
path = rebase_path(
198+
"$flutter_root/testing/resources/performance_overlay_gold_120fps.png")
199+
dest = "flutter/testing/resources/performance_overlay_gold_120fps.png"
200+
},
201+
]
202+
}
203+
}

flow/embedded_views.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ class MutatorsStack {
143143
// Returns an iterator pointing to the bottom of the stack.
144144
const std::vector<std::shared_ptr<Mutator>>::const_reverse_iterator Bottom()
145145
const;
146+
bool is_empty() const { return vector_.empty(); }
146147

147148
bool operator==(const MutatorsStack& other) const {
148149
if (vector_.size() != other.vector_.size()) {
@@ -156,10 +157,26 @@ class MutatorsStack {
156157
return true;
157158
}
158159

160+
bool operator==(const std::vector<Mutator>& other) const {
161+
if (vector_.size() != other.size()) {
162+
return false;
163+
}
164+
for (size_t i = 0; i < vector_.size(); i++) {
165+
if (*vector_[i] != other[i]) {
166+
return false;
167+
}
168+
}
169+
return true;
170+
}
171+
159172
bool operator!=(const MutatorsStack& other) const {
160173
return !operator==(other);
161174
}
162175

176+
bool operator!=(const std::vector<Mutator>& other) const {
177+
return !operator==(other);
178+
}
179+
163180
private:
164181
std::vector<std::shared_ptr<Mutator>> vector_;
165182
}; // MutatorsStack

flow/flow_run_all_unittests.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17+
#include "flutter/fml/build_config.h"
1718
#include "flutter/fml/command_line.h"
1819
#include "flutter/fml/logging.h"
1920
#include "gtest/gtest.h"
@@ -23,8 +24,14 @@
2324
int main(int argc, char** argv) {
2425
testing::InitGoogleTest(&argc, argv);
2526
fml::CommandLine cmd = fml::CommandLineFromArgcArgv(argc, argv);
27+
28+
#if defined(OS_FUCHSIA)
29+
flutter::SetGoldenDir(cmd.GetOptionValueWithDefault(
30+
"golden-dir", "/pkg/data/flutter/testing/resources"));
31+
#else
2632
flutter::SetGoldenDir(
2733
cmd.GetOptionValueWithDefault("golden-dir", "flutter/testing/resources"));
34+
#endif
2835
flutter::SetFontFile(cmd.GetOptionValueWithDefault(
2936
"font-file",
3037
"flutter/third_party/txt/third_party/fonts/Roboto-Regular.ttf"));

flow/layers/backdrop_filter_layer.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ BackdropFilterLayer::BackdropFilterLayer(sk_sp<SkImageFilter> filter)
1111
set_layer_reads_surface(filter_.get() != nullptr);
1212
}
1313

14-
BackdropFilterLayer::~BackdropFilterLayer() = default;
15-
1614
void BackdropFilterLayer::Paint(PaintContext& context) const {
1715
TRACE_EVENT0("flutter", "BackdropFilterLayer::Paint");
1816
FML_DCHECK(needs_painting());

flow/layers/backdrop_filter_layer.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ namespace flutter {
1414
class BackdropFilterLayer : public ContainerLayer {
1515
public:
1616
BackdropFilterLayer(sk_sp<SkImageFilter> filter);
17-
~BackdropFilterLayer() override;
1817

1918
void Paint(PaintContext& context) const override;
2019

0 commit comments

Comments
 (0)