@@ -30,7 +30,7 @@ TEST(RasterCache, SimpleInitialization) {
3030}
3131
3232TEST (RasterCache, ThresholdIsRespected) {
33- size_t threshold = 3 ;
33+ size_t threshold = 2 ;
3434 flutter::RasterCache cache (threshold);
3535
3636 SkMatrix matrix = SkMatrix::I ();
@@ -40,18 +40,28 @@ TEST(RasterCache, ThresholdIsRespected) {
4040 sk_sp<SkImage> image;
4141
4242 sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB ();
43- ASSERT_FALSE (cache. Prepare ( NULL , picture. get (), matrix, srgb. get (), true ,
44- false )); // 1
45- cache. SweepAfterFrame ();
46- ASSERT_FALSE (cache.Prepare ( NULL , picture. get () , matrix, srgb. get (), true ,
47- false )); // 2
43+ ASSERT_FALSE (
44+ cache. Prepare ( NULL , picture. get (), matrix, srgb. get (), true , false ));
45+ // 1st access.
46+ ASSERT_FALSE (cache.Get (* picture, matrix). is_valid ());
47+
4848 cache.SweepAfterFrame ();
49- ASSERT_TRUE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
50- false )); // 3
49+
50+ ASSERT_FALSE (
51+ cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true , false ));
52+
53+ // 2st access.
54+ ASSERT_FALSE (cache.Get (*picture, matrix).is_valid ());
55+
5156 cache.SweepAfterFrame ();
57+
58+ // Now Prepare should cache it.
59+ ASSERT_TRUE (
60+ cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true , false ));
61+ ASSERT_TRUE (cache.Get (*picture, matrix).is_valid ());
5262}
5363
54- TEST (RasterCache, ThresholdIsRespectedWhenZero ) {
64+ TEST (RasterCache, AccessThresholdOfZeroDisablesCaching ) {
5565 size_t threshold = 0 ;
5666 flutter::RasterCache cache (threshold);
5767
@@ -62,19 +72,31 @@ TEST(RasterCache, ThresholdIsRespectedWhenZero) {
6272 sk_sp<SkImage> image;
6373
6474 sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB ();
65- ASSERT_FALSE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
66- false )); // 1
67- cache.SweepAfterFrame ();
68- ASSERT_FALSE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
69- false )); // 2
70- cache.SweepAfterFrame ();
71- ASSERT_FALSE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
72- false )); // 3
73- cache.SweepAfterFrame ();
75+ ASSERT_FALSE (
76+ cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true , false ));
77+
78+ ASSERT_FALSE (cache.Get (*picture, matrix).is_valid ());
79+ }
80+
81+ TEST (RasterCache, PictureCacheLimitPerFrameIsRespectedWhenZero) {
82+ size_t picture_cache_limit_per_frame = 0 ;
83+ flutter::RasterCache cache (3 , picture_cache_limit_per_frame);
84+
85+ SkMatrix matrix = SkMatrix::I ();
86+
87+ auto picture = GetSamplePicture ();
88+
89+ sk_sp<SkImage> image;
90+
91+ sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB ();
92+ ASSERT_FALSE (
93+ cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true , false ));
94+
95+ ASSERT_FALSE (cache.Get (*picture, matrix).is_valid ());
7496}
7597
7698TEST (RasterCache, SweepsRemoveUnusedFrames) {
77- size_t threshold = 3 ;
99+ size_t threshold = 1 ;
78100 flutter::RasterCache cache (threshold);
79101
80102 SkMatrix matrix = SkMatrix::I ();
@@ -86,19 +108,18 @@ TEST(RasterCache, SweepsRemoveUnusedFrames) {
86108 sk_sp<SkColorSpace> srgb = SkColorSpace::MakeSRGB ();
87109 ASSERT_FALSE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
88110 false )); // 1
111+ ASSERT_FALSE (cache.Get (*picture, matrix).is_valid ());
112+
89113 cache.SweepAfterFrame ();
90- ASSERT_FALSE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
91- false )); // 2
92- cache.SweepAfterFrame ();
93- ASSERT_TRUE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
94- false )); // 3
95- cache.SweepAfterFrame ();
114+
96115 ASSERT_TRUE (cache.Prepare (NULL , picture.get (), matrix, srgb.get (), true ,
97- false )); // 4
116+ false )); // 2
117+ ASSERT_TRUE (cache.Get (*picture, matrix).is_valid ());
118+
98119 cache.SweepAfterFrame ();
99- cache.SweepAfterFrame (); // Extra frame without a preroll image access.
100- ASSERT_FALSE (cache. Prepare ( NULL , picture. get (), matrix, srgb. get (), true ,
101- false )); // 5
120+ cache.SweepAfterFrame (); // Extra frame without a Get image access.
121+
122+ ASSERT_FALSE (cache. Get (*picture, matrix). is_valid ());
102123}
103124
104125} // namespace testing
0 commit comments