Switch to support test runner which works well with atest

Test: atest ContactsProviderTests ContactsProviderTests2
Bug: 111210683
Bug: 111999945
Change-Id: Ic55f37a85d15babd82307604b2d300506aa2c53f
diff --git a/README-tests.md b/README-tests.md
new file mode 100644
index 0000000..8351c6c
--- /dev/null
+++ b/README-tests.md
@@ -0,0 +1,7 @@
+# Running tests
+
+Use the following command to run the unit tests.
+
+```
+atest ContactsProviderTests ContactsProviderTests2
+```
\ No newline at end of file
diff --git a/run-all-tests.sh b/run-all-tests.sh
deleted file mode 100755
index 84a2ce3..0000000
--- a/run-all-tests.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2016 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-set -e
-
-cd $ANDROID_BUILD_TOP
-
-. build/envsetup.sh
-
-mmm -j32 packages/providers/ContactsProvider
-adb install -t -r -g $ANDROID_PRODUCT_OUT/system/priv-app/ContactsProvider/ContactsProvider.apk
-adb install -t -r -g $ANDROID_PRODUCT_OUT/data/app/ContactsProviderTests/ContactsProviderTests.apk
-adb install -t -r -g $ANDROID_PRODUCT_OUT/data/app/ContactsProviderTests2/ContactsProviderTests2.apk
-
-runtest() {
-    log=/tmp/$$.log
-    adb shell am instrument -w "${@}" |& tee $log
-    if grep -q FAILURES $log || ! grep -P -q 'OK \([1-9]' $log ; then
-        return 1
-    else
-        return 0
-    fi
-
-}
-
-runtest com.android.providers.contacts.tests
-runtest com.android.providers.contacts.tests2
\ No newline at end of file
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 15a90fa..9d20e76 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -36,14 +36,8 @@
         </service>
     </application>
 
-    <!--
-    The test declared in this instrumentation will be run along with tests declared by
-    all other applications via the command: "adb shell itr".
-    The "itr" command will find all tests declared by all applications. If you want to run just these
-    tests on their own then use the command:
-    "adb shell am instrument -w com.android.providers.contacts.tests/android.test.InstrumentationTestRunner"
-    -->
-    <instrumentation android:name="android.test.InstrumentationTestRunner"
+    <instrumentation
+        android:name="android.support.test.runner.AndroidJUnitRunner"
         android:targetPackage="com.android.providers.contacts"
         android:label="Contacts Provider Tests">
     </instrumentation>
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index 3c4a3ab..cdf0c7d 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -20,9 +20,8 @@
 
     <option name="test-suite-tag" value="apct" />
     <option name="test-tag" value="ContactsProviderTests" />
-    <test class="com.android.tradefed.testtype.InstrumentationTest" >
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="com.android.providers.contacts.tests" />
-        <option name="runner" value="android.test.InstrumentationTestRunner" />
         <option name="hidden-api-checks" value="false"/>
     </test>
 </configuration>
diff --git a/tests/src/com/android/providers/contacts/BaseDatabaseHelperUpgradeTest.java b/tests/src/com/android/providers/contacts/BaseDatabaseHelperUpgradeTest.java
index 0eb12ad..8498913 100644
--- a/tests/src/com/android/providers/contacts/BaseDatabaseHelperUpgradeTest.java
+++ b/tests/src/com/android/providers/contacts/BaseDatabaseHelperUpgradeTest.java
@@ -15,9 +15,10 @@
  */
 package com.android.providers.contacts;
 
+import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
-import android.test.AndroidTestCase;
+import android.support.test.InstrumentationRegistry;
 
 import junit.framework.AssertionFailedError;
 
@@ -29,7 +30,7 @@
  * Run the test like this: <code> runtest -c com.android.providers.contacts.BaseDatabaseHelperUpgradeTest
  * contactsprov </code>
  */
