Add finalizer to check whether destroy was called
Logs wtf if destroy() was not called.
Test: atest NsdManagerDownstreamTetheringTest
Change-Id: I1c1693113c4ce4be8121a5af1bd4b7082eec15a3
diff --git a/tests/cts/net/util/java/android/net/cts/util/EthernetTestInterface.kt b/tests/cts/net/util/java/android/net/cts/util/EthernetTestInterface.kt
index f254cb9..a93430c 100644
--- a/tests/cts/net/util/java/android/net/cts/util/EthernetTestInterface.kt
+++ b/tests/cts/net/util/java/android/net/cts/util/EthernetTestInterface.kt
@@ -26,10 +26,12 @@
import android.net.TestNetworkInterface
import android.net.cts.util.EthernetTestInterface.EthernetStateListener.CallbackEntry.InterfaceStateChanged
import android.os.Handler
+import android.util.Log
import com.android.net.module.util.ArrayTrackRecord
import com.android.testutils.runAsShell
import kotlin.test.assertNotNull
+private const val TAG = "EthernetTestInterface"
private const val TIMEOUT_MS = 5_000L
/**
@@ -75,6 +77,7 @@
val name get() = testIface.interfaceName
private val listener = EthernetStateListener(name)
private val em = context.getSystemService(EthernetManager::class.java)!!
+ private var cleanedUp = false
init{
em.addInterfaceStateListener(handler::post, listener)
@@ -98,5 +101,14 @@
em.setIncludeTestInterfaces(false)
}
em.removeInterfaceStateListener(listener)
+
+ cleanedUp = true
+ }
+
+ protected fun finalize() {
+ if (!cleanedUp) {
+ Log.wtf(TAG, "destroy() was not called for interface $name.")
+ destroy()
+ }
}
}