summaryrefslogtreecommitdiff
path: root/json4cpp/tests/src/test_utils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'json4cpp/tests/src/test_utils.hpp')
-rw-r--r--json4cpp/tests/src/test_utils.hpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/json4cpp/tests/src/test_utils.hpp b/json4cpp/tests/src/test_utils.hpp
new file mode 100644
index 0000000000..37afa21e8b
--- /dev/null
+++ b/json4cpp/tests/src/test_utils.hpp
@@ -0,0 +1,33 @@
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++ (supporting code)
+// | | |__ | | | | | | version 3.12.0
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2026 Niels Lohmann <https://nlohmann.me>
+// SPDX-License-Identifier: MIT
+
+#pragma once
+
+#include <cstdint> // uint8_t
+#include <fstream> // ifstream, istreambuf_iterator, ios
+#include <vector> // vector
+
+namespace utils
+{
+
+inline std::vector<std::uint8_t> read_binary_file(const std::string& filename)
+{
+ std::ifstream file(filename, std::ios::binary);
+ file.unsetf(std::ios::skipws);
+
+ file.seekg(0, std::ios::end);
+ const auto size = file.tellg();
+ file.seekg(0, std::ios::beg);
+
+ std::vector<std::uint8_t> byte_vector;
+ byte_vector.reserve(static_cast<std::size_t>(size));
+ byte_vector.insert(byte_vector.begin(), std::istream_iterator<std::uint8_t>(file), std::istream_iterator<std::uint8_t>());
+ return byte_vector;
+}
+
+} // namespace utils