Add initial unit tests
Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: Id4850e52073ea6780a978c6cd5a5c439aa8ed846
diff --git a/src/inspur_oem.cpp b/src/inspur_oem.cpp
index 04df3fb..53eb429 100644
--- a/src/inspur_oem.cpp
+++ b/src/inspur_oem.cpp
@@ -2,12 +2,12 @@
#include "inspur_oem.hpp"
+#include "sdbus_wrapper.hpp"
#include "utils.hpp"
#include <ipmid/api.h>
#include <phosphor-logging/log.hpp>
-#include <sdbusplus/bus.hpp>
#include <optional>
@@ -21,6 +21,7 @@
constexpr auto FIRMWARE_BUILDTIME_OFFSET =
FIRMWARE_VERSION_OFFSET + FIRMWARE_VERSION_SIZE;
constexpr auto FIRMWARE_BUILDTIME_SIZE = 20;
+constexpr auto FIRMWARE_MIN_SIZE = FIRMWARE_BUILDTIME_OFFSET;
static_assert(FIRMWARE_VERSION_OFFSET == 1);
static_assert(FIRMWARE_BUILDTIME_OFFSET == 16);
@@ -35,7 +36,7 @@
using namespace inspur;
static void registerOEMFunctions() __attribute__((constructor));
-sdbusplus::bus::bus bus(ipmid_get_sd_bus_connection());
+static auto& bus = getBus();
struct ParsedAssetInfo
{
@@ -120,6 +121,10 @@
void parseBIOSInfo(const std::vector<uint8_t>& data)
{
+ if (data.size() < FIRMWARE_MIN_SIZE)
+ {
+ return;
+ }
bios_version_devname dev = static_cast<bios_version_devname>(data[0]);
std::string version{data.data() + FIRMWARE_VERSION_OFFSET,
data.data() + FIRMWARE_VERSION_SIZE};