[rom, alert] Add unittests to increase coverage
Signed-off-by: Douglas Reis <doreis@lowrisc.org>
diff --git a/sw/device/silicon_creator/lib/drivers/alert_unittest.cc b/sw/device/silicon_creator/lib/drivers/alert_unittest.cc
index f1bd21c..c4d7120 100644
--- a/sw/device/silicon_creator/lib/drivers/alert_unittest.cc
+++ b/sw/device/silicon_creator/lib/drivers/alert_unittest.cc
@@ -30,7 +30,14 @@
}
TEST_F(InitTest, AlertConfigureAlertBadClass) {
- EXPECT_EQ(alert_configure(0, (alert_class_t)-1, kAlertEnableNone),
+ EXPECT_EQ(
+ alert_configure(0, static_cast<alert_class_t>(-1), kAlertEnableNone),
+ kErrorAlertBadClass);
+}
+
+TEST_F(InitTest, LocalAlertConfigureAlertBadClass) {
+ EXPECT_EQ(alert_local_configure(0, static_cast<alert_class_t>(-1),
+ kAlertEnableNone),
kErrorAlertBadClass);
}
@@ -39,10 +46,18 @@
// experience an error when evaluating the enable parameter.
EXPECT_SEC_WRITE32_SHADOWED(
base_ + ALERT_HANDLER_ALERT_CLASS_SHADOWED_0_REG_OFFSET, 0);
- EXPECT_EQ(alert_configure(0, kAlertClassA, (alert_enable_t)-1),
+ EXPECT_EQ(alert_configure(0, kAlertClassA, static_cast<alert_enable_t>(-1)),
kErrorAlertBadEnable);
}
+TEST_F(InitTest, LocalAlertConfigureAlertBadEnable) {
+ EXPECT_SEC_WRITE32_SHADOWED(
+ base_ + ALERT_HANDLER_LOC_ALERT_CLASS_SHADOWED_0_REG_OFFSET, 0);
+ EXPECT_EQ(
+ alert_local_configure(0, kAlertClassA, static_cast<alert_enable_t>(-1)),
+ kErrorAlertBadEnable);
+}
+
TEST_F(InitTest, AlertConfigureAlertClassXNoOperation) {
EXPECT_EQ(alert_configure(0, kAlertClassX, kAlertEnableNone), kErrorOk);
}
@@ -126,6 +141,17 @@
EXPECT_EQ(alert_class_configure(kAlertClassX, &config), kErrorAlertBadClass);
}
+TEST_F(InitTest, AlertConfigureClassAlertBadEnable) {
+ alert_class_config_t config{};
+ EXPECT_EQ(alert_class_configure(kAlertClassA, &config), kErrorAlertBadEnable);
+}
+
+TEST_F(InitTest, AlertConfigureClassAlertBadEscalation) {
+ alert_class_config_t config{.enabled = kAlertEnableLocked};
+ EXPECT_EQ(alert_class_configure(kAlertClassA, &config),
+ kErrorAlertBadEscalation);
+}
+
TEST_F(InitTest, AlertConfigureClassA) {
alert_class_config_t config = {
.enabled = kAlertEnableLocked,
@@ -275,5 +301,16 @@
EXPECT_EQ(alert_class_configure(kAlertClassD, &config), kErrorOk);
}
+class AlertPingTest : public InitTest {};
+
+TEST_F(AlertPingTest, EnableSucess) {
+ EXPECT_SEC_WRITE32_SHADOWED(
+ base_ + ALERT_HANDLER_PING_TIMER_EN_SHADOWED_REG_OFFSET, 1);
+
+ EXPECT_SEC_WRITE32(base_ + ALERT_HANDLER_PING_TIMER_REGWEN_REG_OFFSET, 0);
+
+ EXPECT_EQ(alert_ping_enable(), kErrorOk);
+}
+
} // namespace
} // namespace alert_unittest