test: vpnor: Add create_write_window_ro_partition

The virtual PNOR implementation enforces the read-only attribute of
partitions out of the box. This causes trouble when the host requests a
write window over a read-only partition, as the flush command will fail.
Further, by design, we have open-implies-close-implies-flush semantics,
which means once a flush fails, any subsequent request to open a window
also fails.

We want the daemon to deny attempts to open write windows over a
read-only partition during the CREATE_WRITE_WINDOW request, to avoid
the cascading failures later on.

Change-Id: Ib6bec3d34a8a47e517088dd504f7a74641882f5d
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
diff --git a/test/vpnor/Makefile.am.include b/test/vpnor/Makefile.am.include
index ed637bc..2820b25 100644
--- a/test/vpnor/Makefile.am.include
+++ b/test/vpnor/Makefile.am.include
@@ -289,6 +289,19 @@
 test_vpnor_create_read_window_remap_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
 test_vpnor_create_read_window_remap_LDADD = $(VPNOR_LDADD)
 
+test_vpnor_create_write_window_ro_partition_SOURCES = \
+	$(TEST_MBOX_VPNOR_SRCS) $(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 \
+	%reldir%/create_write_window_ro_partition.cpp
+test_vpnor_create_write_window_ro_partition_LDFLAGS = $(OESDK_TESTCASE_FLAGS)
+test_vpnor_create_write_window_ro_partition_LDADD = $(VPNOR_LDADD)
+
 if VIRTUAL_PNOR_ENABLED
 check_PROGRAMS += \
 	%reldir%/create_pnor_partition_table \
@@ -315,5 +328,8 @@
 	%reldir%/write_patch_resize \
 	%reldir%/dump_flash \
 	%reldir%/create_read_window_size \
-	%reldir%/create_read_window_remap
+	%reldir%/create_read_window_remap \
+	%reldir%/create_write_window_ro_partition
+
+XFAIL_TESTS += %reldir%/create_write_window_ro_partition
 endif