Merge "Add test for kernel fcm version." into rvc-dev
diff --git a/treble/vintf/DeviceManifestTest.cpp b/treble/vintf/DeviceManifestTest.cpp
index 515898f..1579e2d 100644
--- a/treble/vintf/DeviceManifestTest.cpp
+++ b/treble/vintf/DeviceManifestTest.cpp
@@ -62,6 +62,24 @@
<< " (but is " << shipping_fcm_version << ")";
}
+TEST_F(DeviceManifestTest, KernelFcmVersion) {
+ Level shipping_fcm_version = VintfObject::GetDeviceHalManifest()->level();
+ Level kernel_fcm_version = VintfObject::GetRuntimeInfo()->kernelLevel();
+
+ if (shipping_fcm_version == Level::UNSPECIFIED ||
+ shipping_fcm_version < Level::R) {
+ GTEST_SKIP() << "Kernel FCM version not enforced on target FCM version "
+ << shipping_fcm_version;
+ }
+ ASSERT_NE(Level::UNSPECIFIED, kernel_fcm_version)
+ << "Kernel FCM version must be specified for target FCM version "
+ << shipping_fcm_version;
+ ASSERT_GE(kernel_fcm_version, shipping_fcm_version)
+ << "Kernel FCM version " << kernel_fcm_version
+ << " must be greater or equal to target FCM version "
+ << shipping_fcm_version;
+}
+
// Tests that deprecated HALs are not in the manifest, unless a higher,
// non-deprecated minor version is in the manifest.
TEST_F(DeviceManifestTest, NoDeprecatedHalsOnManifest) {