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<PageActivity> {
-    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 <sniedziel...@wikimedia.org>
Gerrit-Reviewer: BearND <bsitzm...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to