Merge "Bpf Util Lib in Common Location"
diff --git a/staticlibs/device/com/android/net/module/util/BpfMap.java b/staticlibs/device/com/android/net/module/util/BpfMap.java
index d171b11..d4ce83b 100644
--- a/staticlibs/device/com/android/net/module/util/BpfMap.java
+++ b/staticlibs/device/com/android/net/module/util/BpfMap.java
@@ -30,7 +30,6 @@
import java.nio.ByteOrder;
import java.util.NoSuchElementException;
import java.util.Objects;
-import java.util.function.BiConsumer;
/**
* BpfMap is a key -> value mapping structure that is designed to maintained the bpf map entries.
diff --git a/staticlibs/testutils/devicetests/com/android/testutils/TestBpfMap.java b/staticlibs/testutils/devicetests/com/android/testutils/TestBpfMap.java
index 73bc3a9..3883511 100644
--- a/staticlibs/testutils/devicetests/com/android/testutils/TestBpfMap.java
+++ b/staticlibs/testutils/devicetests/com/android/testutils/TestBpfMap.java
@@ -24,11 +24,11 @@
import com.android.net.module.util.IBpfMap.ThrowingBiConsumer;
import com.android.net.module.util.Struct;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -42,7 +42,7 @@
* @param <V> the value type
*/
public class TestBpfMap<K extends Struct, V extends Struct> extends BpfMap<K, V> {
- private final HashMap<K, V> mMap = new HashMap<K, V>();
+ private final ConcurrentHashMap<K, V> mMap = new ConcurrentHashMap<>();
public TestBpfMap(final Class<K> key, final Class<V> value) {
super(key, value);
diff --git a/staticlibs/testutils/devicetests/com/android/testutils/TestableNetworkCallback.kt b/staticlibs/testutils/devicetests/com/android/testutils/TestableNetworkCallback.kt
index c2b5a5c..dffdbe8 100644
--- a/staticlibs/testutils/devicetests/com/android/testutils/TestableNetworkCallback.kt
+++ b/staticlibs/testutils/devicetests/com/android/testutils/TestableNetworkCallback.kt
@@ -41,6 +41,7 @@
object NULL_NETWORK : Network(-1)
object ANY_NETWORK : Network(-2)
+fun anyNetwork() = ANY_NETWORK
private val Int.capabilityName get() = NetworkCapabilities.capabilityNameOf(this)
@@ -287,7 +288,7 @@
fun expectAvailableCallbacks(
net: Network,
suspended: Boolean = false,
- validated: Boolean = true,
+ validated: Boolean? = true,
blocked: Boolean = false,
tmt: Long = defaultTimeoutMs
) {
@@ -309,14 +310,18 @@
private fun expectAvailableCallbacksCommon(
net: Network,
suspended: Boolean,
- validated: Boolean,
+ validated: Boolean?,
tmt: Long
) {
expectCallback<Available>(net, tmt)
if (suspended) {
expectCallback<Suspended>(net, tmt)
}
- expectCapabilitiesThat(net, tmt) { validated == it.hasCapability(NET_CAPABILITY_VALIDATED) }
+ expectCapabilitiesThat(net, tmt) {
+ validated == null || validated == it.hasCapability(
+ NET_CAPABILITY_VALIDATED
+ )
+ }
expectCallback<LinkPropertiesChanged>(net, tmt)
}
@@ -385,7 +390,7 @@
val network = n ?: NULL_NETWORK
// TODO : remove this .java access if the tests ever use kotlin-reflect. At the time of
// this writing this would be the only use of this library in the tests.
- assertTrue(type.java.isInstance(it) && it.network == network,
+ assertTrue(type.java.isInstance(it) && (ANY_NETWORK === n || it.network == network),
"Unexpected callback : $it, expected ${type.java} with Network[$network]")
} as T