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

Reply via email to