@@ -116,7 +116,7 @@ TEST(ELFTypesTest, BBAddrMapFeaturesEncodingTest) {
116116 {false , false , false , false , false , false , true , false },
117117 {false , false , false , false , false , false , false , true },
118118 {false , false , false , false , false , false , true , true }}};
119- const std::array<uint8_t , 14 > Encoded = {
119+ const std::array<uint16_t , 14 > Encoded = {
120120 {0b0000 , 0b0001 , 0b0010 , 0b0100 , 0b1000 , 0b0011 , 0b0110 , 0b1110 , 0b1111 ,
121121 0b1'0000 , 0b10'0000 , 0b100'0000 , 0b1000'0000 , 0b1100'0000 }};
122122 for (const auto &[Feat, EncodedVal] : llvm::zip (Decoded, Encoded))
@@ -128,3 +128,14 @@ TEST(ELFTypesTest, BBAddrMapFeaturesEncodingTest) {
128128 EXPECT_EQ (*FeatEnableOrError, Feat);
129129 }
130130}
131+
132+ TEST (ELFTypesTest, BBAddrMapFeaturesInvalidEncodingTest) {
133+ const std::array<std::string, 2 > Errors = {
134+ " invalid encoding for BBAddrMap::Features: 0x100" ,
135+ " invalid encoding for BBAddrMap::Features: 0x1000" };
136+ const std::array<uint16_t , 2 > Values = {{0b1'0000'0000 , 0b1'0000'0000'0000 }};
137+ for (const auto &[Val, Error] : llvm::zip (Values, Errors)) {
138+ EXPECT_THAT_ERROR (BBAddrMap::Features::decode (Val).takeError (),
139+ FailedWithMessage (Error));
140+ }
141+ }
0 commit comments