aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/TextBlobCacheTest.cpp
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-08-21 11:08:00 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-21 11:08:00 -0700
commit7f9c9eb91e65f2d83474f2b34f9ed0d9525245ae (patch)
treef7ddc67b3aaff9cdeb9fb4ecde3b67875b2b1b0d /tests/TextBlobCacheTest.cpp
parentd2b23e0ee6dcb366540b12d13552120289ee3da0 (diff)
wire up reduced atlas and zero textblob cache to test
Diffstat (limited to 'tests/TextBlobCacheTest.cpp')
-rw-r--r--tests/TextBlobCacheTest.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/tests/TextBlobCacheTest.cpp b/tests/TextBlobCacheTest.cpp
index c063040ecf..6f67382a0f 100644
--- a/tests/TextBlobCacheTest.cpp
+++ b/tests/TextBlobCacheTest.cpp
@@ -6,6 +6,7 @@
*/
#include "sk_tool_utils.h"
+
#include "SkCanvas.h"
#include "SkPaint.h"
#include "SkPoint.h"
@@ -24,6 +25,7 @@
#if SK_SUPPORT_GPU
#include "GrContextFactory.h"
+#include "GrTest.h"
struct TextBlobWrapper {
// This class assumes it 'owns' the textblob it wraps, and thus does not need to take a ref
@@ -51,13 +53,21 @@ static const int kHeight = 768;
// This test hammers the GPU textblobcache and font atlas
static void text_blob_cache_inner(skiatest::Reporter* reporter, GrContextFactory* factory,
- int maxTotalText, int maxGlyphID, int maxFamilies, bool normal) {
+ int maxTotalText, int maxGlyphID, int maxFamilies, bool normal,
+ bool stressTest) {
// setup surface
uint32_t flags = 0;
SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType);
// We don't typically actually draw with this unittest
GrContext* ctx = factory->get(GrContextFactory::kNull_GLContextType);
+
+ // configure our context for maximum stressing of cache and atlas
+ if (stressTest) {
+ GrTest::SetupAlwaysEvictAtlas(ctx);
+ ctx->setTextBlobCacheLimit_ForTesting(0);
+ }
+
SkImageInfo info = SkImageInfo::Make(kWidth, kHeight, kN32_SkColorType, kPremul_SkAlphaType);
SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTarget(ctx, SkSurface::kNo_Budgeted, info,
0, &props));
@@ -151,14 +161,18 @@ static void text_blob_cache_inner(skiatest::Reporter* reporter, GrContextFactory
}
DEF_GPUTEST(TextBlobCache, reporter, factory) {
- text_blob_cache_inner(reporter, factory, 4096, 256, 30, true);
+ text_blob_cache_inner(reporter, factory, 1024, 256, 30, true, false);
+}
+
+DEF_GPUTEST(TextBlobStressCache, reporter, factory) {
+ text_blob_cache_inner(reporter, factory, 256, 256, 10, true, true);
}
DEF_GPUTEST(TextBlobAbnormal, reporter, factory) {
-#ifdef SK_BUILD_FOR_ANDROID
- text_blob_cache_inner(reporter, factory, 256, 256, 30, false);
-#else
- text_blob_cache_inner(reporter, factory, 512, 256, 30, false);
-#endif
+ text_blob_cache_inner(reporter, factory, 256, 256, 10, false, false);
+}
+
+DEF_GPUTEST(TextBlobStressAbnormal, reporter, factory) {
+ text_blob_cache_inner(reporter, factory, 256, 256, 10, false, true);
}
#endif