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