From 9207702d664353775aa8df366ffe0e96ab6662e2 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Fri, 25 Jun 2021 11:00:54 +0900 Subject: [PATCH] Fix OffloadControllerTest on R Data warning is not supported on R, and the notifyWarningOrLimitReached callback also only exists in S. Bug: 182962001 Test: atest OffloadControllerTest Change-Id: I4914240967bba341f16e505acd29b80b90ab8569 --- .../tethering/OffloadControllerTest.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java index d800816055..fc34585241 100644 --- a/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java +++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/OffloadControllerTest.java @@ -26,6 +26,7 @@ import static android.net.NetworkStats.UID_TETHERING; import static android.net.RouteInfo.RTN_UNICAST; import static android.provider.Settings.Global.TETHER_OFFLOAD_DISABLED; +import static com.android.modules.utils.build.SdkLevel.isAtLeastS; import static com.android.networkstack.tethering.OffloadController.StatsType.STATS_PER_IFACE; import static com.android.networkstack.tethering.OffloadController.StatsType.STATS_PER_UID; import static com.android.networkstack.tethering.OffloadHardwareInterface.ForwardedStats; @@ -66,6 +67,7 @@ import android.net.NetworkStats.Entry; import android.net.RouteInfo; import android.net.netstats.provider.NetworkStatsProvider; import android.net.util.SharedLog; +import android.os.Build; import android.os.Handler; import android.os.test.TestLooper; import android.provider.Settings; @@ -76,10 +78,13 @@ import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.test.FakeSettingsProvider; +import com.android.testutils.DevSdkIgnoreRule; +import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo; import com.android.testutils.TestableNetworkStatsProviderCbBinder; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -95,6 +100,9 @@ import java.util.Set; @RunWith(AndroidJUnit4.class) @SmallTest public class OffloadControllerTest { + @Rule + public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule(); + private static final String RNDIS0 = "test_rndis0"; private static final String RMNET0 = "test_rmnet_data0"; private static final String WLAN0 = "test_wlan0"; @@ -511,8 +519,8 @@ public class OffloadControllerTest { public void testSetDataWarningAndLimit() throws Exception { // Verify the OffloadController is called by R framework, where the framework doesn't send // warning. + // R only uses HAL 1.0. checkSetDataWarningAndLimit(false, OFFLOAD_HAL_VERSION_1_0); - checkSetDataWarningAndLimit(false, OFFLOAD_HAL_VERSION_1_1); // Verify the OffloadController is called by S+ framework, where the framework sends // warning along with limit. checkSetDataWarningAndLimit(true, OFFLOAD_HAL_VERSION_1_0); @@ -650,17 +658,26 @@ public class OffloadControllerTest { } @Test - public void testDataWarningAndLimitCallback() throws Exception { + public void testDataWarningAndLimitCallback_LimitReached() throws Exception { enableOffload(); startOffloadController(OFFLOAD_HAL_VERSION_1_0, true /*expectStart*/); - OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue(); + final OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue(); callback.onStoppedLimitReached(); mTetherStatsProviderCb.expectNotifyStatsUpdated(); - mTetherStatsProviderCb.expectNotifyWarningOrLimitReached(); + if (isAtLeastS()) { + mTetherStatsProviderCb.expectNotifyWarningOrLimitReached(); + } else { + mTetherStatsProviderCb.expectLegacyNotifyLimitReached(); + } + } + + @Test + @IgnoreUpTo(Build.VERSION_CODES.R) // HAL 1.1 is only supported from S + public void testDataWarningAndLimitCallback_WarningReached() throws Exception { startOffloadController(OFFLOAD_HAL_VERSION_1_1, true /*expectStart*/); - callback = mControlCallbackCaptor.getValue(); + final OffloadHardwareInterface.ControlCallback callback = mControlCallbackCaptor.getValue(); callback.onWarningReached(); mTetherStatsProviderCb.expectNotifyStatsUpdated(); mTetherStatsProviderCb.expectNotifyWarningOrLimitReached();