diff options
author | James Mattis <jmattis@google.com> | 2021-12-07 15:47:11 -0800 |
---|---|---|
committer | James Mattis <jmattis@google.com> | 2021-12-07 16:43:33 -0800 |
commit | 6f66d134c8e3a41e4aaaa6c88c0a2df35427f268 (patch) | |
tree | d29ae528c6a90e6ab8c75b7dfe36e94b8360ec7a /java | |
parent | d4f2d3fa05bcceb646c63988afc4900858bd0b01 (diff) | |
download | ethernet-6f66d134c8e3a41e4aaaa6c88c0a2df35427f268.tar.gz |
Adding test coverage for eth transport overrides
Added test coverage regarding how EthernetTracker consumes the xml
config as set in config_ethernet_interfaces. Additionally, adding
test coverage for transport override functionality in
EthernetNetworkFactory.
Bug: 206170402
Test: atest com.android.server.ethernet.EthernetTrackerTest
&& atest com.android.server.ethernet.EthernetNetworkFactoryTest
Change-Id: I3d55a230d3f28154ed6fdac6d63ed57bf589d3bd
Diffstat (limited to 'java')
-rw-r--r-- | java/com/android/server/ethernet/EthernetTracker.java | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/java/com/android/server/ethernet/EthernetTracker.java b/java/com/android/server/ethernet/EthernetTracker.java index d79c7a9..86aefbc 100644 --- a/java/com/android/server/ethernet/EthernetTracker.java +++ b/java/com/android/server/ethernet/EthernetTracker.java @@ -18,6 +18,7 @@ package com.android.server.ethernet; import static android.net.TestNetworkManager.TEST_TAP_PREFIX; +import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.net.IEthernetServiceListener; @@ -453,21 +454,24 @@ final class EthernetTracker { * <interface name|mac address>;[Network Capabilities];[IP config];[Override Transport]} */ private void parseEthernetConfig(String configString) { - String[] tokens = configString.split(";", /* limit of tokens */ 4); - String name = tokens[0]; - String capabilities = tokens.length > 1 ? tokens[1] : null; - String transport = tokens.length > 3 ? tokens[3] : null; + final EthernetTrackerConfig config = createEthernetTrackerConfig(configString); NetworkCapabilities nc = createNetworkCapabilities( - !TextUtils.isEmpty(capabilities) /* clear default capabilities */, capabilities, - transport).build(); - mNetworkCapabilities.put(name, nc); + !TextUtils.isEmpty(config.mCapabilities) /* clear default capabilities */, + config.mCapabilities, config.mTransport).build(); + mNetworkCapabilities.put(config.mName, nc); - if (tokens.length > 2 && !TextUtils.isEmpty(tokens[2])) { - IpConfiguration ipConfig = parseStaticIpConfiguration(tokens[2]); - mIpConfigurations.put(name, ipConfig); + if (null != config.mIpConfig) { + IpConfiguration ipConfig = parseStaticIpConfiguration(config.mIpConfig); + mIpConfigurations.put(config.mName, ipConfig); } } + @VisibleForTesting + static EthernetTrackerConfig createEthernetTrackerConfig(@NonNull final String configString) { + Objects.requireNonNull(configString, "EthernetTrackerConfig requires non-null config"); + return new EthernetTrackerConfig(configString.split(";", /* limit of tokens */ 4)); + } + private static NetworkCapabilities createDefaultNetworkCapabilities(boolean isTestIface) { NetworkCapabilities.Builder builder = createNetworkCapabilities( false /* clear default capabilities */, null, null) @@ -672,4 +676,20 @@ final class EthernetTracker { mFactory.dump(fd, pw, args); }); } + + @VisibleForTesting + static class EthernetTrackerConfig { + final String mName; + final String mCapabilities; + final String mIpConfig; + final String mTransport; + + EthernetTrackerConfig(@NonNull final String[] tokens) { + Objects.requireNonNull(tokens, "EthernetTrackerConfig requires non-null tokens"); + mName = tokens[0]; + mCapabilities = tokens.length > 1 ? tokens[1] : null; + mIpConfig = tokens.length > 2 && !TextUtils.isEmpty(tokens[2]) ? tokens[2] : null; + mTransport = tokens.length > 3 ? tokens[3] : null; + } + } } |