diff --git a/test/vpnor/Makefile.am.include b/test/vpnor/Makefile.am.include
index 68eeb7b..4defe01 100644
--- a/test/vpnor/Makefile.am.include
+++ b/test/vpnor/Makefile.am.include
@@ -100,6 +100,13 @@
 test_vpnor_toc_no_version_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
 test_vpnor_toc_no_version_LDADD = $(VPNOR_LDADD)
 
+test_vpnor_toc_flags_SOURCES = \
+	common.c \
+	pnor_partition_table.cpp \
+	%reldir%/toc_flags.cpp
+test_vpnor_toc_flags_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
+test_vpnor_toc_flags_LDADD = $(VPNOR_LDADD)
+
 if VIRTUAL_PNOR_ENABLED
 check_PROGRAMS += \
 	%reldir%/create_pnor_partition_table \
@@ -112,5 +119,8 @@
 	%reldir%/toc_start_gt_end \
 	%reldir%/toc_no_start \
 	%reldir%/toc_no_end \
-	%reldir%/toc_no_version
+	%reldir%/toc_no_version \
+	%reldir%/toc_flags
+
+XFAIL_TESTS += %reldir%/toc_flags
 endif
diff --git a/test/vpnor/toc_flags.cpp b/test/vpnor/toc_flags.cpp
new file mode 100644
index 0000000..6e134e5
--- /dev/null
+++ b/test/vpnor/toc_flags.cpp
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright (C) 2018 IBM Corp.
+
+#include "config.h"
+#include <assert.h>
+
+#include "common.h"
+#include "pnor_partition_defs.h"
+#include "pnor_partition_table.hpp"
+
+static constexpr auto BLOCK_SIZE = 4 * 1024;
+static constexpr auto DATA_MASK = ((1 << 24) - 1);
+
+int main()
+{
+    namespace vpnor = openpower::virtual_pnor;
+
+    struct pnor_partition part;
+    std::string line;
+
+    mbox_vlog = mbox_log_console;
+    verbosity = MBOX_LOG_DEBUG;
+
+    line = "partition01=FOO,00001000,00002000,80,ECC";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert((part.data.user.data[0]) == PARTITION_ECC_PROTECTED);
+    assert(!(part.data.user.data[1] & DATA_MASK));
+
+    line = "partition01=FOO,00001000,00002000,80,PRESERVED";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert((part.data.user.data[1] & DATA_MASK) == PARTITION_PRESERVED);
+
+    line = "partition01=FOO,00001000,00002000,80,READONLY";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert((part.data.user.data[1] & DATA_MASK) == PARTITION_READONLY);
+
+    /* BACKUP is unimplemented */
+    line = "partition01=FOO,00001000,00002000,80,BACKUP";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert(!(part.data.user.data[1] & DATA_MASK));
+
+    line = "partition01=FOO,00001000,00002000,80,REPROVISION";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert((part.data.user.data[1] & DATA_MASK) == PARTITION_REPROVISION);
+
+    line = "partition01=FOO,00001000,00002000,80,VOLATILE";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert((part.data.user.data[1] & DATA_MASK) == PARTITION_VOLATILE);
+
+    line = "partition01=FOO,00001000,00002000,80,CLEARECC";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert((part.data.user.data[1] & DATA_MASK) == PARTITION_CLEARECC);
+
+    line = "partition01=FOO,00001000,00002000,80,READWRITE";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert(((part.data.user.data[1] & DATA_MASK) ^ PARTITION_READONLY) ==
+           PARTITION_READONLY);
+
+    line = "partition01=FOO,00001000,00002000,80,";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert(!(part.data.user.data[1] & DATA_MASK));
+
+    line = "partition01=FOO,00001000,00002000,80,junk";
+    vpnor::parseTocLine(line, BLOCK_SIZE, part);
+    assert(!(part.data.user.data[0]));
+    assert(!(part.data.user.data[1] & DATA_MASK));
+
+    return 0;
+}
