Fix DscpPolicyTest EBADF
FdEventsReader#stop() calls FdEventsReader#unregisterAndDestroyFd()
which then races against the Os.close() call. If
unregisterAndDestroyFd() gets executed second, it silently ignores the
exception. Removing superfluous Os.close() to fix this.
Test: atest android.net.cts.DscpPolicyTest
Change-Id: I467bbbb29326a1ff5df8565a3e3517a419deec45
diff --git a/tests/cts/net/src/android/net/cts/DscpPolicyTest.kt b/tests/cts/net/src/android/net/cts/DscpPolicyTest.kt
index 1f39fee..886b078 100644
--- a/tests/cts/net/src/android/net/cts/DscpPolicyTest.kt
+++ b/tests/cts/net/src/android/net/cts/DscpPolicyTest.kt
@@ -146,8 +146,9 @@
fun tearDown() {
agentsToCleanUp.forEach { it.unregister() }
callbacksToCleanUp.forEach { cm.unregisterNetworkCallback(it) }
+
+ // reader.stop() cleans up tun fd
reader.handler.post { reader.stop() }
- Os.close(iface.fileDescriptor.fileDescriptor)
handlerThread.quitSafely()
}
@@ -519,4 +520,4 @@
private fun <T> Context.assertHasService(manager: Class<T>): T {
return getSystemService(manager) ?: fail("Service $manager not found")
-}
\ No newline at end of file
+}