blob: 04fb6cf02f14c176d7e6b93f84c359e727ba777e [file] [log] [blame]
Chirag Sharma50427252020-08-11 12:11:38 -05001// SPDX-License-Identifier: Apache-2.0
2#include <cstdlib>
3#include <dump_serialize.hpp>
4#include <exception>
5#include <filesystem>
6#include <set>
7#include <string>
8
9#include <gtest/gtest.h>
10
11namespace fs = std::filesystem;
12
13class TestDumpSerial : public ::testing::Test
14{
15 public:
16 TestDumpSerial()
17 {
18 }
19
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}