Merge changes I990dc4d0,Ib53cab3b into rvc-dev

* changes:
  CTS: Add tests for WifiManager#calculateSignalLevel
  CTS: Add test for WifiFrameworkInitializer
This commit is contained in:
David Su
2020-02-28 20:55:39 +00:00
committed by Android (Google) Code Review
2 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
/*
* 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 android.net.wifi.cts;
import android.net.wifi.WifiFrameworkInitializer;
import android.test.AndroidTestCase;
public class WifiFrameworkInitializerTest extends AndroidTestCase {
/**
* WifiFrameworkInitializer.registerServiceWrappers() should only be called by
* SystemServiceRegistry during boot up when Wifi is first initialized. Calling this API at
* any other time should throw an exception.
*/
public void testRegisterServiceWrappers_failsWhenCalledOutsideOfSystemServiceRegistry() {
if (!WifiFeature.isWifiSupported(getContext())) {
// skip the test if WiFi is not supported
return;
}
try {
WifiFrameworkInitializer.registerServiceWrappers();
fail("Expected exception when calling "
+ "WifiFrameworkInitializer.registerServiceWrappers() outside of "
+ "SystemServiceRegistry!");
} catch (IllegalStateException expected) {}
}
}

View File

@@ -16,6 +16,7 @@
package android.net.wifi.cts;
import static com.google.common.truth.Truth.assertWithMessage;
import android.app.UiAutomation;
import android.content.BroadcastReceiver;
@@ -423,6 +424,33 @@ public class WifiManagerTest extends AndroidTestCase {
assertTrue(WifiManager.compareSignalLevel(rssiA, rssiB) > 0);
}
/**
* Test that {@link WifiManager#calculateSignalLevel(int)} returns a value in the range
* [0, {@link WifiManager#getMaxSignalLevel()}], and its value is monotonically increasing as
* the RSSI increases.
*/
public void testCalculateSignalLevel() {
if (!WifiFeature.isWifiSupported(getContext())) {
// skip the test if WiFi is not supported
return;
}
int maxSignalLevel = mWifiManager.getMaxSignalLevel();
int prevSignalLevel = 0;
for (int rssi = -150; rssi <= 50; rssi++) {
int signalLevel = mWifiManager.calculateSignalLevel(rssi);
// between [0, maxSignalLevel]
assertWithMessage("For RSSI=%s", rssi).that(signalLevel).isAtLeast(0);
assertWithMessage("For RSSI=%s", rssi).that(signalLevel).isAtMost(maxSignalLevel);
// calculateSignalLevel(rssi) <= calculateSignalLevel(rssi + 1)
assertWithMessage("For RSSI=%s", rssi).that(signalLevel).isAtLeast(prevSignalLevel);
prevSignalLevel = signalLevel;
}
}
private static class TestLocalOnlyHotspotCallback extends WifiManager.LocalOnlyHotspotCallback {
Object hotspotLock;
WifiManager.LocalOnlyHotspotReservation reservation = null;