[sw/silicon_creator] Add mock_rnd.h

Signed-off-by: Alphan Ulusoy <alphan@google.com>
diff --git a/sw/device/silicon_creator/lib/drivers/BUILD b/sw/device/silicon_creator/lib/drivers/BUILD
index 14111bf..1cc536d 100644
--- a/sw/device/silicon_creator/lib/drivers/BUILD
+++ b/sw/device/silicon_creator/lib/drivers/BUILD
@@ -402,6 +402,19 @@
     ],
 )
 
+cc_library(
+    name = "mock_rnd",
+    testonly = True,
+    hdrs = [
+        "mock_rnd.h",
+        "rnd.h",
+    ],
+    deps = [
+        "//sw/device/silicon_creator/testing:mask_rom_test",
+        "@googletest//:gtest",
+    ],
+)
+
 opentitan_functest(
     name = "rnd_functest",
     srcs = ["rnd_functest.c"],
diff --git a/sw/device/silicon_creator/lib/drivers/mock_rnd.h b/sw/device/silicon_creator/lib/drivers/mock_rnd.h
new file mode 100644
index 0000000..3465a29
--- /dev/null
+++ b/sw/device/silicon_creator/lib/drivers/mock_rnd.h
@@ -0,0 +1,33 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_MOCK_RND_H_
+#define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_MOCK_RND_H_
+
+#include "sw/device/silicon_creator/lib/drivers/rnd.h"
+#include "sw/device/silicon_creator/testing/mask_rom_test.h"
+
+namespace mask_rom_test {
+namespace internal {
+
+/**
+ * Mock class for rnd.c.
+ */
+class MockRnd : public GlobalMock<MockRnd> {
+ public:
+  MOCK_METHOD(uint32_t, Uint32, ());
+};
+
+}  // namespace internal
+
+using MockRnd = testing::StrictMock<internal::MockRnd>;
+
+extern "C" {
+
+uint32_t rnd_uint32(void) { return MockRnd::Instance().Uint32(); }
+
+}  // extern "C"
+}  // namespace mask_rom_test
+
+#endif  // OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_MOCK_RND_H_