@@ -217,6 +217,29 @@ TEST_F(DbnDecoderTests, TestUpgradeMbp1WithTsOut) {
217217 ASSERT_EQ (&orig, &upgraded);
218218}
219219
220+ TEST_F (DbnDecoderTests, TestNeedsUpgrade) {
221+ struct Case {
222+ VersionUpgradePolicy policy;
223+ std::uint8_t version;
224+ bool expected;
225+ };
226+ constexpr Case kCases [] = {
227+ {VersionUpgradePolicy::AsIs, 1 , false },
228+ {VersionUpgradePolicy::AsIs, 2 , false },
229+ {VersionUpgradePolicy::AsIs, 3 , false },
230+ {VersionUpgradePolicy::UpgradeToV2, 1 , true },
231+ {VersionUpgradePolicy::UpgradeToV2, 2 , false },
232+ {VersionUpgradePolicy::UpgradeToV3, 1 , true },
233+ {VersionUpgradePolicy::UpgradeToV3, 2 , true },
234+ {VersionUpgradePolicy::UpgradeToV3, 3 , false },
235+ };
236+ for (const auto & c : kCases ) {
237+ EXPECT_EQ (DbnDecoder::NeedsUpgrade (c.policy , c.version ), c.expected )
238+ << " policy=" << static_cast <int >(c.policy )
239+ << " version=" << static_cast <int >(c.version );
240+ }
241+ }
242+
220243class DbnDecoderSchemaTests
221244 : public DbnDecoderTests,
222245 public testing::WithParamInterface<std::pair<const char *, std::uint8_t >> {};
0 commit comments