Commit 44b83b9b authored by Nate Fischer's avatar Nate Fischer Committed by Commit Bot

AW: switch to AwJUnit4ClassRunner

No change to production logic.

This switches every use of BaseJUnit4ClassRunner to AwJUnit4ClassRunner
under android_webview/javatests/. This also adds
@SkipCommandLineParameterization for each change, because the
BaseJUnit4ClassRunner did not run tests in both single & multiprocess
mode, only in single process mode (so we keep the same behavior).

This also adds a presubmit to prevent regressions.

Proposed on: http://shortn/_OS7nGlyaOn
Test: manually test presubmit prevents me from adding a test suite with
      BaseJUnit4ClassRunner
Test: run_webview_instrumentation_test_apk (everything passes, and the
      same number of tests are run as before this CL)

Change-Id: I36c0e549b1987cd1241407d989a2135f4d932a53
Reviewed-on: https://chromium-review.googlesource.com/1184234Reviewed-by: default avatarBo <boliu@chromium.org>
Commit-Queue: Nate Fischer <ntfschr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585253}
parent 43f932e3
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Presubmit tests for android_webview/javatests/
Runs various style checks before upload.
"""
def CheckChangeOnUpload(input_api, output_api):
results = []
results.extend(_CheckAwJUnitTestRunner(input_api, output_api))
return results
def _CheckAwJUnitTestRunner(input_api, output_api):
"""Checks that new tests use the AwJUnit4ClassRunner instead of some other
test runner. This is because WebView has special logic in the
AwJUnit4ClassRunner.
"""
run_with_pattern = input_api.re.compile(
r'^@RunWith\((.*)\)$')
correct_runner = 'AwJUnit4ClassRunner.class'
errors = []
def _FilterFile(affected_file):
return input_api.FilterSourceFile(
affected_file,
black_list=input_api.DEFAULT_BLACK_LIST,
white_list=[r'.*\.java$'])
for f in input_api.AffectedSourceFiles(_FilterFile):
for line_num, line in f.ChangedContents():
match = run_with_pattern.search(line)
if match and match.group(1) != correct_runner:
errors.append("%s:%d" % (f.LocalPath(), line_num))
results = []
if errors:
results.append(output_api.PresubmitPromptWarning("""
android_webview/javatests/ should use the AwJUnit4ClassRunner test runner, not
any other test runner (e.g., BaseJUnit4ClassRunner).
""",
errors))
return results
...@@ -13,13 +13,14 @@ import org.junit.Test; ...@@ -13,13 +13,14 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.android_webview.AwLayoutSizer; import org.chromium.android_webview.AwLayoutSizer;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
/** /**
* Unittests for the AwLayoutSizer class. * Unittests for the AwLayoutSizer class.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class AwLayoutSizerTest { public class AwLayoutSizerTest {
static class LayoutSizerDelegate implements AwLayoutSizer.Delegate { static class LayoutSizerDelegate implements AwLayoutSizer.Delegate {
public int requestLayoutCallCount; public int requestLayoutCallCount;
......
...@@ -12,13 +12,14 @@ import org.junit.Test; ...@@ -12,13 +12,14 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.android_webview.AwScrollOffsetManager; import org.chromium.android_webview.AwScrollOffsetManager;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
/** /**
* Integration tests for ScrollOffsetManager. * Integration tests for ScrollOffsetManager.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class AwScrollOffsetManagerTest { public class AwScrollOffsetManagerTest {
private static class TestScrollOffsetManagerDelegate implements AwScrollOffsetManager.Delegate { private static class TestScrollOffsetManagerDelegate implements AwScrollOffsetManager.Delegate {
private int mOverScrollDeltaX; private int mOverScrollDeltaX;
......
...@@ -24,7 +24,6 @@ import org.chromium.android_webview.services.AwVariationsSeedFetcher; ...@@ -24,7 +24,6 @@ import org.chromium.android_webview.services.AwVariationsSeedFetcher;
import org.chromium.android_webview.services.ServiceInit; import org.chromium.android_webview.services.ServiceInit;
import org.chromium.android_webview.test.util.VariationsTestUtils; import org.chromium.android_webview.test.util.VariationsTestUtils;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import org.chromium.components.background_task_scheduler.TaskIds; import org.chromium.components.background_task_scheduler.TaskIds;
...@@ -42,7 +41,7 @@ import java.util.concurrent.TimeoutException; ...@@ -42,7 +41,7 @@ import java.util.concurrent.TimeoutException;
/** /**
* Test AwVariationsSeedFetcher. * Test AwVariationsSeedFetcher.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization @SkipCommandLineParameterization
public class AwVariationsSeedFetcherTest { public class AwVariationsSeedFetcherTest {
private static final int JOB_ID = TaskIds.WEBVIEW_VARIATIONS_SEED_FETCH_JOB_ID; private static final int JOB_ID = TaskIds.WEBVIEW_VARIATIONS_SEED_FETCH_JOB_ID;
......
...@@ -12,15 +12,16 @@ import org.junit.Test; ...@@ -12,15 +12,16 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.android_webview.CleanupReference; import org.chromium.android_webview.CleanupReference;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import org.chromium.content.browser.test.util.Criteria; import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.CriteriaHelper;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
/** Test suite for {@link CleanupReference}. */ /** Test suite for {@link CleanupReference}. */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class CleanupReferenceTest { public class CleanupReferenceTest {
private static AtomicInteger sObjectCount = new AtomicInteger(); private static AtomicInteger sObjectCount = new AtomicInteger();
......
...@@ -14,13 +14,14 @@ import org.junit.Test; ...@@ -14,13 +14,14 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.android_webview.HttpAuthDatabase; import org.chromium.android_webview.HttpAuthDatabase;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
/** /**
* Test suite for HttpAuthDatabase. * Test suite for HttpAuthDatabase.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class HttpAuthDatabaseTest { public class HttpAuthDatabaseTest {
private static final String TEST_DATABASE = "http_auth_for_HttpAuthDatabaseTest.db"; private static final String TEST_DATABASE = "http_auth_for_HttpAuthDatabaseTest.db";
......
...@@ -17,7 +17,6 @@ import org.chromium.android_webview.VariationsUtils; ...@@ -17,7 +17,6 @@ import org.chromium.android_webview.VariationsUtils;
import org.chromium.android_webview.services.ServiceInit; import org.chromium.android_webview.services.ServiceInit;
import org.chromium.android_webview.services.VariationsSeedHolder; import org.chromium.android_webview.services.VariationsSeedHolder;
import org.chromium.android_webview.test.util.VariationsTestUtils; import org.chromium.android_webview.test.util.VariationsTestUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo; import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo;
...@@ -34,7 +33,7 @@ import java.util.concurrent.TimeoutException; ...@@ -34,7 +33,7 @@ import java.util.concurrent.TimeoutException;
/** /**
* Test VariationsSeedHolder. * Test VariationsSeedHolder.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization @SkipCommandLineParameterization
public class VariationsSeedHolderTest { public class VariationsSeedHolderTest {
private class TestHolder extends VariationsSeedHolder { private class TestHolder extends VariationsSeedHolder {
......
...@@ -23,7 +23,6 @@ import org.chromium.android_webview.test.services.MockVariationsSeedServer; ...@@ -23,7 +23,6 @@ import org.chromium.android_webview.test.services.MockVariationsSeedServer;
import org.chromium.android_webview.test.util.VariationsTestUtils; import org.chromium.android_webview.test.util.VariationsTestUtils;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
...@@ -35,7 +34,7 @@ import java.util.concurrent.TimeoutException; ...@@ -35,7 +34,7 @@ import java.util.concurrent.TimeoutException;
/** /**
* Test VariationsSeedLoader. * Test VariationsSeedLoader.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization @SkipCommandLineParameterization
public class VariationsSeedLoaderTest { public class VariationsSeedLoaderTest {
private static final long TIMEOUT_MILLIS = 10000; private static final long TIMEOUT_MILLIS = 10000;
......
...@@ -15,7 +15,6 @@ import org.junit.runner.RunWith; ...@@ -15,7 +15,6 @@ import org.junit.runner.RunWith;
import org.chromium.android_webview.VariationsUtils; import org.chromium.android_webview.VariationsUtils;
import org.chromium.android_webview.proto.AwVariationsSeedOuterClass.AwVariationsSeed; import org.chromium.android_webview.proto.AwVariationsSeedOuterClass.AwVariationsSeed;
import org.chromium.android_webview.test.util.VariationsTestUtils; import org.chromium.android_webview.test.util.VariationsTestUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.parameter.SkipCommandLineParameterization; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo; import org.chromium.components.variations.firstrun.VariationsSeedFetcher.SeedInfo;
...@@ -27,7 +26,7 @@ import java.util.Arrays; ...@@ -27,7 +26,7 @@ import java.util.Arrays;
/** /**
* Test reading and writing variations seeds. * Test reading and writing variations seeds.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization @SkipCommandLineParameterization
public class VariationsUtilsTest { public class VariationsUtilsTest {
@Test @Test
......
...@@ -14,8 +14,9 @@ import org.junit.Test; ...@@ -14,8 +14,9 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.android_webview.services.CrashReceiverService; import org.chromium.android_webview.services.CrashReceiverService;
import org.chromium.android_webview.test.AwJUnit4ClassRunner;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
...@@ -23,7 +24,8 @@ import java.io.IOException; ...@@ -23,7 +24,8 @@ import java.io.IOException;
/** /**
* Instrumentation tests for CrashReceiverService. * Instrumentation tests for CrashReceiverService.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class CrashReceiverServiceTest { public class CrashReceiverServiceTest {
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
......
...@@ -15,10 +15,11 @@ import org.junit.runner.RunWith; ...@@ -15,10 +15,11 @@ import org.junit.runner.RunWith;
import org.chromium.android_webview.PlatformServiceBridge; import org.chromium.android_webview.PlatformServiceBridge;
import org.chromium.android_webview.services.AwMinidumpUploaderDelegate; import org.chromium.android_webview.services.AwMinidumpUploaderDelegate;
import org.chromium.android_webview.services.CrashReceiverService; import org.chromium.android_webview.services.CrashReceiverService;
import org.chromium.android_webview.test.AwJUnit4ClassRunner;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.FileUtils; import org.chromium.base.FileUtils;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import org.chromium.components.minidump_uploader.CrashFileManager; import org.chromium.components.minidump_uploader.CrashFileManager;
import org.chromium.components.minidump_uploader.CrashTestRule; import org.chromium.components.minidump_uploader.CrashTestRule;
import org.chromium.components.minidump_uploader.CrashTestRule.MockCrashReportingPermissionManager; import org.chromium.components.minidump_uploader.CrashTestRule.MockCrashReportingPermissionManager;
...@@ -38,7 +39,8 @@ import java.io.IOException; ...@@ -38,7 +39,8 @@ import java.io.IOException;
* Instrumentation tests for WebView's implementation of MinidumpUploaderDelegate, and the * Instrumentation tests for WebView's implementation of MinidumpUploaderDelegate, and the
* interoperability of WebView's minidump-copying and minidump-uploading logic. * interoperability of WebView's minidump-copying and minidump-uploading logic.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class MinidumpUploaderTest { public class MinidumpUploaderTest {
@Rule @Rule
public CrashTestRule mTestRule = new CrashTestRule() { public CrashTestRule mTestRule = new CrashTestRule() {
......
...@@ -23,8 +23,9 @@ import org.junit.runner.RunWith; ...@@ -23,8 +23,9 @@ import org.junit.runner.RunWith;
import org.chromium.android_webview.services.IVariationsSeedServer; import org.chromium.android_webview.services.IVariationsSeedServer;
import org.chromium.android_webview.services.VariationsSeedServer; import org.chromium.android_webview.services.VariationsSeedServer;
import org.chromium.android_webview.test.AwJUnit4ClassRunner;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.parameter.SkipCommandLineParameterization;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
...@@ -33,7 +34,8 @@ import java.io.IOException; ...@@ -33,7 +34,8 @@ import java.io.IOException;
/** /**
* Test VariationsSeedServer. * Test VariationsSeedServer.
*/ */
@RunWith(BaseJUnit4ClassRunner.class) @RunWith(AwJUnit4ClassRunner.class)
@SkipCommandLineParameterization
public class VariationsSeedServerTest { public class VariationsSeedServerTest {
private static final long BINDER_TIMEOUT_MILLIS = 10000; private static final long BINDER_TIMEOUT_MILLIS = 10000;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment