summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Seigo Nonaka <nona@google.com> 2024-02-08 11:09:43 +0900
committer Seigo Nonaka <nona@google.com> 2024-02-08 11:09:43 +0900
commit2c70a1021a2961e9ee3cdccff024b54f581a8968 (patch)
treeb696cf6cb7d2c25e6180186adabdb3f62fbc0239
parent404ed228eb7c09b5d00030fa9a361d2383f747ca (diff)
Fix TextViewSetTextMeasurePerfTest to set proper width
The TextViewSetTextMeasurePerfTest measures text with 0 pixel width and height which is uncommon situation, so setting proper width/height for measuring realistic numbers. Bug: 323606812 Test: atest TextViewSetTextMeasurePerfTest Change-Id: If864d9b3d11861da01da5881a746959baf3f160c
-rw-r--r--apct-tests/perftests/core/src/android/text/TextViewSetTextMeasurePerfTest.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/apct-tests/perftests/core/src/android/text/TextViewSetTextMeasurePerfTest.java b/apct-tests/perftests/core/src/android/text/TextViewSetTextMeasurePerfTest.java
index 10bfa4247159..426fcab96281 100644
--- a/apct-tests/perftests/core/src/android/text/TextViewSetTextMeasurePerfTest.java
+++ b/apct-tests/perftests/core/src/android/text/TextViewSetTextMeasurePerfTest.java
@@ -20,10 +20,12 @@ import static android.view.View.MeasureSpec.UNSPECIFIED;
import android.graphics.Canvas;
import android.graphics.RecordingCanvas;
+import android.graphics.RectF;
import android.graphics.RenderNode;
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.text.NonEditableTextGenerator.TextType;
+import android.view.View;
import android.widget.TextView;
import androidx.test.InstrumentationRegistry;
@@ -79,7 +81,7 @@ public class TextViewSetTextMeasurePerfTest {
mCached = cached;
mTextPaint = new TextPaint();
mTextPaint.setTextSize(10);
- mLineWidth = Integer.MAX_VALUE;
+ mLineWidth = 2048;
}
/**
@@ -106,7 +108,9 @@ public class TextViewSetTextMeasurePerfTest {
state.resumeTiming();
textView.setText(text);
- textView.measure(AT_MOST | mLineWidth, UNSPECIFIED);
+ textView.measure(
+ View.MeasureSpec.makeMeasureSpec(mLineWidth, AT_MOST),
+ UNSPECIFIED);
}
}
@@ -129,10 +133,16 @@ public class TextViewSetTextMeasurePerfTest {
while (state.keepRunning()) {
state.pauseTiming();
- final RecordingCanvas canvas = node.start(1200, 200);
- int save = canvas.save();
textView.setTextLocale(Locale.UK);
textView.setTextLocale(Locale.US);
+ textView.measure(
+ View.MeasureSpec.makeMeasureSpec(mLineWidth, AT_MOST),
+ UNSPECIFIED);
+ RectF bounds = textView.getLayout().computeDrawingBoundingBox();
+ final RecordingCanvas canvas = node.start(
+ (int) Math.ceil(bounds.width()),
+ (int) Math.ceil(bounds.height()));
+ int save = canvas.save();
if (!mCached) Canvas.freeTextLayoutCaches();
state.resumeTiming();