blob: 9683d4981e848662d30a137ebe17b80faa778b3b [file] [log] [blame]
George Liu6492f522020-06-16 10:34:05 +08001#include "libpldm/base.h"
2#include "libpldm/bios.h"
3
Sampa Misra032bd502019-03-06 05:03:22 -06004#include "libpldmresponder/bios.hpp"
Sampa Misrab37be312019-07-03 02:26:41 -05005#include "libpldmresponder/bios_table.hpp"
Sampa Misra032bd502019-03-06 05:03:22 -06006
7#include <string.h>
8
9#include <array>
John Wang02700402019-10-06 16:34:29 +080010#include <cstring>
Sampa Misra032bd502019-03-06 05:03:22 -060011#include <ctime>
Sampa Misrab37be312019-07-03 02:26:41 -050012#include <filesystem>
Sampa Misra032bd502019-03-06 05:03:22 -060013
Sampa Misra032bd502019-03-06 05:03:22 -060014#include <gtest/gtest.h>
15
Sampa Misrab37be312019-07-03 02:26:41 -050016using namespace pldm;
Sampa Misra032bd502019-03-06 05:03:22 -060017using namespace pldm::responder;
Sampa Misrab37be312019-07-03 02:26:41 -050018using namespace pldm::responder::bios;
Sampa Misra032bd502019-03-06 05:03:22 -060019using namespace pldm::responder::utils;
20
21TEST(epochToBCDTime, testTime)
22{
23 struct tm time
George Liu6492f522020-06-16 10:34:05 +080024 {};
Sampa Misra032bd502019-03-06 05:03:22 -060025 time.tm_year = 119;
26 time.tm_mon = 3;
27 time.tm_mday = 13;
28 time.tm_hour = 5;
29 time.tm_min = 18;
30 time.tm_sec = 13;
31 time.tm_isdst = -1;
32
33 time_t epochTime = mktime(&time);
34 uint8_t seconds = 0;
35 uint8_t minutes = 0;
36 uint8_t hours = 0;
37 uint8_t day = 0;
38 uint8_t month = 0;
39 uint16_t year = 0;
40
41 epochToBCDTime(epochTime, seconds, minutes, hours, day, month, year);
42
43 ASSERT_EQ(0x13, seconds);
44 ASSERT_EQ(0x18, minutes);
45 ASSERT_EQ(0x5, hours);
46 ASSERT_EQ(0x13, day);
47 ASSERT_EQ(0x4, month);
48 ASSERT_EQ(0x2019, year);
49}
Tom Joseph52552ef2019-06-20 09:50:15 +053050
Xiaochao Ma60227a02019-12-04 09:00:12 +080051TEST(timeToEpoch, testTime0)
52{
53 std::time_t ret = 1555132693;
54
55 uint8_t sec = 13;
56 uint8_t min = 18;
57 uint8_t hours = 5;
58 uint8_t day = 13;
59 uint8_t month = 4;
60 uint16_t year = 2019;
61
62 std::time_t timeSec = 0;
63 timeSec = timeToEpoch(sec, min, hours, day, month, year);
64
65 EXPECT_EQ(ret, timeSec);
John Wang6080aae2020-02-14 09:34:25 +080066}