Added fixes for the tests.
This commit is contained in:
parent
27d6aa363b
commit
7525731b50
86
spdlog-fmt10-tests-fixes.patch
Normal file
86
spdlog-fmt10-tests-fixes.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From af1785b897c9d1098d4aa7213fad232be63c19b4 Mon Sep 17 00:00:00 2001
|
||||
From: Bernd Ritter <commel@users.noreply.github.com>
|
||||
Date: Fri, 19 May 2023 18:51:02 +0200
|
||||
Subject: [PATCH] Removes special format handling for fmt. (#2736)
|
||||
|
||||
* Removes special format handling for fmt. Regains test compatibility with fmt
|
||||
1.10.0.
|
||||
|
||||
fixes #2735
|
||||
|
||||
* reverted std::vector back to filename_t and used pointer to array start likewise as fmt's implementation uses
|
||||
|
||||
* calc_filename buffer increase softened, exception is throw if buffer exceeds 4k, filename parameter renamed to match intend.
|
||||
|
||||
* calc_filetime based on std::put_time for simpler implementation
|
||||
---
|
||||
include/spdlog/sinks/daily_file_sink.h | 46 +++++---------------------
|
||||
1 file changed, 9 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/include/spdlog/sinks/daily_file_sink.h b/include/spdlog/sinks/daily_file_sink.h
|
||||
index f6f1bb1d7..90af96768 100644
|
||||
--- a/include/spdlog/sinks/daily_file_sink.h
|
||||
+++ b/include/spdlog/sinks/daily_file_sink.h
|
||||
@@ -13,6 +13,9 @@
|
||||
#include <spdlog/details/circular_q.h>
|
||||
#include <spdlog/details/synchronous_factory.h>
|
||||
|
||||
+#include <iostream>
|
||||
+#include <sstream>
|
||||
+#include <iomanip>
|
||||
#include <chrono>
|
||||
#include <cstdio>
|
||||
#include <ctime>
|
||||
@@ -46,46 +49,15 @@ struct daily_filename_calculator
|
||||
*/
|
||||
struct daily_filename_format_calculator
|
||||
{
|
||||
- static filename_t calc_filename(const filename_t &filename, const tm &now_tm)
|
||||
+ static filename_t calc_filename(const filename_t &file_path, const tm &now_tm)
|
||||
{
|
||||
-#ifdef SPDLOG_USE_STD_FORMAT
|
||||
- // adapted from fmtlib: https://github.com/fmtlib/fmt/blob/8.0.1/include/fmt/chrono.h#L522-L546
|
||||
-
|
||||
- filename_t tm_format;
|
||||
- tm_format.append(filename);
|
||||
- // By appending an extra space we can distinguish an empty result that
|
||||
- // indicates insufficient buffer size from a guaranteed non-empty result
|
||||
- // https://github.com/fmtlib/fmt/issues/2238
|
||||
- tm_format.push_back(' ');
|
||||
-
|
||||
- const size_t MIN_SIZE = 10;
|
||||
- filename_t buf;
|
||||
- buf.resize(MIN_SIZE);
|
||||
- for (;;)
|
||||
- {
|
||||
- size_t count = strftime(buf.data(), buf.size(), tm_format.c_str(), &now_tm);
|
||||
- if (count != 0)
|
||||
- {
|
||||
- // Remove the extra space.
|
||||
- buf.resize(count - 1);
|
||||
- break;
|
||||
- }
|
||||
- buf.resize(buf.size() * 2);
|
||||
- }
|
||||
-
|
||||
- return buf;
|
||||
+#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
|
||||
+ std::wstringstream stream;
|
||||
#else
|
||||
- // generate fmt datetime format string, e.g. {:%Y-%m-%d}.
|
||||
- filename_t fmt_filename = fmt::format(SPDLOG_FMT_STRING(SPDLOG_FILENAME_T("{{:{}}}")), filename);
|
||||
-
|
||||
- // MSVC doesn't allow fmt::runtime(..) with wchar, with fmtlib versions < 9.1.x
|
||||
-# if defined(_MSC_VER) && defined(SPDLOG_WCHAR_FILENAMES) && FMT_VERSION < 90101
|
||||
- return fmt::format(fmt_filename, now_tm);
|
||||
-# else
|
||||
- return fmt::format(SPDLOG_FMT_RUNTIME(fmt_filename), now_tm);
|
||||
-# endif
|
||||
-
|
||||
+ std::stringstream stream;
|
||||
#endif
|
||||
+ stream << std::put_time(&now_tm, file_path.c_str());
|
||||
+ return stream.str();
|
||||
}
|
||||
|
||||
private:
|
@ -11,6 +11,8 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
Patch100: spdlog-catchv3-compatibility.patch
|
||||
# https://github.com/gabime/spdlog/pull/2694
|
||||
Patch101: spdlog-fmt10-compatibility.patch
|
||||
# https://github.com/gabime/spdlog/pull/2736
|
||||
Patch102: spdlog-fmt10-tests-fixes.patch
|
||||
|
||||
BuildRequires: catch-devel >= 3.0.0
|
||||
BuildRequires: cmake
|
||||
|
Loading…
Reference in New Issue
Block a user