test: read window from partition file

Resolves openbmc/openbmc#1440

Change-Id: I8e6ae35e4c5ba2936a578349e6cea464de6ab40d
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/mboxd_pnor_partition_table.cpp b/mboxd_pnor_partition_table.cpp
index 72a8953..87de2b9 100644
--- a/mboxd_pnor_partition_table.cpp
+++ b/mboxd_pnor_partition_table.cpp
@@ -1,6 +1,7 @@
 #include "mboxd_pnor_partition_table.h"
 #include "mbox.h"
 #include "pnor_partition_table.hpp"
+#include <experimental/filesystem>
 
 struct vpnor_partition_table
 {
@@ -9,14 +10,24 @@
 
 void vpnor_create_partition_table(struct mbox_context *context)
 {
-    if (context)
+    if (context && !context->vpnor)
     {
-        if (!context->vpnor)
-        {
-            context->vpnor = new vpnor_partition_table;
-            context->vpnor->table =
-                new openpower::virtual_pnor::partition::Table;
-        }
+        context->vpnor = new vpnor_partition_table;
+        context->vpnor->table =
+            new openpower::virtual_pnor::partition::Table;
+    }
+}
+
+void vpnor_create_partition_table_from_path(struct mbox_context *context,
+                                            const char *path)
+{
+    std::experimental::filesystem::path dir(path);
+
+    if (context && !context->vpnor)
+    {
+        context->vpnor = new vpnor_partition_table;
+        context->vpnor->table =
+            new openpower::virtual_pnor::partition::Table(std::move(dir));
     }
 }