summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/src/com/android/server/NetworkStackServiceTest.kt40
1 files changed, 29 insertions, 11 deletions
diff --git a/tests/unit/src/com/android/server/NetworkStackServiceTest.kt b/tests/unit/src/com/android/server/NetworkStackServiceTest.kt
index 52556bc..9de828f 100644
--- a/tests/unit/src/com/android/server/NetworkStackServiceTest.kt
+++ b/tests/unit/src/com/android/server/NetworkStackServiceTest.kt
@@ -40,6 +40,7 @@ import com.android.server.NetworkStackService.PermissionChecker
import com.android.server.connectivity.NetworkMonitor
import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService
import com.android.testutils.DevSdkIgnoreRule
+import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
import org.junit.Rule
import org.junit.Test
@@ -62,9 +63,6 @@ import kotlin.test.assertEquals
private val TEST_NETD_VERSION = 9991001
private val TEST_NETD_HASH = "test_netd_hash"
-private val TEST_IPMEMORYSTORE_VERSION = 9991002
-private val TEST_IPMEMORYSTORE_HASH = "test_ipmemorystore_hash"
-
private val TEST_IFACE = "test_iface"
@RunWith(AndroidJUnit4::class)
@@ -98,7 +96,7 @@ class NetworkStackServiceTest {
private val connector = NetworkStackConnector(context, permChecker, deps)
- @Test
+ @Test @IgnoreAfter(Build.VERSION_CODES.Q)
fun testDumpVersion_Q() {
prepareDumpVersionTest()
@@ -115,16 +113,36 @@ class NetworkStackServiceTest {
@Test @IgnoreUpTo(Build.VERSION_CODES.Q)
fun testDumpVersion() {
- // TODO: log interface hash on R+ and test it
+ prepareDumpVersionTest()
+
+ val connectorVersion = INetworkStackConnector.VERSION
+ val connectorHash = INetworkStackConnector.HASH
+
+ val dumpsysOut = StringWriter()
+ connector.dump(FileDescriptor(), PrintWriter(dumpsysOut, true /* autoFlush */),
+ arrayOf("version") /* args */)
+
+ assertEquals("NetworkStack version:\n" +
+ "LocalInterface:$connectorVersion:$connectorHash\n" +
+ "ipmemorystore:9990001:ipmemorystore_hash\n" +
+ "netd:$TEST_NETD_VERSION:$TEST_NETD_HASH\n" +
+ "networkstack:9990002:dhcp_server_hash\n" +
+ "networkstack:9990003:networkmonitor_hash\n" +
+ "networkstack:9990004:ipclient_hash\n" +
+ "networkstack:9990005:multiple_use_hash\n\n",
+ dumpsysOut.toString())
}
fun prepareDumpVersionTest() {
// Call each method on INetworkStackConnector and verify that it notes down the version of
- // the remote.
+ // the remote. This is usually a component in the system server that implements one of the
+ // NetworkStack AIDL callback interfaces (e.g., IIpClientCallbacks). On a device there may
+ // be different versions of the generated AIDL classes for different components, even within
+ // the same process (e.g., system_server).
// Call fetchIpMemoryStore
val mockIpMemoryStoreCb = mock(IIpMemoryStoreCallbacks::class.java)
doReturn(9990001).`when`(mockIpMemoryStoreCb).interfaceVersion
- doReturn("fetch_ipmemorystore_hash").`when`(mockIpMemoryStoreCb).interfaceHash
+ doReturn("ipmemorystore_hash").`when`(mockIpMemoryStoreCb).interfaceHash
connector.fetchIpMemoryStore(mockIpMemoryStoreCb)
// IpMemoryStore was created at initialization time
@@ -174,10 +192,10 @@ class NetworkStackServiceTest {
// Call some methods one more time with a shared version number and hash to verify no
// duplicates are reported
- doReturn(9990005).`when`(mockIpMemoryStoreCb).interfaceVersion
- doReturn("multiple_use_hash").`when`(mockIpMemoryStoreCb).interfaceHash
- connector.fetchIpMemoryStore(mockIpMemoryStoreCb)
- verify(mockIpMemoryStoreCb, times(2)).onIpMemoryStoreFetched(any())
+ doReturn(9990005).`when`(mockIpClientCb).interfaceVersion
+ doReturn("multiple_use_hash").`when`(mockIpClientCb).interfaceHash
+ connector.makeIpClient(TEST_IFACE, mockIpClientCb)
+ verify(mockIpClientCb, times(2)).onIpClientCreated(any())
doReturn(9990005).`when`(mockDhcpCb).interfaceVersion
doReturn("multiple_use_hash").`when`(mockDhcpCb).interfaceHash