diff --git a/cheriot/BUILD b/cheriot/BUILD
index 0193342..4e700d1 100644
--- a/cheriot/BUILD
+++ b/cheriot/BUILD
@@ -291,7 +291,7 @@
     deps = [
         ":cheriot_top",
         ":debug_command_shell",
-        "@com_github_serge1_elfio//:elfio",
+        "//third_party/elfio",
         "@com_google_absl//absl/container:btree",
         "@com_google_absl//absl/functional:any_invocable",
         "@com_google_absl//absl/log",
diff --git a/cheriot/profiler.cc b/cheriot/profiler.cc
index c20bdc8..9e90cec 100644
--- a/cheriot/profiler.cc
+++ b/cheriot/profiler.cc
@@ -23,7 +23,7 @@
 #include "absl/numeric/bits.h"
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_format.h"
-#include "elfio/elf_types.hpp"
+#include "third_party/elfio/elfio/elf_types.hpp"
 
 namespace mpact::sim::cheriot {
 
diff --git a/cheriot/test/BUILD b/cheriot/test/BUILD
index 08d716c..a7894ae 100644
--- a/cheriot/test/BUILD
+++ b/cheriot/test/BUILD
@@ -30,6 +30,7 @@
         "@com_google_absl//absl/random",
         "@com_google_absl//absl/strings",
         "@com_google_absl//absl/types:span",
+        "@com_google_googletest//:gtest_for_library_testonly",
         "@com_google_mpact-riscv//riscv:riscv_state",
         "@com_google_mpact-sim//mpact/sim/generic:instruction",
         "@com_google_mpact-sim//mpact/sim/util/memory",
@@ -214,3 +215,17 @@
         "@com_google_mpact-sim//mpact/sim/generic:core",
     ],
 )
+
+cc_test(
+    name = "librenode_mpact_cheriot.so_test",
+    size = "small",
+    srcs = ["librenode_mpact_cheriot_so_test.cc"],
+    data = [
+        "//cheriot:renode_mpact_cheriot",
+    ],
+    deps = [
+        "@com_google_absl//absl/debugging:leak_check",
+        "@com_google_absl//absl/strings",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
diff --git a/cheriot/test/librenode_mpact_cheriot_so_test.cc b/cheriot/test/librenode_mpact_cheriot_so_test.cc
new file mode 100644
index 0000000..38a3522
--- /dev/null
+++ b/cheriot/test/librenode_mpact_cheriot_so_test.cc
@@ -0,0 +1,92 @@
+#include <dlfcn.h>
+
+#include <string>
+
+#include "absl/debugging/leak_check.h"
+#include "absl/strings/str_cat.h"
+#include "googlemock/include/gmock/gmock.h"
+
+namespace {
+
+constexpr char kFileName[] = "librenode_mpact_cheriot.so";
+
+constexpr char kDepotPath[] = "cheriot/";
+
+class LibRenodeMpactCheriotSoTest : public ::testing::Test {
+ protected:
+  LibRenodeMpactCheriotSoTest() {
+    std::string path = absl::StrCat(kDepotPath, kFileName);
+    absl::LeakCheckDisabler disabler;  // Ignore leaks from dlopen.
+    lib_ = dlopen(path.c_str(), RTLD_LAZY);
+  }
+
+  ~LibRenodeMpactCheriotSoTest() { dlclose(lib_); }
+
+  void *lib_ = nullptr;
+};
+
+TEST_F(LibRenodeMpactCheriotSoTest, Construct) {
+  EXPECT_NE(dlsym(lib_, "construct"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, ConstructWithSysbus) {
+  EXPECT_NE(dlsym(lib_, "construct_with_sysbus"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, Connect) {
+  EXPECT_NE(dlsym(lib_, "connect"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, ConnectWithSysbus) {
+  EXPECT_NE(dlsym(lib_, "connect_with_sysbus"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, Destruct) {
+  EXPECT_NE(dlsym(lib_, "destruct"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, GetRegInfoSize) {
+  EXPECT_NE(dlsym(lib_, "get_reg_info_size"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, GetRegInfo) {
+  EXPECT_NE(dlsym(lib_, "get_reg_info"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, LoadElf) {
+  EXPECT_NE(dlsym(lib_, "load_elf"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, ReadRegister) {
+  EXPECT_NE(dlsym(lib_, "read_register"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, WriteRegister) {
+  EXPECT_NE(dlsym(lib_, "write_register"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, ReadMemory) {
+  EXPECT_NE(dlsym(lib_, "read_memory"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, WriteMemory) {
+  EXPECT_NE(dlsym(lib_, "write_memory"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, Reset) {
+  EXPECT_NE(dlsym(lib_, "reset"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, Step) {
+  EXPECT_NE(dlsym(lib_, "step"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, SetConfig) {
+  EXPECT_NE(dlsym(lib_, "set_config"), nullptr);
+}
+
+TEST_F(LibRenodeMpactCheriotSoTest, SetIrqValue) {
+  EXPECT_NE(dlsym(lib_, "set_irq_value"), nullptr);
+}
+
+}  // namespace
