blob: 0bb26ecbd583eaf63427939213cd50afd26356ed [file] [log] [blame]
Chirag Sharma50427252020-08-11 12:11:38 -05001// SPDX-License-Identifier: Apache-2.0
Chirag Sharma50427252020-08-11 12:11:38 -05002#include <dump_serialize.hpp>
Jayanth Othayoth0af74a52021-04-08 03:55:21 -05003
4#include <cstdlib>
Chirag Sharma50427252020-08-11 12:11:38 -05005#include <exception>
6#include <filesystem>
7#include <set>
8#include <string>
9
10#include <gtest/gtest.h>
11
12namespace fs = std::filesystem;
13
14class TestDumpSerial : public ::testing::Test
15{
16 public:
17 TestDumpSerial()
Jayanth Othayoth0af74a52021-04-08 03:55:21 -050018 {}
Chirag Sharma50427252020-08-11 12:11:38 -050019
20 void SetUp()
21 {
22 char tmpdir[] = "/tmp/dump.XXXXXX";
23 auto dirPtr = mkdtemp(tmpdir);
24 if (dirPtr == NULL)
25 {
26 throw std::bad_alloc();
27 }
28 dumpDir = std::string(dirPtr);
29 fs::create_directories(dumpDir);
30 dumpFile = dumpDir;
31 dumpFile /= "elogid";
32 }
33 void TearDown()
34 {
35 fs::remove_all(dumpDir);
36 }
37
38 std::string dumpDir;
39 fs::path dumpFile;
40};
41
42TEST_F(TestDumpSerial, Serialization)
43{
44 using ElogList = std::set<uint32_t>;
45 ElogList e;
46 e.insert(1);
47 e.insert(2);
48 e.insert(3);
49 phosphor::dump::elog::serialize(e, dumpFile.c_str());
50 bool value = phosphor::dump::elog::deserialize(dumpFile.c_str(), e);
51 EXPECT_EQ(value, true);
52}
53
54TEST_F(TestDumpSerial, DeserializationFalseCase)
55{
56 using ElogList = std::set<uint32_t>;
57 ElogList e;
58 e.insert(1);
59 bool value = phosphor::dump::elog::deserialize(dumpFile.c_str(), e);
60 EXPECT_EQ(value, false);
61}
62
63TEST(DumpDeSerialPath, DeserializationFalsePath)
64{
65 using ElogList = std::set<uint32_t>;
66 ElogList e;
67 e.insert(1);
68 // Providing dummy path
69 bool value = phosphor::dump::elog::deserialize("/tmp/Fake/serial", e);
70 EXPECT_EQ(value, false);
71}