diff --git a/test/vpnor/Makefile.am.include b/test/vpnor/Makefile.am.include
index 831b146..32b960f 100644
--- a/test/vpnor/Makefile.am.include
+++ b/test/vpnor/Makefile.am.include
@@ -122,6 +122,21 @@
 test_vpnor_toc_overlap_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
 test_vpnor_toc_overlap_LDADD = $(VPNOR_LDADD)
 
+test_vpnor_toc_lookup_found_SOURCES = \
+	$(TEST_MOCK_SRCS) \
+	mboxd_msg.c \
+	mboxd_windows.c \
+	mboxd_lpc.c \
+	mboxd_lpc_virtual.cpp \
+	mboxd_pnor_partition_table.cpp \
+	mboxd_flash_virtual.cpp \
+	pnor_partition.cpp \
+	common.c \
+	pnor_partition_table.cpp \
+	%reldir%/toc_lookup_found.cpp
+test_vpnor_toc_lookup_found_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
+test_vpnor_toc_lookup_found_LDADD = $(VPNOR_LDADD)
+
 if VIRTUAL_PNOR_ENABLED
 check_PROGRAMS += \
 	%reldir%/create_pnor_partition_table \
@@ -136,5 +151,6 @@
 	%reldir%/toc_no_end \
 	%reldir%/toc_no_version \
 	%reldir%/toc_flags \
-	%reldir%/toc_overlap
+	%reldir%/toc_overlap \
+	%reldir%/toc_lookup_found
 endif
diff --git a/test/vpnor/toc_lookup_found.cpp b/test/vpnor/toc_lookup_found.cpp
new file mode 100644
index 0000000..c98b718
--- /dev/null
+++ b/test/vpnor/toc_lookup_found.cpp
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright (C) 2018 IBM Corp.
+#include <assert.h>
+#include <string.h>
+
+#include "config.h"
+#include "pnor_partition_table.hpp"
+
+extern "C" {
+#include "test/mbox.h"
+#include "test/system.h"
+}
+
+#include "test/vpnor/tmpd.hpp"
+
+static constexpr auto BLOCK_SIZE = 0x1000;
+static constexpr auto ERASE_SIZE = BLOCK_SIZE;
+static constexpr auto PNOR_SIZE = 64 * 1024 * 1024;
+static constexpr auto MEM_SIZE = 32 * 1024 * 1024;
+static constexpr auto N_WINDOWS = 1;
+static constexpr auto WINDOW_SIZE = BLOCK_SIZE * 2;
+
+const std::string toc[] = {
+    "partition01=ONE,00001000,00002000,80,",
+    "partition02=TWO,00002000,00004000,80,",
+    "partition03=THREE,00004000,00008000,80,",
+};
+
+int main()
+{
+    namespace test = openpower::virtual_pnor::test;
+    namespace vpnor = openpower::virtual_pnor;
+
+    struct mbox_context* ctx;
+
+    system_set_reserved_size(MEM_SIZE);
+    system_set_mtd_sizes(MEM_SIZE, ERASE_SIZE);
+
+    ctx = mbox_create_test_context(N_WINDOWS, WINDOW_SIZE);
+
+    test::VpnorRoot root(ctx, toc, BLOCK_SIZE);
+    vpnor::partition::Table table(root.ro(), BLOCK_SIZE, PNOR_SIZE);
+
+    const struct pnor_partition& part = table.partition("TWO");
+    assert(part.data.id == 2);
+    assert(part.data.base == 2);
+    assert(part.data.size == 2);
+
+    return 0;
+}
