Fix to_string(time_t) and write a unit test for it
This commit is contained in:
@@ -4,9 +4,10 @@ namespace utils
|
|||||||
{
|
{
|
||||||
std::string to_string(const std::time_t& timestamp)
|
std::string to_string(const std::time_t& timestamp)
|
||||||
{
|
{
|
||||||
constexpr std::size_t stamp_size = 20;
|
constexpr std::size_t stamp_size = 21;
|
||||||
char date_buf[stamp_size];
|
char date_buf[stamp_size];
|
||||||
std::strftime(date_buf, stamp_size, "%FT%TZ", std::gmtime(×tamp));
|
if (std::strftime(date_buf, stamp_size, "%FT%TZ", std::gmtime(×tamp)) != stamp_size - 1)
|
||||||
return {std::begin(date_buf), std::end(date_buf)};
|
return "";
|
||||||
|
return {std::begin(date_buf), std::end(date_buf) - 1};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
#include <utils/xdg.hpp>
|
#include <utils/xdg.hpp>
|
||||||
#include <utils/empty_if_fixed_server.hpp>
|
#include <utils/empty_if_fixed_server.hpp>
|
||||||
#include <utils/get_first_non_empty.hpp>
|
#include <utils/get_first_non_empty.hpp>
|
||||||
|
#include <utils/time.hpp>
|
||||||
|
|
||||||
using namespace std::string_literals;
|
using namespace std::string_literals;
|
||||||
|
|
||||||
@@ -111,3 +112,12 @@ TEST_CASE("first non-empty string")
|
|||||||
CHECK(get_first_non_empty("first"s) == "first"s);
|
CHECK(get_first_non_empty("first"s) == "first"s);
|
||||||
CHECK(get_first_non_empty(0, 1, 2, 3) == 1);
|
CHECK(get_first_non_empty(0, 1, 2, 3) == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("time_to_string")
|
||||||
|
{
|
||||||
|
const std::time_t stamp = 1472480968;
|
||||||
|
const std::string result = "2016-08-29T14:29:28Z";
|
||||||
|
CHECK(utils::to_string(stamp) == result);
|
||||||
|
CHECK(utils::to_string(stamp).size() == result.size());
|
||||||
|
CHECK(utils::to_string(0) == "1970-01-01T00:00:00Z");
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user