diff --git a/tests/hardware_eeprom.cpp b/tests/hardware_eeprom.cpp
new file mode 100644
index 0000000..1732f2d
--- /dev/null
+++ b/tests/hardware_eeprom.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2024 CESNET, https://photonics.cesnet.cz/
+ *
+ * Written by Jan Kundrát <jan.kundrat@cesnet.cz>
+ *
+*/
+
+#include "trompeloeil_doctest.h"
+#include <filesystem>
+#include "ietf-hardware/IETFHardware.h"
+#include "pretty_printers.h"
+#include "test_log_setup.h"
+#include "tests/configure.cmake.h"
+
+using namespace std::literals;
+
+TEST_CASE("EEPROM with UID/EID")
+{
+    using namespace velia::ietf_hardware;
+    using namespace data_reader;
+    TEST_INIT_LOGS;
+    const auto sysfs = CMAKE_CURRENT_SOURCE_DIR + "/tests/sysfs/"s;
+
+    REQUIRE(*hexEEPROM(sysfs, 1, 0x5c, 16, 0, 16) == "1E70C61C941000628C2EA000A000000C");
+
+    auto working = EepromWithUid("x:eeprom", "x", sysfs, 0, 0x52, 256, 256 - 6, 6);
+    REQUIRE(working().data == DataTree{
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/class", "iana-hardware:module"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/parent", "x"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/serial-num", "294100B13DA3"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/state/oper-state", "enabled"},
+            });
+
+    auto missing = EepromWithUid("x:eeprom", "x", sysfs, 0, 0x53, 256, 256 - 6, 6);
+    REQUIRE(missing().data == DataTree{
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/class", "iana-hardware:module"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/parent", "x"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/state/oper-state", "disabled"},
+            });
+
+    auto corrupted = EepromWithUid("x:eeprom", "x", sysfs, 0, 0x53, 16, 2, 6);
+    REQUIRE(corrupted().data == DataTree{
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/class", "iana-hardware:module"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/parent", "x"},
+                {"/ietf-hardware:hardware/component[name='x:eeprom']/state/oper-state", "disabled"},
+            });
+
+    REQUIRE_THROWS_WITH(EepromWithUid("x:eeprom", "x", sysfs, 0, 0x20, 256, 256 - 6, 6),
+                        "EEPROM: no I2C device defined at bus 0 address 0x20");
+
+    REQUIRE_THROWS_WITH(hexEEPROM(sysfs, 0, 0, 10, 5, 6),
+                        "EEPROM: region out of range");
+}
