Fix boot VTS GetSuffix test
Rather than requiring "_a" and "_b" specifically, check format and
uniqueness of each suffix.
Bug: 69795155
Test: vts-tradefed run vts -m VtsHalBootV1_0Target
Change-Id: Iaf626a31b499ef74fd3c21b0a0757424a0def457
Signed-off-by: Connor O'Brien <connoro@google.com>
diff --git a/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp b/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp
index d1d7f73..2f2052c 100644
--- a/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp
+++ b/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp
@@ -24,6 +24,8 @@
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
+#include <unordered_set>
+
using ::android::hardware::boot::V1_0::IBootControl;
using ::android::hardware::boot::V1_0::CommandResult;
using ::android::hardware::boot::V1_0::BoolResult;
@@ -32,6 +34,7 @@
using ::android::hardware::Return;
using ::android::sp;
using std::string;
+using std::unordered_set;
using std::vector;
// Test environment for Boot HIDL HAL.
@@ -168,14 +171,18 @@
// Sanity check Boot::getSuffix() on good and bad inputs.
TEST_F(BootHidlTest, GetSuffix) {
string suffixStr;
- vector<string> correctSuffixes = {"_a", "_b"};
+ unordered_set<string> suffixes;
auto cb = [&](hidl_string suffix) { suffixStr = suffix.c_str(); };
- for (Slot i = 0; i < 2; i++) {
+ for (Slot i = 0; i < boot->getNumberSlots(); i++) {
CommandResult cr;
Return<void> result = boot->getSuffix(i, cb);
EXPECT_TRUE(result.isOk());
- ASSERT_EQ(0, suffixStr.compare(correctSuffixes[i]));
+ ASSERT_EQ('_', suffixStr[0]);
+ ASSERT_LE((unsigned)2, suffixStr.size());
+ suffixes.insert(suffixStr);
}
+ // All suffixes should be unique
+ ASSERT_EQ(boot->getNumberSlots(), suffixes.size());
{
string emptySuffix = "";
Return<void> result = boot->getSuffix(boot->getNumberSlots(), cb);