Niedzielski has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/238170

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, 24 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/70/238170/1

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..9377786 100644
--- 
a/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
+++ 
b/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java
@@ -18,19 +18,7 @@
 public class PageLoadPerformanceTests extends 
ActivityInstrumentationTestCase2<PageActivity> {
     private static final int TASK_COMPLETION_TIMEOUT = (int) 
TimeUnit.SECONDS.toMillis(30);
     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: newchange
Gerrit-Change-Id: I28aa725812e895d808628df8235fa05a76c336a7
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org>

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

Reply via email to