Niedzielski has uploaded a new change for review. https://gerrit.wikimedia.org/r/238184
Change subject: Share code between instrumentation and unit tests ...................................................................... Share code between instrumentation and unit tests * Add new shared sources directory, testlib. Both JVM JUnit tests and Android instrumentation tests can import from testlib but no non-test code can. Update Checkstyle configuration. * Move TestConstants and TestLatch to testlib. Update Java imports. * Bump test timeout duration out to 60s for slow Jenkins. * Use TestLatch in PageLoadPerformanceTests. Change-Id: I90ba29d9b4236174de9e0b32f0ecb8ad31e66c02 --- M app/build.gradle M app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java M app/src/test/java/org/wikipedia/test/TestWebServer.java M app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java R app/src/testlib/java/org/wikipedia/testlib/TestConstants.java R app/src/testlib/java/org/wikipedia/testlib/TestLatch.java M config/quality.gradle 7 files changed, 20 insertions(+), 11 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/84/238184/1 diff --git a/app/build.gradle b/app/build.gradle index 59c419c..3780618 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,6 +61,15 @@ testApplicationId 'org.wikipedia.test' } + sourceSets { + test { + java.srcDirs += 'src/testlib/java' + } + androidTest { + java.srcDirs += 'src/testlib/java' + } + } + signingConfigs { prod { setSigningConfigKey(prod, PROD_PROPS) 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 d282a92..203f5c4 100644 --- a/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java +++ b/app/src/androidTest/java/org/wikipedia/test/perf/PageLoadPerformanceTests.java @@ -4,19 +4,16 @@ import org.wikipedia.page.PageFragment; import org.wikipedia.page.PageLoadCallbacks; import org.wikipedia.page.PageLoadTests; +import org.wikipedia.testlib.TestLatch; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.LargeTest; - -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; /** * Test performance of page loading. Update the NUM_RUNS for better statistical significance. */ @LargeTest public class PageLoadPerformanceTests extends ActivityInstrumentationTestCase2<PageActivity> { - private static final int TASK_COMPLETION_TIMEOUT = (int) TimeUnit.SECONDS.toMillis(60); private static final int NUM_RUNS = 1; //50; private final MeasurementController measurement = new MeasurementController(); @@ -47,7 +44,7 @@ } private void loadPageUi(final String title) throws Throwable { - final CountDownLatch latch = new CountDownLatch(1); + final TestLatch latch = new TestLatch(); getInstrumentation().runOnMainSync(new Runnable() { @Override public void run() { @@ -57,10 +54,10 @@ PageLoadTests.loadPage(getFragment(), title); } }); - assertTrue(latch.await(TASK_COMPLETION_TIMEOUT, TimeUnit.MILLISECONDS)); + latch.await(); } - private PageLoadCallbacks newCallbacks(final String title, final CountDownLatch latch) { + private PageLoadCallbacks newCallbacks(final String title, final TestLatch latch) { return new PageLoadCallbacks() { @Override public void onLoadComplete() { diff --git a/app/src/test/java/org/wikipedia/test/TestWebServer.java b/app/src/test/java/org/wikipedia/test/TestWebServer.java index 575b713..38c38b7 100644 --- a/app/src/test/java/org/wikipedia/test/TestWebServer.java +++ b/app/src/test/java/org/wikipedia/test/TestWebServer.java @@ -3,6 +3,8 @@ import com.squareup.okhttp.mockwebserver.MockResponse; import com.squareup.okhttp.mockwebserver.MockWebServer; +import org.wikipedia.testlib.TestConstants; + import java.io.IOException; import java.net.URL; diff --git a/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java b/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java index 3af1325..655f81c 100644 --- a/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java +++ b/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java @@ -11,9 +11,9 @@ import org.wikipedia.test.ImmediateExecutor; import org.wikipedia.test.TestApi; import org.wikipedia.test.TestFileUtil; -import org.wikipedia.test.TestLatch; import org.wikipedia.test.TestRunner; import org.wikipedia.test.TestWebServer; +import org.wikipedia.testlib.TestLatch; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; diff --git a/app/src/test/java/org/wikipedia/test/TestConstants.java b/app/src/testlib/java/org/wikipedia/testlib/TestConstants.java similarity index 67% rename from app/src/test/java/org/wikipedia/test/TestConstants.java rename to app/src/testlib/java/org/wikipedia/testlib/TestConstants.java index 349bafb..7179736 100644 --- a/app/src/test/java/org/wikipedia/test/TestConstants.java +++ b/app/src/testlib/java/org/wikipedia/testlib/TestConstants.java @@ -1,9 +1,9 @@ -package org.wikipedia.test; +package org.wikipedia.testlib; import java.util.concurrent.TimeUnit; public final class TestConstants { - public static final int TIMEOUT_DURATION = 10; + public static final int TIMEOUT_DURATION = 60; public static final TimeUnit TIMEOUT_UNIT = TimeUnit.SECONDS; private TestConstants() { } diff --git a/app/src/test/java/org/wikipedia/test/TestLatch.java b/app/src/testlib/java/org/wikipedia/testlib/TestLatch.java similarity index 94% rename from app/src/test/java/org/wikipedia/test/TestLatch.java rename to app/src/testlib/java/org/wikipedia/testlib/TestLatch.java index 8248d73..16fb183 100644 --- a/app/src/test/java/org/wikipedia/test/TestLatch.java +++ b/app/src/testlib/java/org/wikipedia/testlib/TestLatch.java @@ -1,4 +1,4 @@ -package org.wikipedia.test; +package org.wikipedia.testlib; import java.util.concurrent.CountDownLatch; diff --git a/config/quality.gradle b/config/quality.gradle index 1398fd1..17d33e1 100644 --- a/config/quality.gradle +++ b/config/quality.gradle @@ -12,6 +12,7 @@ source 'src/main/java' source 'src/androidTest/java' source 'src/test/java' + source 'src/testlib/java' include '**/*.java' exclude '**/gen/**' -- To view, visit https://gerrit.wikimedia.org/r/238184 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I90ba29d9b4236174de9e0b32f0ecb8ad31e66c02 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