blob: 04fb6cf02f14c176d7e6b93f84c359e727ba777e [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0
#include <cstdlib>
#include <dump_serialize.hpp>
#include <exception>
#include <filesystem>
#include <set>
#include <string>
#include <gtest/gtest.h>
namespace fs = std::filesystem;
class TestDumpSerial : public ::testing::Test
{
public:
TestDumpSerial()
{
}
void SetUp()
{
char tmpdir[] = "/tmp/dump.XXXXXX";
auto dirPtr = mkdtemp(tmpdir);
if (dirPtr == NULL)
{
throw std::bad_alloc();
}
dumpDir = std::string(dirPtr);
fs::create_directories(dumpDir);
dumpFile = dumpDir;
dumpFile /= "elogid";
}
void TearDown()
{
fs::remove_all(dumpDir);
}
std::string dumpDir;
fs::path dumpFile;
};
TEST_F(TestDumpSerial, Serialization)
{
using ElogList = std::set<uint32_t>;
ElogList e;
e.insert(1);
e.insert(2);
e.insert(3);
phosphor::dump::elog::serialize(e, dumpFile.c_str());
bool value = phosphor::dump::elog::deserialize(dumpFile.c_str(), e);
EXPECT_EQ(value, true);
}
TEST_F(TestDumpSerial, DeserializationFalseCase)
{
using ElogList = std::set<uint32_t>;
ElogList e;
e.insert(1);
bool value = phosphor::dump::elog::deserialize(dumpFile.c_str(), e);
EXPECT_EQ(value, false);
}
TEST(DumpDeSerialPath, DeserializationFalsePath)
{
using ElogList = std::set<uint32_t>;
ElogList e;
e.insert(1);
// Providing dummy path
bool value = phosphor::dump::elog::deserialize("/tmp/Fake/serial", e);
EXPECT_EQ(value, false);
}