summaryrefslogtreecommitdiffstats
path: root/vpnor/test/tmpd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vpnor/test/tmpd.cpp')
-rw-r--r--vpnor/test/tmpd.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/vpnor/test/tmpd.cpp b/vpnor/test/tmpd.cpp
new file mode 100644
index 0000000..723bf56
--- /dev/null
+++ b/vpnor/test/tmpd.cpp
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright (C) 2018 IBM Corp.
+
+#include "vpnor/test/tmpd.hpp"
+
+namespace openpower
+{
+namespace virtual_pnor
+{
+namespace test
+{
+
+namespace fs = std::experimental::filesystem;
+
+size_t VpnorRoot::write(const std::string &name, const void *data, size_t len)
+{
+ // write() is for test environment setup - always write to ro section
+ fs::path path = root / "ro" / name;
+
+ if (!fs::exists(path))
+ /* It's not in the ToC */
+ throw std::invalid_argument(name);
+
+ std::ofstream(path).write((const char *)data, len);
+
+ return len;
+}
+
+size_t VpnorRoot::patch(const std::string &name, const void *data, size_t len)
+{
+ if (!fs::exists(root / "ro" / name))
+ /* It's not in the ToC */
+ throw std::invalid_argument(name);
+
+ std::ofstream(root / "patch" / name).write((const char *)data, len);
+
+ return len;
+}
+
+} // test
+} // virtual_pnor
+} // openpower
OpenPOWER on IntegriCloud