-public abstract class BaseDatabaseHelperUpgradeTest extends AndroidTestCase {
+public abstract class BaseDatabaseHelperUpgradeTest extends FixedAndroidTestCase {
 
     protected static final String INTEGER = "INTEGER";
     protected static final String TEXT = "TEXT";
diff --git a/tests/src/com/android/providers/contacts/CallLogInsertionHelperTest.java b/tests/src/com/android/providers/contacts/CallLogInsertionHelperTest.java
index 7bb88a8..6122ff0 100644
--- a/tests/src/com/android/providers/contacts/CallLogInsertionHelperTest.java
+++ b/tests/src/com/android/providers/contacts/CallLogInsertionHelperTest.java
@@ -19,12 +19,10 @@
 import android.content.ContentValues;
 import android.provider.CallLog.Calls;
 
-import android.test.AndroidTestCase;
-
 /**
  * Test cases for {@link com.android.providers.contacts.DefaultCallLogInsertionHelper}.
  */
-public class CallLogInsertionHelperTest extends AndroidTestCase {
+public class CallLogInsertionHelperTest extends FixedAndroidTestCase {
 
     /**
      * The default insertion helper under test.
diff --git a/tests/src/com/android/providers/contacts/CallLogMigrationTest.java b/tests/src/com/android/providers/contacts/CallLogMigrationTest.java
index 3cbecb8..767b62f 100644
--- a/tests/src/com/android/providers/contacts/CallLogMigrationTest.java
+++ b/tests/src/com/android/providers/contacts/CallLogMigrationTest.java
@@ -18,7 +18,6 @@
 import android.content.Context;
 import android.database.DatabaseUtils;
 import android.database.sqlite.SQLiteDatabase;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.LargeTest;
 
 import java.io.File;
@@ -28,7 +27,7 @@
 import java.io.OutputStream;
 
 @LargeTest
-public class CallLogMigrationTest extends AndroidTestCase {
+public class CallLogMigrationTest extends FixedAndroidTestCase {
 
     private void writeAssetFileToDisk(String assetName, File diskPath) throws IOException {
         final Context context = getTestContext();
diff --git a/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java b/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java
index 8e71bef..a19a2f2 100644
--- a/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java
+++ b/tests/src/com/android/providers/contacts/ContactLocaleUtilsTest.java
@@ -17,11 +17,8 @@
 package com.android.providers.contacts;
 
 import android.provider.ContactsContract.FullNameStyle;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
 
-import java.text.Collator;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -30,7 +27,7 @@
 import java.util.Locale;
 
 @SmallTest
-public class ContactLocaleUtilsTest extends AndroidTestCase {
+public class ContactLocaleUtilsTest extends FixedAndroidTestCase {
     private static final String TAG = "ContactLocaleUtilsTest";
 
     private static final String PHONE_NUMBER_1 = "+1 (650) 555-1212";
diff --git a/tests/src/com/android/providers/contacts/ContactsIcuTest.java b/tests/src/com/android/providers/contacts/ContactsIcuTest.java
index 16583ae..7d3bdcf 100644
--- a/tests/src/com/android/providers/contacts/ContactsIcuTest.java
+++ b/tests/src/com/android/providers/contacts/ContactsIcuTest.java
@@ -17,14 +17,13 @@
 
 import android.icu.text.AlphabeticIndex;
 import android.icu.text.AlphabeticIndex.ImmutableIndex;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.Suppress;
 import android.util.Log;
 
 import java.util.Arrays;
 import java.util.Locale;
 
-public class ContactsIcuTest extends AndroidTestCase {
+public class ContactsIcuTest extends FixedAndroidTestCase {
     private static final String TAG = "ContactsIcuTest";
 
     private static ImmutableIndex buildIndex(String... localeTags) {
diff --git a/tests/src/com/android/providers/contacts/ContactsTaskSchedulerTest.java b/tests/src/com/android/providers/contacts/ContactsTaskSchedulerTest.java
index df7196d..fe53c28 100644
--- a/tests/src/com/android/providers/contacts/ContactsTaskSchedulerTest.java
+++ b/tests/src/com/android/providers/contacts/ContactsTaskSchedulerTest.java
@@ -15,7 +15,6 @@
  */
 package com.android.providers.contacts;
 
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.LargeTest;
 
 import java.util.ArrayList;
@@ -25,7 +24,7 @@
 import java.util.concurrent.TimeUnit;
 
 @LargeTest
-public class ContactsTaskSchedulerTest extends AndroidTestCase {
+public class ContactsTaskSchedulerTest extends FixedAndroidTestCase {
     private static final int SHUTDOWN_SECONDS = 3;
 
     private static class MyContactsTaskScheduler extends ContactsTaskScheduler {
diff --git a/tests/src/com/android/providers/contacts/EnterpriseContactsCursorWrapperTest.java b/tests/src/com/android/providers/contacts/EnterpriseContactsCursorWrapperTest.java
index 66cebfc..7ae7b57 100644
--- a/tests/src/com/android/providers/contacts/EnterpriseContactsCursorWrapperTest.java
+++ b/tests/src/com/android/providers/contacts/EnterpriseContactsCursorWrapperTest.java
@@ -19,7 +19,6 @@
 import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.provider.ContactsContract.PhoneLookup;
-import android.test.AndroidTestCase;
 import android.test.MoreAsserts;
 import android.test.suitebuilder.annotation.SmallTest;
 
@@ -27,7 +26,7 @@
 
 
 @SmallTest
-public class EnterpriseContactsCursorWrapperTest extends AndroidTestCase {
+public class EnterpriseContactsCursorWrapperTest extends FixedAndroidTestCase {
 
     public void testWrappedResults() {
         final String[] projection = new String[] {
diff --git a/tests/src/com/android/providers/contacts/FastScrollingIndexCacheTest.java b/tests/src/com/android/providers/contacts/FastScrollingIndexCacheTest.java
index 4580ce1..08625cd 100644
--- a/tests/src/com/android/providers/contacts/FastScrollingIndexCacheTest.java
+++ b/tests/src/com/android/providers/contacts/FastScrollingIndexCacheTest.java
@@ -20,14 +20,13 @@
 import android.os.Bundle;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.RawContacts;
-import android.test.AndroidTestCase;
 import android.test.MoreAsserts;
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.providers.contacts.util.MockSharedPreferences;
 
 @SmallTest
-public class FastScrollingIndexCacheTest extends AndroidTestCase {
+public class FastScrollingIndexCacheTest extends FixedAndroidTestCase {
     private MockSharedPreferences mPrefs;
     private FastScrollingIndexCache mCache;
 
diff --git a/tests/src/com/android/providers/contacts/FixedAndroidTestCase.java b/tests/src/com/android/providers/contacts/FixedAndroidTestCase.java
new file mode 100644
index 0000000..5254c5d
--- /dev/null
+++ b/tests/src/com/android/providers/contacts/FixedAndroidTestCase.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.providers.contacts;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.test.AndroidTestCase;
+
+/**
+ * {@link FixedAndroidTestCase#getTestContext} isn't set when executed on the support test runner. This
+ * class works around that.
+ */
+public class FixedAndroidTestCase extends AndroidTestCase {
+    @Override
+    public Context getTestContext() {
+        return InstrumentationRegistry.getContext();
+    }
+}
diff --git a/tests/src/com/android/providers/contacts/MetadataEntryParserTest.java b/tests/src/com/android/providers/contacts/MetadataEntryParserTest.java
index be4df57..fe6ed13 100644
--- a/tests/src/com/android/providers/contacts/MetadataEntryParserTest.java
+++ b/tests/src/com/android/providers/contacts/MetadataEntryParserTest.java
@@ -17,7 +17,6 @@
 package com.android.providers.contacts;
 
 import android.content.Context;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 import com.android.providers.contacts.MetadataEntryParser.AggregationData;
 import com.android.providers.contacts.MetadataEntryParser.FieldData;
@@ -41,7 +40,7 @@
  * </code>
  */
 @SmallTest
-public class MetadataEntryParserTest extends AndroidTestCase {
+public class MetadataEntryParserTest extends FixedAndroidTestCase {
 
     public void testErrorForEmptyInput() {
         try {
diff --git a/tests/src/com/android/providers/contacts/PhoneLookupWithStarPrefixTest.java b/tests/src/com/android/providers/contacts/PhoneLookupWithStarPrefixTest.java
index cd86a42..d595580 100644
--- a/tests/src/com/android/providers/contacts/PhoneLookupWithStarPrefixTest.java
+++ b/tests/src/com/android/providers/contacts/PhoneLookupWithStarPrefixTest.java
@@ -16,12 +16,11 @@
 
 package com.android.providers.contacts;
 
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.test.suitebuilder.annotation.SmallTest;
 
 @LargeTest
-public class PhoneLookupWithStarPrefixTest extends AndroidTestCase {
+public class PhoneLookupWithStarPrefixTest extends FixedAndroidTestCase {
 
     @SmallTest
     public void testNormalizeNumberWithStar() {
diff --git a/tests/src/com/android/providers/contacts/PhotoLoadingTestCase.java b/tests/src/com/android/providers/contacts/PhotoLoadingTestCase.java
index 4b159a8..41fe1b0 100644
--- a/tests/src/com/android/providers/contacts/PhotoLoadingTestCase.java
+++ b/tests/src/com/android/providers/contacts/PhotoLoadingTestCase.java
@@ -16,8 +16,9 @@
 
 package com.android.providers.contacts;
 
+import android.content.Context;
 import android.content.res.Resources;
-import android.test.AndroidTestCase;
+import android.support.test.InstrumentationRegistry;
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.google.android.collect.Maps;
@@ -31,7 +32,7 @@
  * Adds support for loading photo files easily from test resources.
  */
 @SmallTest
-public class PhotoLoadingTestCase extends AndroidTestCase {
+public class PhotoLoadingTestCase extends FixedAndroidTestCase {
 
     private Map<Integer, PhotoEntry> photoResourceCache = Maps.newHashMap();
     protected static enum PhotoSize {
diff --git a/tests/src/com/android/providers/contacts/PhotoPriorityResolverTest.java b/tests/src/com/android/providers/contacts/PhotoPriorityResolverTest.java
index b105595..a2dd81d 100644
--- a/tests/src/com/android/providers/contacts/PhotoPriorityResolverTest.java
+++ b/tests/src/com/android/providers/contacts/PhotoPriorityResolverTest.java
@@ -16,7 +16,6 @@
 
 package com.android.providers.contacts;
 
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.MediumTest;
 
 /**
@@ -29,7 +28,7 @@
  * </code>
  */
 @MediumTest
-public class PhotoPriorityResolverTest extends AndroidTestCase {
+public class PhotoPriorityResolverTest extends FixedAndroidTestCase {
 
     public void testLoadPicturePriorityFromXml() {
         PhotoPriorityResolver resolver = new PhotoPriorityResolver(getContext());
diff --git a/tests/src/com/android/providers/contacts/PhotoProcessorTest.java b/tests/src/com/android/providers/contacts/PhotoProcessorTest.java
index 4b59be9..ab7b7fc 100644
--- a/tests/src/com/android/providers/contacts/PhotoProcessorTest.java
+++ b/tests/src/com/android/providers/contacts/PhotoProcessorTest.java
@@ -20,7 +20,6 @@
 import android.graphics.Color;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.providers.contacts.tests.R;
@@ -34,7 +33,7 @@
  * Most of tests are covered by {@link PhotoStoreTest}.
  */
 @SmallTest
-public class PhotoProcessorTest extends AndroidTestCase {
+public class PhotoProcessorTest extends FixedAndroidTestCase {
 
     public void testTransparency() throws IOException {
         final Drawable source = getTestContext().getResources().getDrawable(
diff --git a/tests/src/com/android/providers/contacts/VoicemailProviderTest.java b/tests/src/com/android/providers/contacts/VoicemailProviderTest.java
index d20b9b3..155ed58 100644
--- a/tests/src/com/android/providers/contacts/VoicemailProviderTest.java
+++ b/tests/src/com/android/providers/contacts/VoicemailProviderTest.java
@@ -45,6 +45,8 @@
 import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Unit tests for {@link VoicemailContentProvider}.
@@ -749,18 +751,18 @@
             Status.NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING);
         values.put(Status.SOURCE_TYPE,
             "vvm_type_test2");
-        Boolean[] observerTriggered = new Boolean[]{false};
+        final CountDownLatch latch = new CountDownLatch(1);
         mResolver.registerContentObserver(Status.CONTENT_URI, true,
-            new ContentObserver(new Handler()) {
+            new ContentObserver(null) {
                 @Override
                 public void onChange(boolean selfChange, Uri uri) {
-                    observerTriggered[0] = true;
+                    latch.countDown();
                 }
             });
 
         mResolver.update(uri, values, null, null);
 
-        assertTrue(observerTriggered[0]);
+        assertTrue("Observer didn't get notified", latch.await(5, TimeUnit.SECONDS));
     }
 
     public void testStatusUpsert() throws Exception {
diff --git a/tests/src/com/android/providers/contacts/aggregation/util/ContactMatcherTest.java b/tests/src/com/android/providers/contacts/aggregation/util/ContactMatcherTest.java
index 301902a..09a0b78 100644
--- a/tests/src/com/android/providers/contacts/aggregation/util/ContactMatcherTest.java
+++ b/tests/src/com/android/providers/contacts/aggregation/util/ContactMatcherTest.java
@@ -16,12 +16,12 @@
 package com.android.providers.contacts.aggregation.util;
 
 import com.android.providers.contacts.ContactsDatabaseHelper.NameLookupType;
+import com.android.providers.contacts.FixedAndroidTestCase;
 
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
 @SmallTest
-public class ContactMatcherTest extends AndroidTestCase {
+public class ContactMatcherTest extends FixedAndroidTestCase {
 
     public void testMatchName_invalidHexDecimal() {
         final ContactMatcher matcher = new ContactMatcher();
diff --git a/tests/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuardTest.java b/tests/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuardTest.java
index 99ff9a1..c068459 100644
--- a/tests/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuardTest.java
+++ b/tests/src/com/android/providers/contacts/enterprise/EnterprisePolicyGuardTest.java
@@ -24,7 +24,6 @@
 import android.os.UserManager;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Directory;
-import android.test.AndroidTestCase;
 import android.test.mock.MockContext;
 import android.test.suitebuilder.annotation.SmallTest;
 
@@ -36,12 +35,14 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import com.android.providers.contacts.FixedAndroidTestCase;
+
 
 /**
  * Unit tests for {@link EnterprisePolicyGuard}.
  */
 @SmallTest
-public class EnterprisePolicyGuardTest extends AndroidTestCase {
+public class EnterprisePolicyGuardTest extends FixedAndroidTestCase {
     private static final String SYSTEM_PROPERTY_DEXMAKER_DEXCACHE = "dexmaker.dexcache";
 
     private static final int CONTACT_ID = 10;
diff --git a/tests/src/com/android/providers/contacts/sqlite/DatabaseAnalyzerTest.java b/tests/src/com/android/providers/contacts/sqlite/DatabaseAnalyzerTest.java
index 568e1e8..8367ef5 100644
--- a/tests/src/com/android/providers/contacts/sqlite/DatabaseAnalyzerTest.java
+++ b/tests/src/com/android/providers/contacts/sqlite/DatabaseAnalyzerTest.java
@@ -16,14 +16,14 @@
 
 package com.android.providers.contacts.sqlite;
 
-import android.test.AndroidTestCase;
 
 import com.android.providers.contacts.ContactsDatabaseHelper;
+import com.android.providers.contacts.FixedAndroidTestCase;
 import com.android.providers.contacts.TestUtils;
 
 import java.util.List;
 
-public class DatabaseAnalyzerTest extends AndroidTestCase {
+public class DatabaseAnalyzerTest extends FixedAndroidTestCase {
     public void testFindTableViewsAllowingColumns() {
         final ContactsDatabaseHelper dbh =
                 ContactsDatabaseHelper.getNewInstanceForTest(getContext(),
diff --git a/tests/src/com/android/providers/contacts/sqlite/SqlCheckerTest.java b/tests/src/com/android/providers/contacts/sqlite/SqlCheckerTest.java
index ee2b5be..b69b427 100644
--- a/tests/src/com/android/providers/contacts/sqlite/SqlCheckerTest.java
+++ b/tests/src/com/android/providers/contacts/sqlite/SqlCheckerTest.java
@@ -15,16 +15,16 @@
  */
 package com.android.providers.contacts.sqlite;
 
-import android.test.AndroidTestCase;
 import android.test.MoreAsserts;
 
+import com.android.providers.contacts.FixedAndroidTestCase;
 import com.android.providers.contacts.sqlite.SqlChecker.InvalidSqlException;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-public class SqlCheckerTest extends AndroidTestCase {
+public class SqlCheckerTest extends FixedAndroidTestCase {
     private ArrayList<String> getTokens(String sql) {
         final ArrayList<String> tokens = new ArrayList<>();
 
diff --git a/tests/src/com/android/providers/contacts/util/SelectionBuilderTest.java b/tests/src/com/android/providers/contacts/util/SelectionBuilderTest.java
index 7adbeca..4615fbd 100644
--- a/tests/src/com/android/providers/contacts/util/SelectionBuilderTest.java
+++ b/tests/src/com/android/providers/contacts/util/SelectionBuilderTest.java
@@ -16,14 +16,15 @@
 
 package com.android.providers.contacts.util;
 
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
+import com.android.providers.contacts.FixedAndroidTestCase;
+
 /**
  * Unit tests for {@link SelectionBuilder}.
  */
 @SmallTest
-public class SelectionBuilderTest extends AndroidTestCase {
+public class SelectionBuilderTest extends FixedAndroidTestCase {
     public void testEmptyClauses() {
         assertEquals(null, new SelectionBuilder(null).build());
         assertEquals(null, new SelectionBuilder("").build());
diff --git a/tests/src/com/android/providers/contacts/util/TypedUriMatcherImplTest.java b/tests/src/com/android/providers/contacts/util/TypedUriMatcherImplTest.java
index 329e6e2..d2a7b14 100644
--- a/tests/src/com/android/providers/contacts/util/TypedUriMatcherImplTest.java
+++ b/tests/src/com/android/providers/contacts/util/TypedUriMatcherImplTest.java
@@ -17,9 +17,10 @@
 package com.android.providers.contacts.util;
 
 import android.net.Uri;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
+import com.android.providers.contacts.FixedAndroidTestCase;
+
 /**
  * Unit tests for {@link TypedUriMatcherImpl}.
  * Run the test like this:
@@ -28,7 +29,7 @@
  * </code>
  */
 @SmallTest
-public class TypedUriMatcherImplTest extends AndroidTestCase {
+public class TypedUriMatcherImplTest extends FixedAndroidTestCase {
     /** URI type used for testing. */
     private static enum TestUriType implements UriType {
         NO_MATCH(null),
diff --git a/tests/src/com/android/providers/contacts/util/UserUtilsTest.java b/tests/src/com/android/providers/contacts/util/UserUtilsTest.java
index 611ad3f..93613cf 100644
--- a/tests/src/com/android/providers/contacts/util/UserUtilsTest.java
+++ b/tests/src/com/android/providers/contacts/util/UserUtilsTest.java
@@ -15,21 +15,19 @@
  */
 package com.android.providers.contacts.util;
 
-import com.android.providers.contacts.ContactsActor;
-import com.android.providers.contacts.ContactsActor.MockUserManager;
-import com.android.providers.contacts.SynchronousContactsProvider2;
-
-import android.content.ContentProvider;
-import android.content.Context;
-import android.os.UserManager;
-import android.provider.ContactsContract;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
 import static com.android.providers.contacts.ContactsActor.PACKAGE_GREY;
 
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.providers.contacts.ContactsActor;
+import com.android.providers.contacts.ContactsActor.MockUserManager;
+import com.android.providers.contacts.FixedAndroidTestCase;
+import com.android.providers.contacts.SynchronousContactsProvider2;
+
 @SmallTest
-public class UserUtilsTest extends AndroidTestCase {
+public class UserUtilsTest extends FixedAndroidTestCase {
 
     protected ContactsActor mActor;
 
diff --git a/tests2/AndroidTest.xml b/tests2/AndroidTest.xml
index 29fdc83..957350b 100644
--- a/tests2/AndroidTest.xml
+++ b/tests2/AndroidTest.xml
@@ -20,9 +20,8 @@
 
     <option name="test-suite-tag" value="apct" />
     <option name="test-tag" value="ContactsProviderTests2" />
-    <test class="com.android.tradefed.testtype.InstrumentationTest" >
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="com.android.providers.contacts.tests2" />
-        <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" />
         <option name="hidden-api-checks" value="false"/>
     </test>
 </configuration>