From 09231fb6e217d14a4e688e8831edb0c207304925 Mon Sep 17 00:00:00 2001 From: Etan Cohen Date: Sat, 6 Apr 2019 10:21:37 -0700 Subject: [PATCH] [AWARE] Add unit test - fix hashing bug Adding unit tests to verify hashing code uncovered a bug (hashing arrays) - fixed. Bug: 130051430 Test: atest android.net.wifi Test: atest com.android.server.wifi Test: ACTS ThroughputTest:test_iperf_single_ndp_aware_only_ib Change-Id: I4c654dd656b4bd1bce8077c73c66f458d103bc86 --- wifi/java/android/net/wifi/aware/PublishConfig.java | 5 +++-- wifi/java/android/net/wifi/aware/SubscribeConfig.java | 6 ++++-- wifi/java/android/net/wifi/aware/WifiAwareManager.java | 2 +- .../src/android/net/wifi/aware/WifiAwareManagerTest.java | 3 +++ 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/wifi/java/android/net/wifi/aware/PublishConfig.java b/wifi/java/android/net/wifi/aware/PublishConfig.java index f0c7967d653b7..1886b7ef4c8db 100644 --- a/wifi/java/android/net/wifi/aware/PublishConfig.java +++ b/wifi/java/android/net/wifi/aware/PublishConfig.java @@ -172,8 +172,9 @@ public final class PublishConfig implements Parcelable { @Override public int hashCode() { - return Objects.hash(mServiceName, mServiceSpecificInfo, mMatchFilter, mPublishType, mTtlSec, - mEnableTerminateNotification, mEnableRanging); + return Objects.hash(Arrays.hashCode(mServiceName), Arrays.hashCode(mServiceSpecificInfo), + Arrays.hashCode(mMatchFilter), mPublishType, mTtlSec, mEnableTerminateNotification, + mEnableRanging); } /** diff --git a/wifi/java/android/net/wifi/aware/SubscribeConfig.java b/wifi/java/android/net/wifi/aware/SubscribeConfig.java index f47749039a264..f0f758170bf23 100644 --- a/wifi/java/android/net/wifi/aware/SubscribeConfig.java +++ b/wifi/java/android/net/wifi/aware/SubscribeConfig.java @@ -205,8 +205,10 @@ public final class SubscribeConfig implements Parcelable { @Override public int hashCode() { - int result = Objects.hash(mServiceName, mServiceSpecificInfo, mMatchFilter, mSubscribeType, - mTtlSec, mEnableTerminateNotification, mMinDistanceMmSet, mMaxDistanceMmSet); + int result = Objects.hash(Arrays.hashCode(mServiceName), + Arrays.hashCode(mServiceSpecificInfo), Arrays.hashCode(mMatchFilter), + mSubscribeType, mTtlSec, mEnableTerminateNotification, mMinDistanceMmSet, + mMaxDistanceMmSet); if (mMinDistanceMmSet) { result = Objects.hash(result, mMinDistanceMm); diff --git a/wifi/java/android/net/wifi/aware/WifiAwareManager.java b/wifi/java/android/net/wifi/aware/WifiAwareManager.java index c9b0b12fa87c1..41a412b1d1344 100644 --- a/wifi/java/android/net/wifi/aware/WifiAwareManager.java +++ b/wifi/java/android/net/wifi/aware/WifiAwareManager.java @@ -406,7 +406,7 @@ public class WifiAwareManager { if (!WifiAwareUtils.isLegacyVersion(mContext, Build.VERSION_CODES.Q)) { throw new UnsupportedOperationException( - "API not deprecated - use WifiAwareNetworkSpecifier.Builder"); + "API deprecated - use WifiAwareNetworkSpecifier.Builder"); } if (role != WIFI_AWARE_DATA_PATH_ROLE_INITIATOR diff --git a/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java b/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java index 905540e081ed3..52bb28485c723 100644 --- a/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java +++ b/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java @@ -709,6 +709,7 @@ public class WifiAwareManagerTest { ConfigRequest rereadConfigRequest = ConfigRequest.CREATOR.createFromParcel(parcelR); assertEquals(configRequest, rereadConfigRequest); + assertEquals(configRequest.hashCode(), rereadConfigRequest.hashCode()); } /* @@ -801,6 +802,7 @@ public class WifiAwareManagerTest { SubscribeConfig rereadSubscribeConfig = SubscribeConfig.CREATOR.createFromParcel(parcelR); assertEquals(subscribeConfig, rereadSubscribeConfig); + assertEquals(subscribeConfig.hashCode(), rereadSubscribeConfig.hashCode()); } @Test(expected = IllegalArgumentException.class) @@ -892,6 +894,7 @@ public class WifiAwareManagerTest { PublishConfig rereadPublishConfig = PublishConfig.CREATOR.createFromParcel(parcelR); assertEquals(publishConfig, rereadPublishConfig); + assertEquals(publishConfig.hashCode(), rereadPublishConfig.hashCode()); } @Test(expected = IllegalArgumentException.class)