1 #include "libpldmresponder/bios.hpp" 2 #include "libpldmresponder/bios_table.hpp" 3 4 #include <libpldm/base.h> 5 #include <libpldm/bios.h> 6 7 #include <array> 8 #include <cstring> 9 #include <ctime> 10 #include <filesystem> 11 12 #include <gtest/gtest.h> 13 14 using namespace pldm; 15 using namespace pldm::responder; 16 using namespace pldm::responder::bios; 17 using namespace pldm::responder::utils; 18 19 TEST(epochToBCDTime, testTime) 20 { 21 struct tm time 22 {}; 23 time.tm_year = 119; 24 time.tm_mon = 3; 25 time.tm_mday = 13; 26 time.tm_hour = 5; 27 time.tm_min = 18; 28 time.tm_sec = 13; 29 time.tm_isdst = -1; 30 31 time_t epochTime = mktime(&time); 32 uint8_t seconds = 0; 33 uint8_t minutes = 0; 34 uint8_t hours = 0; 35 uint8_t day = 0; 36 uint8_t month = 0; 37 uint16_t year = 0; 38 39 epochToBCDTime(epochTime, seconds, minutes, hours, day, month, year); 40 41 ASSERT_EQ(0x13, seconds); 42 ASSERT_EQ(0x18, minutes); 43 ASSERT_EQ(0x5, hours); 44 ASSERT_EQ(0x13, day); 45 ASSERT_EQ(0x4, month); 46 ASSERT_EQ(0x2019, year); 47 } 48 49 TEST(timeToEpoch, testTime0) 50 { 51 std::time_t ret = 1555132693; 52 53 uint8_t sec = 13; 54 uint8_t min = 18; 55 uint8_t hours = 5; 56 uint8_t day = 13; 57 uint8_t month = 4; 58 uint16_t year = 2019; 59 60 std::time_t timeSec = 0; 61 timeSec = timeToEpoch(sec, min, hours, day, month, year); 62 63 EXPECT_EQ(ret, timeSec); 64 } 65