From 3fd4ec47060c3e55de54bcb6678160fb5bdd01e4 Mon Sep 17 00:00:00 2001 From: Lev Proleev Date: Mon, 28 Jun 2021 13:10:54 +0100 Subject: [PATCH] Fix ordering of cache files requirements from device Data and model numbers were switched in the AIDL implementation of canonical Device. Bug: 190757709 Test: neuralnetworks_utils_hal_aidl_test Change-Id: I0d95b2d436994ffc877a4e02eb31f449b983e61e --- neuralnetworks/aidl/utils/src/Device.cpp | 2 +- neuralnetworks/aidl/utils/test/DeviceTest.cpp | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/neuralnetworks/aidl/utils/src/Device.cpp b/neuralnetworks/aidl/utils/src/Device.cpp index 0fd453b3c7..e80de0be76 100644 --- a/neuralnetworks/aidl/utils/src/Device.cpp +++ b/neuralnetworks/aidl/utils/src/Device.cpp @@ -119,7 +119,7 @@ nn::GeneralResult> getNumberOfCacheFilesNeededFrom << numberOfCacheFiles.numDataCache << " vs " << nn::kMaxNumberOfCacheFiles << ")"; } - return std::make_pair(numberOfCacheFiles.numDataCache, numberOfCacheFiles.numModelCache); + return std::make_pair(numberOfCacheFiles.numModelCache, numberOfCacheFiles.numDataCache); } } // namespace diff --git a/neuralnetworks/aidl/utils/test/DeviceTest.cpp b/neuralnetworks/aidl/utils/test/DeviceTest.cpp index e53b0a8df9..f121acaf7b 100644 --- a/neuralnetworks/aidl/utils/test/DeviceTest.cpp +++ b/neuralnetworks/aidl/utils/test/DeviceTest.cpp @@ -58,7 +58,7 @@ const std::string kInvalidName = ""; const std::shared_ptr kInvalidDevice; constexpr PerformanceInfo kNoPerformanceInfo = {.execTime = std::numeric_limits::max(), .powerUsage = std::numeric_limits::max()}; -constexpr NumberOfCacheFiles kNumberOfCacheFiles = {.numModelCache = nn::kMaxNumberOfCacheFiles, +constexpr NumberOfCacheFiles kNumberOfCacheFiles = {.numModelCache = nn::kMaxNumberOfCacheFiles - 1, .numDataCache = nn::kMaxNumberOfCacheFiles}; constexpr auto makeStatusOk = [] { return ndk::ScopedAStatus::ok(); }; @@ -300,6 +300,21 @@ TEST(DeviceTest, getSupportedExtensionsDeadObject) { EXPECT_EQ(result.error().code, nn::ErrorStatus::DEAD_OBJECT); } +TEST(DeviceTest, getNumberOfCacheFilesNeeded) { + // setup call + const auto mockDevice = createMockDevice(); + EXPECT_CALL(*mockDevice, getNumberOfCacheFilesNeeded(_)).Times(1); + + // run test + const auto result = Device::create(kName, mockDevice); + + // verify result + ASSERT_TRUE(result.has_value()); + constexpr auto kNumberOfCacheFilesPair = std::make_pair( + kNumberOfCacheFiles.numModelCache, kNumberOfCacheFiles.numDataCache); + EXPECT_EQ(result.value()->getNumberOfCacheFilesNeeded(), kNumberOfCacheFilesPair); +} + TEST(DeviceTest, getNumberOfCacheFilesNeededError) { // setup call const auto mockDevice = createMockDevice();