Allow to disable certain checks in VintfObject::CheckCompatibility
Allow to disable AVB version checks.
Test: builds
Test: vintf_object_test
Test: libvintf_test
Bug: 38325029
Bug: 65270190
Change-Id: Iadc2408f635a5487a5af4e19f516147930f4bc4b
Merged-In: Iadc2408f635a5487a5af4e19f516147930f4bc4b
diff --git a/test/main.cpp b/test/main.cpp
index 94a4d8e..495b35c 100644
--- a/test/main.cpp
+++ b/test/main.cpp
@@ -771,8 +771,7 @@
CompatibilityMatrix cm = testMatrix(std::move(kernel));
EXPECT_FALSE(ki.checkCompatibility(cm)) << "Value shouldn't match for integer";
}
-// TODO(b/38325029) enable avb check when avb version is injected to fwk matrix.
-#if 0
+
RuntimeInfo badAvb = testRuntimeInfo();
CompatibilityMatrix cm = testMatrix(MatrixKernel(KernelVersion{3, 18, 31}, {}));
{
@@ -792,7 +791,6 @@
setAvb(badAvb, {2, 3}, {2, 1});
EXPECT_TRUE(badAvb.checkCompatibility(cm, &error));
}
-#endif
}
TEST_F(LibVintfTest, MissingAvb) {
@@ -809,6 +807,27 @@
EXPECT_EQ(getAvb(cm), Version(0, 0));
}
+TEST_F(LibVintfTest, DisableAvb) {
+ std::string xml =
+ "<compatibility-matrix version=\"1.0\" type=\"framework\">\n"
+ " <kernel version=\"3.18.31\"></kernel>"
+ " <sepolicy>\n"
+ " <kernel-sepolicy-version>30</kernel-sepolicy-version>\n"
+ " <sepolicy-version>25.5</sepolicy-version>\n"
+ " </sepolicy>\n"
+ " <avb>\n"
+ " <vbmeta-version>1.0</vbmeta-version>\n"
+ " </avb>\n"
+ "</compatibility-matrix>\n";
+ CompatibilityMatrix cm;
+ EXPECT_TRUE(gCompatibilityMatrixConverter(&cm, xml));
+ RuntimeInfo ki = testRuntimeInfo();
+ std::string error;
+ EXPECT_FALSE(ki.checkCompatibility(cm, &error));
+ EXPECT_STREQ(error.c_str(), "AVB version 2.1 does not match framework matrix 1.0");
+ EXPECT_TRUE(ki.checkCompatibility(cm, &error, DISABLE_AVB_CHECK)) << error;
+}
+
// This is the test extracted from VINTF Object doc
TEST_F(LibVintfTest, HalCompat) {
CompatibilityMatrix matrix;