Merge changes from topic 'frameworks-net-tests'

* changes:
  Move the connectivity tests to frameworks/base/tests/net.
  De-guava BroadcastInterceptingContext and move it to testutils.
  Move FakeSettingsProvider to a common location.
This commit is contained in:
Lorenzo Colitti
2016-10-31 04:16:48 +00:00
committed by Android (Google) Code Review
35 changed files with 165 additions and 17 deletions

View File

@@ -14,6 +14,7 @@ LOCAL_SRC_FILES += src/android/util/IRemoteMemoryIntArray.aidl
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-test \
frameworks-base-testutils \
mockito-target-minus-junit4
LOCAL_JAVA_LIBRARIES := android.test.runner

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.internal.util;
package com.android.internal.util.test;
import android.content.ContentResolver;
import android.database.ContentObserver;

View File

@@ -24,6 +24,7 @@ import android.os.Binder;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.LargeTest;
import com.android.server.net.BaseNetworkObserver;
import com.android.internal.util.test.BroadcastInterceptingContext;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;

View File

@@ -95,7 +95,8 @@ import android.text.format.Time;
import android.util.Log;
import android.util.TrustedTime;
import com.android.server.BroadcastInterceptingContext.FutureIntent;
import com.android.internal.util.test.BroadcastInterceptingContext;
import com.android.internal.util.test.BroadcastInterceptingContext.FutureIntent;
import com.android.server.net.NetworkPolicyManagerInternal;
import com.android.server.net.NetworkPolicyManagerService;

View File

@@ -88,7 +88,7 @@ import android.test.AndroidTestCase;
import android.util.TrustedTime;
import com.android.internal.net.VpnInfo;
import com.android.server.BroadcastInterceptingContext;
import com.android.internal.util.test.BroadcastInterceptingContext;
import com.android.server.net.NetworkStatsService;
import com.android.server.net.NetworkStatsService.NetworkStatsSettings;
import com.android.server.net.NetworkStatsService.NetworkStatsSettings.Config;

View File

@@ -34,7 +34,7 @@ import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.test.mock.MockContentResolver;
import com.android.internal.util.FakeSettingsProvider;
import com.android.internal.util.test.FakeSettingsProvider;
import org.junit.After;
import org.junit.Before;
@@ -146,4 +146,4 @@ public class PreloadAppsInstallerTest {
Settings.Secure.getStringForUser(mContentResolver,
Settings.Secure.DEMO_USER_SETUP_COMPLETE, TEST_DEMO_USER));
}
}
}

View File

@@ -61,7 +61,7 @@ import android.test.mock.MockContentProvider;
import android.test.mock.MockContentResolver;
import android.util.ArrayMap;
import com.android.internal.util.FakeSettingsProvider;
import com.android.internal.util.test.FakeSettingsProvider;
import com.android.internal.widget.LockPatternUtils;
import com.android.server.SystemService;
import com.android.server.retaildemo.RetailDemoModeService.Injector;

80
tests/net/Android.mk Normal file
View File

@@ -0,0 +1,80 @@
#########################################################################
# Build FrameworksNetTests package
#########################################################################
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# We only want this apk build for tests.
LOCAL_MODULE_TAGS := tests
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, java)
LOCAL_STATIC_JAVA_LIBRARIES := \
frameworks-base-testutils \
framework-protos \
android-support-test \
mockito-target-minus-junit4 \
platform-test-annotations \
services.core \
services.net
LOCAL_JAVA_LIBRARIES := \
android.test.runner
LOCAL_PACKAGE_NAME := FrameworksNetTests
LOCAL_CERTIFICATE := platform
# These are not normally accessible from apps so they must be explicitly included.
LOCAL_JNI_SHARED_LIBRARIES := libframeworksnettestsjni \
libbacktrace \
libbase \
libbinder \
libc++ \
libcutils \
liblog \
liblzma \
libnativehelper \
libnetdaidl \
libui \
libunwind \
libutils
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_PACKAGE)
#########################################################################
# Build JNI Shared Library
#########################################################################
LOCAL_PATH:= $(LOCAL_PATH)/jni
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_CFLAGS := -Wall -Wextra -Werror
LOCAL_C_INCLUDES := \
libpcap \
hardware/google/apf
LOCAL_SRC_FILES := $(call all-cpp-files-under)
LOCAL_SHARED_LIBRARIES := \
libbinder \
liblog \
libcutils \
libnativehelper \
libnetdaidl
LOCAL_STATIC_LIBRARIES := \
libpcap \
libapf
LOCAL_MODULE := libframeworksnettestsjni
include $(BUILD_SHARED_LIBRARY)

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.frameworks.tests.net">
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
<uses-permission android:name="android.permission.REAL_GET_TASKS" />
<uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
<uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
<uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
<uses-permission android:name="android.permission.MODIFY_NETWORK_ACCOUNTING" />
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD" />
<uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT" />
<uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation
android:name="android.support.test.runner.AndroidJUnitRunner"
android:targetPackage="com.android.frameworks.tests.net"
android:label="Frameworks Networking Tests" />
</manifest>

View File

@@ -26,7 +26,7 @@ import static org.junit.Assert.assertArrayEquals;
public class UidRangeTest extends TestCase {
static {
System.loadLibrary("servicestestsjni");
System.loadLibrary("frameworksnettestsjni");
}
private static native byte[] readAndWriteNative(byte[] inParcel);

View File

@@ -35,7 +35,7 @@ import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.LargeTest;
import static android.system.OsConstants.*;
import com.android.frameworks.servicestests.R;
import com.android.frameworks.tests.net.R;
import com.android.internal.util.HexDump;
import org.mockito.ArgumentCaptor;
@@ -75,7 +75,7 @@ public class ApfTest extends AndroidTestCase {
super.setUp();
MockitoAnnotations.initMocks(this);
// Load up native shared library containing APF interpreter exposed via JNI.
System.loadLibrary("servicestestsjni");
System.loadLibrary("frameworksnettestsjni");
}
// Expected return codes from APF interpreter.

View File

@@ -75,8 +75,9 @@ import android.test.suitebuilder.annotation.SmallTest;
import android.util.Log;
import android.util.LogPrinter;
import com.android.internal.util.FakeSettingsProvider;
import com.android.internal.util.WakeupMessage;
import com.android.internal.util.test.BroadcastInterceptingContext;
import com.android.internal.util.test.FakeSettingsProvider;
import com.android.server.connectivity.NetworkAgentInfo;
import com.android.server.connectivity.NetworkMonitor;
import com.android.server.connectivity.NetworkMonitor.CaptivePortalProbeResult;

View File

@@ -27,4 +27,6 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-test \
mockito-target-minus-junit4
LOCAL_JAVA_LIBRARIES := android.test.runner
include $(BUILD_STATIC_JAVA_LIBRARY)

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.server;
package com.android.internal.util.test;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -25,13 +25,12 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.AbstractFuture;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@@ -42,9 +41,15 @@ import java.util.concurrent.TimeoutException;
public class BroadcastInterceptingContext extends ContextWrapper {
private static final String TAG = "WatchingContext";
private final List<BroadcastInterceptor> mInterceptors = Lists.newArrayList();
private final List<BroadcastInterceptor> mInterceptors = new ArrayList<>();
public abstract class FutureIntent extends FutureTask<Intent> {
public FutureIntent() {
super(
() -> { throw new IllegalStateException("Cannot happen"); }
);
}
abstract class FutureIntent extends AbstractFuture<Intent> {
public void assertNotReceived()
throws InterruptedException, ExecutionException {
assertNotReceived(5, TimeUnit.SECONDS);

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.android.internal.util;
package com.android.internal.util.test;
import android.net.Uri;
import android.os.Bundle;