Merge changes Id3eaa838,If07fb6c1 into main
* changes: Move failWithErrorReason to a common place Enable the last preference tests
This commit is contained in:
commit
175e8aeebf
4 changed files with 34 additions and 29 deletions
|
|
@ -70,7 +70,7 @@ open class RecorderCallback private constructor(
|
|||
data class Reserved private constructor(
|
||||
override val network: Network,
|
||||
val caps: NetworkCapabilities
|
||||
): CallbackEntry() {
|
||||
) : CallbackEntry() {
|
||||
constructor(caps: NetworkCapabilities) : this(NULL_NETWORK, caps)
|
||||
}
|
||||
data class Available(override val network: Network) : CallbackEntry()
|
||||
|
|
@ -399,12 +399,6 @@ open class TestableNetworkCallback private constructor(
|
|||
}
|
||||
} as T
|
||||
|
||||
// "Nothing" is the return type to declare a function never returns a value.
|
||||
fun failWithErrorReason(errorMsg: String?, errorReason: String): Nothing {
|
||||
val message = if (errorMsg != null) "$errorMsg : $errorReason" else errorReason
|
||||
fail(message)
|
||||
}
|
||||
|
||||
inline fun <reified T : CallbackEntry> expect(
|
||||
network: HasNetwork,
|
||||
timeoutMs: Long = defaultTimeoutMs,
|
||||
|
|
|
|||
|
|
@ -56,12 +56,6 @@ class TestableNetworkOfferCallback(
|
|||
history.add(CallbackEntry.Unneeded(request))
|
||||
}
|
||||
|
||||
// TODO : move to some utility, this is copied from TestableNetworkCallback
|
||||
fun failWithErrorReason(errorMsg: String?, errorReason: String): Nothing {
|
||||
val message = if (errorMsg != null) "$errorMsg : $errorReason" else errorReason
|
||||
fail(message)
|
||||
}
|
||||
|
||||
inline fun <reified T : CallbackEntry> expect(
|
||||
errorMsg: String? = null,
|
||||
predicate: (T) -> Boolean = { true }
|
||||
|
|
|
|||
|
|
@ -142,4 +142,12 @@ fun assertEventuallyTrue(
|
|||
}
|
||||
Thread.sleep(pollIntervalMs)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// "Nothing" is the return type to declare a function never returns a value. This is useful
|
||||
// because the compiler will know the branch of the code calling this does not return, which
|
||||
// lets check exhaustivity, infer return types, nullability and smart casts.
|
||||
fun failWithErrorReason(errorMsg: String?, errorReason: String): Nothing {
|
||||
val message = if (errorMsg != null) "$errorMsg : $errorReason" else errorReason
|
||||
fail(message)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ import com.android.testutils.TestableNetworkOfferCallback.CallbackEntry.Needed
|
|||
import com.android.testutils.TestableNetworkOfferCallback.CallbackEntry.Unneeded
|
||||
import com.android.testutils.postAndWait
|
||||
import com.android.testutils.runAsShell
|
||||
import kotlin.test.assertEquals
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
|
@ -329,12 +330,6 @@ class CSPreferenceTest : CSTest() {
|
|||
satelliteCallback.assertNoCallback()
|
||||
restrictedSatelliteCallback.assertNoCallback()
|
||||
|
||||
// TODO : the test below cannot be stabilized because the order of the callbacks
|
||||
// (which request is needed first) is not guaranteed and actually changes across
|
||||
// invocations, and TestableNetworkOfferCallback does not yet offer the tooling
|
||||
// to check the track record from a mark.
|
||||
return
|
||||
|
||||
updateSatellitePreference(setOf(SMSUID), setOf(UID1))
|
||||
// TODO : ideally ConnectivityService would not send unneeded then needed. This is
|
||||
// happening because updating the preferences removes the requests, which causes a
|
||||
|
|
@ -342,15 +337,20 @@ class CSPreferenceTest : CSTest() {
|
|||
// causes another rematch.
|
||||
satelliteCallback.expect<Unneeded> { it.isRestricted }
|
||||
restrictedSatelliteCallback.expect<Unneeded> { it.isRestricted }
|
||||
satelliteCallback.expect<Needed> { !it.isRestricted }
|
||||
satelliteCallback.expect<Needed> { it.isRestricted }
|
||||
|
||||
val mark1 = satelliteCallback.mark
|
||||
satelliteCallback.eventuallyExpect<Needed>(from = mark1) { !it.isRestricted }
|
||||
satelliteCallback.eventuallyExpect<Needed>(from = mark1) { it.isRestricted }
|
||||
assertEquals(2, satelliteCallback.mark - mark1)
|
||||
restrictedSatelliteCallback.expect<Needed> { it.isRestricted }
|
||||
satelliteCallback.assertNoCallback()
|
||||
restrictedSatelliteCallback.assertNoCallback()
|
||||
|
||||
updateSatellitePreference(emptySet(), setOf(UID1))
|
||||
satelliteCallback.expect<Unneeded> { it.isRestricted }
|
||||
satelliteCallback.expect<Unneeded> { !it.isRestricted }
|
||||
val mark2 = satelliteCallback.mark
|
||||
satelliteCallback.eventuallyExpect<Unneeded>(from = mark2) { it.isRestricted }
|
||||
satelliteCallback.eventuallyExpect<Unneeded>(from = mark2) { !it.isRestricted }
|
||||
assertEquals(2, satelliteCallback.mark - mark2)
|
||||
satelliteCallback.expect<Needed> { !it.isRestricted }
|
||||
restrictedSatelliteCallback.expect<Unneeded> { it.isRestricted }
|
||||
satelliteCallback.assertNoCallback()
|
||||
|
|
@ -358,20 +358,29 @@ class CSPreferenceTest : CSTest() {
|
|||
|
||||
updateSatellitePreference(setOf(SMSUID), setOf(UID1))
|
||||
restrictedSatelliteCallback.expect<Needed> { it.isRestricted }
|
||||
satelliteCallback.expect<Unneeded> { !it.isRestricted }
|
||||
val mark3 = satelliteCallback.mark
|
||||
satelliteCallback.eventuallyExpect<Needed>(from = mark3) { it.isRestricted }
|
||||
satelliteCallback.eventuallyExpect<Needed>(from = mark3) { !it.isRestricted }
|
||||
assertEquals(2, satelliteCallback.mark - mark3)
|
||||
satelliteCallback.assertNoCallback()
|
||||
restrictedSatelliteCallback.assertNoCallback()
|
||||
|
||||
val wifiAgent = Agent(TRANSPORT_WIFI)
|
||||
val wifiAgent = Agent(nc(TRANSPORT_WIFI, NET_CAPABILITY_INTERNET))
|
||||
wifiAgent.connect()
|
||||
satelliteCallback.expect<Unneeded> { it.isRestricted }
|
||||
satelliteCallback.expect<Unneeded> { !it.isRestricted }
|
||||
val mark4 = satelliteCallback.mark
|
||||
satelliteCallback.eventuallyExpect<Unneeded>(from = mark4) { it.isRestricted }
|
||||
satelliteCallback.eventuallyExpect<Unneeded>(from = mark4) { !it.isRestricted }
|
||||
assertEquals(2, satelliteCallback.mark - mark4)
|
||||
restrictedSatelliteCallback.expect<Unneeded> { it.isRestricted }
|
||||
satelliteCallback.assertNoCallback()
|
||||
restrictedSatelliteCallback.assertNoCallback()
|
||||
|
||||
wifiAgent.disconnect()
|
||||
satelliteCallback.expect<Needed> { it.isRestricted }
|
||||
satelliteCallback.expect<Needed> { !it.isRestricted }
|
||||
val mark5 = satelliteCallback.mark
|
||||
satelliteCallback.eventuallyExpect<Needed>(from = mark5) { it.isRestricted }
|
||||
satelliteCallback.eventuallyExpect<Needed>(from = mark5) { !it.isRestricted }
|
||||
assertEquals(2, satelliteCallback.mark - mark5)
|
||||
restrictedSatelliteCallback.expect<Needed> { it.isRestricted }
|
||||
satelliteCallback.assertNoCallback()
|
||||
restrictedSatelliteCallback.assertNoCallback()
|
||||
|
|
|
|||
Loading…
Reference in a new issue