From a2686116292edaa8e25a0997251721778ad7d845 Mon Sep 17 00:00:00 2001 From: Paul Hu Date: Thu, 2 Apr 2020 19:14:44 +0000 Subject: [PATCH 1/2] Add TetheringRequest CTS tests Test APIs below: TetheringRequest.getClientStaticIpv4Address() TetheringRequest.getLocalIpv4Address() TetheringRequest.getShouldShowEntitlementUi() TetheringRequest.getTetheringType() TetheringRequest.isExemptFromEntitlementCheck() TetheringRequest.Builder(int) TetheringRequest.Builder.build() TetheringRequest.Builder.setExemptFromEntitlementCheck(boolean) TetheringRequest.Builder.setShouldShowEntitlementUi(boolean) TetheringRequest.Builder.setStaticIpv4Addresses( \ android.net.LinkAddress, android.net.LinkAddress) Bug: 150632842 Test: atest CtsTetheringTest Change-Id: Ice5aefa1bacc1a635a7a79ce91d5d30ec5dcf335 Merged-In: Ice5aefa1bacc1a635a7a79ce91d5d30ec5dcf335 (cherry picked from commit 3780b3720ca19063e0d4c0372422f3105dc5bb86) --- .../tethering/cts/TetheringManagerTest.java | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/tests/cts/tethering/src/android/tethering/cts/TetheringManagerTest.java b/tests/cts/tethering/src/android/tethering/cts/TetheringManagerTest.java index 4d72eae3e4..86fe54ce54 100644 --- a/tests/cts/tethering/src/android/tethering/cts/TetheringManagerTest.java +++ b/tests/cts/tethering/src/android/tethering/cts/TetheringManagerTest.java @@ -15,17 +15,22 @@ */ package android.tethering.test; +import static android.net.TetheringManager.TETHERING_USB; import static android.net.TetheringManager.TETHERING_WIFI; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.net.LinkAddress; import android.net.TetheringManager; import android.net.TetheringManager.TetheringRequest; -import android.os.ConditionVariable; import androidx.test.InstrumentationRegistry; import androidx.test.runner.AndroidJUnit4; @@ -37,8 +42,6 @@ import org.junit.runner.RunWith; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; -import java.util.concurrent.Executor; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; @@ -225,4 +228,27 @@ public class TetheringManagerTest { mTM.stopTethering(TETHERING_WIFI); mTetherChangeReceiver.expectNoActiveTethering(DEFAULT_TIMEOUT_MS); } + + @Test + public void testTetheringRequest() { + final TetheringRequest tr = new TetheringRequest.Builder(TETHERING_WIFI).build(); + assertEquals(TETHERING_WIFI, tr.getTetheringType()); + assertNull(tr.getLocalIpv4Address()); + assertNull(tr.getClientStaticIpv4Address()); + assertFalse(tr.isExemptFromEntitlementCheck()); + assertTrue(tr.getShouldShowEntitlementUi()); + + final LinkAddress localAddr = new LinkAddress("192.168.24.5/24"); + final LinkAddress clientAddr = new LinkAddress("192.168.24.100/24"); + final TetheringRequest tr2 = new TetheringRequest.Builder(TETHERING_USB) + .setStaticIpv4Addresses(localAddr, clientAddr) + .setExemptFromEntitlementCheck(true) + .setShouldShowEntitlementUi(false).build(); + + assertEquals(localAddr, tr2.getLocalIpv4Address()); + assertEquals(clientAddr, tr2.getClientStaticIpv4Address()); + assertEquals(TETHERING_USB, tr2.getTetheringType()); + assertTrue(tr2.isExemptFromEntitlementCheck()); + assertFalse(tr2.getShouldShowEntitlementUi()); + } } From 1f4e465b5af26a105c59930af337b6a99d1a9e70 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Sun, 5 Apr 2020 01:51:10 -0700 Subject: [PATCH 2/2] Dump debug logs after a test failure before running tearDown()s. Bug: 145420790 Test: atest hostsidetests/net/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java Change-Id: I19516046f05bd4564c57542ae82a82a1cc362f48 --- ...ractRestrictBackgroundNetworkTestCase.java | 8 +--- .../net/hostside/NetworkPolicyTestRunner.java | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 tests/cts/hostside/app/src/com/android/cts/net/hostside/NetworkPolicyTestRunner.java diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java index 69dd2adb48..21212af824 100644 --- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java +++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java @@ -62,13 +62,10 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import androidx.test.platform.app.InstrumentationRegistry; -import androidx.test.runner.AndroidJUnit4; - /** * Superclass for tests related to background network restrictions. */ -@RunWith(AndroidJUnit4.class) +@RunWith(NetworkPolicyTestRunner.class) public abstract class AbstractRestrictBackgroundNetworkTestCase { public static final String TAG = "RestrictBackgroundNetworkTests"; @@ -137,8 +134,7 @@ public abstract class AbstractRestrictBackgroundNetworkTestCase { private boolean mIsLocationOn; @Rule - public final RuleChain mRuleChain = RuleChain.outerRule(new DumpOnFailureRule()) - .around(new RequiredPropertiesRule()) + public final RuleChain mRuleChain = RuleChain.outerRule(new RequiredPropertiesRule()) .around(new MeterednessConfigurationRule()); protected void setUp() throws Exception { diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/NetworkPolicyTestRunner.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/NetworkPolicyTestRunner.java new file mode 100644 index 0000000000..f340907ae5 --- /dev/null +++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/NetworkPolicyTestRunner.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2020 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.cts.net.hostside; + +import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner; + +import org.junit.rules.RunRules; +import org.junit.rules.TestRule; +import org.junit.runners.model.FrameworkMethod; +import org.junit.runners.model.InitializationError; +import org.junit.runners.model.Statement; + +import java.util.List; + +/** + * Custom runner to allow dumping logs after a test failure before the @After methods get to run. + */ +public class NetworkPolicyTestRunner extends AndroidJUnit4ClassRunner { + private TestRule mDumpOnFailureRule = new DumpOnFailureRule(); + + public NetworkPolicyTestRunner(Class klass) throws InitializationError { + super(klass); + } + + @Override + public Statement methodInvoker(FrameworkMethod method, Object test) { + return new RunRules(super.methodInvoker(method, test), List.of(mDumpOnFailureRule), + describeChild(method)); + } +}