jenkins-bot has submitted this change and it was merged.
Change subject: Fix NPE in PageLoadPerformanceTests
..
Fix NPE in PageLoadPerformanceTests
Minor refactoring of PageLoadPerformanceTests to replace member
variables with locals. CI reported a rare test failure[0] I hope the new
nonnullness guarantees fix.
[0]
https://integration.wikimedia.org/ci/job/apps-android-wikipedia-test/20/artifact/logcat.txt/*view*/
Change-Id: I28aa725812e895d808628df8235fa05a76c336a7
---
M app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
1 file changed, 25 insertions(+), 23 deletions(-)
Approvals:
Dbrant: Looks good to me, approved
jenkins-bot: Verified
diff --git
a/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
b/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
index 8c58de0..d282a92 100644
---
a/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
+++
b/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
@@ -16,21 +16,9 @@
*/
@LargeTest
public class PageLoadPerformanceTests extends
ActivityInstrumentationTestCase2 {
-private static final int TASK_COMPLETION_TIMEOUT = (int)
TimeUnit.SECONDS.toMillis(30);
+private static final int TASK_COMPLETION_TIMEOUT = (int)
TimeUnit.SECONDS.toMillis(60);
private static final int NUM_RUNS = 1; //50;
-private PageActivity activity;
-private CountDownLatch completionLatch;
-private PageFragment fragment;
-private String title;
-private MeasurementController measurement = new MeasurementController();
-
-private PageLoadCallbacks callback = new PageLoadCallbacks() {
-@Override
-public void onLoadComplete() {
-measurement.stop(title);
-completionLatch.countDown();
-}
-};
+private final MeasurementController measurement = new
MeasurementController();
public PageLoadPerformanceTests() {
super(PageActivity.class);
@@ -39,7 +27,9 @@
@Override
protected void setUp() throws Exception {
super.setUp();
-activity = getActivity();
+
+// Launch Activity.
+getActivity();
}
public void testLoadPages() throws Throwable {
@@ -51,24 +41,36 @@
}
private void loadPageMultipleTimes(String title) throws Throwable {
-this.title = title;
for (int i = 0; i < NUM_RUNS; i++) {
-loadPageUi();
+loadPageUi(title);
}
}
-private void loadPageUi() throws Throwable {
-completionLatch = new CountDownLatch(1);
+private void loadPageUi(final String title) throws Throwable {
+final CountDownLatch latch = new CountDownLatch(1);
getInstrumentation().runOnMainSync(new Runnable() {
@Override
public void run() {
-fragment = (PageFragment) activity.getTopFragment();
-fragment.setPageLoadCallbacks(callback);
+getFragment().setPageLoadCallbacks(newCallbacks(title, latch));
measurement.start(title);
-PageLoadTests.loadPage(fragment, title);
+PageLoadTests.loadPage(getFragment(), title);
}
});
-assertTrue(completionLatch.await(TASK_COMPLETION_TIMEOUT,
TimeUnit.MILLISECONDS));
+assertTrue(latch.await(TASK_COMPLETION_TIMEOUT,
TimeUnit.MILLISECONDS));
+}
+
+private PageLoadCallbacks newCallbacks(final String title, final
CountDownLatch latch) {
+return new PageLoadCallbacks() {
+@Override
+public void onLoadComplete() {
+measurement.stop(title);
+latch.countDown();
+}
+};
+}
+
+private PageFragment getFragment() {
+return (PageFragment) getActivity().getTopFragment();
}
}
--
To view, visit https://gerrit.wikimedia.org/r/238170
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I28aa725812e895d808628df8235fa05a76c336a7
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski
Gerrit-Reviewer: BearND
Gerrit-Reviewer: Brion VIBBER
Gerrit-Reviewer: Dbrant
Gerrit-Reviewer: Mholloway
Gerrit-Reviewer: Niedzielski
Gerrit-Reviewer: jenkins-bot <>
___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits