Skip to content

Commit

Permalink
Enabled bin_to_hex utest for stdformat, fixed std::formatter (#3315)
Browse files Browse the repository at this point in the history
* Enabled bin_to_hex utest for stdformat, and fixed std::formatter

* fixed usage of \ in macos.yml

* explicitly cast diff variable in test_sink

* moved from ::iterator to decltype

* added fix for custom callbacks

---------

Co-authored-by: Jan Koniarik <[email protected]>
  • Loading branch information
koniarik and Jan Koniarik authored Jan 11, 2025
1 parent 96a8f62 commit ad0f31c
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 10 deletions.
14 changes: 12 additions & 2 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@ jobs:
build:
runs-on: macOS-latest
name: "macOS Clang (C++11, Release)"
strategy:
fail-fast: true
matrix:
config:
- USE_STD_FORMAT: 'ON'
BUILD_EXAMPLE: 'OFF'
- USE_STD_FORMAT: 'OFF'
BUILD_EXAMPLE: 'ON'

steps:
- uses: actions/checkout@v4
- name: Build
Expand All @@ -17,12 +26,13 @@ jobs:
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=11 \
-DSPDLOG_BUILD_EXAMPLE=ON \
-DSPDLOG_BUILD_EXAMPLE_HO=ON \
-DSPDLOG_BUILD_EXAMPLE=${{ matrix.config.BUILD_EXAMPLE }} \
-DSPDLOG_BUILD_EXAMPLE_HO=${{ matrix.config.BUILD_EXAMPLE }} \
-DSPDLOG_BUILD_WARNINGS=ON \
-DSPDLOG_BUILD_BENCH=OFF \
-DSPDLOG_BUILD_TESTS=ON \
-DSPDLOG_BUILD_TESTS_HO=OFF \
-DSPDLOG_USE_STD_FORMAT=${{ matrix.config.USE_STD_FORMAT }} \
-DSPDLOG_SANITIZE_ADDRESS=OFF
make -j 4
ctest -j 4 --output-on-failure
2 changes: 1 addition & 1 deletion include/spdlog/fmt/bin_to_hex.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ namespace

template <typename T>
struct formatter<spdlog::details::dump_info<T>, char> {
const char delimiter = ' ';
char delimiter = ' ';
bool put_newlines = true;
bool put_delimiters = true;
bool use_uppercase = false;
Expand Down
7 changes: 2 additions & 5 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ set(SPDLOG_UTESTS_SOURCES
test_cfg.cpp
test_time_point.cpp
test_stopwatch.cpp
test_circular_q.cpp)
test_circular_q.cpp
test_bin_to_hex.cpp)

if(NOT SPDLOG_NO_EXCEPTIONS)
list(APPEND SPDLOG_UTESTS_SOURCES test_errors.cpp)
Expand All @@ -58,10 +59,6 @@ if(systemd_FOUND)
list(APPEND SPDLOG_UTESTS_SOURCES test_systemd.cpp)
endif()

if(NOT SPDLOG_USE_STD_FORMAT)
list(APPEND SPDLOG_UTESTS_SOURCES test_bin_to_hex.cpp)
endif()

enable_testing()

function(spdlog_prepare_test test_target spdlog_lib)
Expand Down
3 changes: 2 additions & 1 deletion tests/test_custom_callbacks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ TEST_CASE("custom_callback_logger", "[custom_callback_logger]") {
spdlog::memory_buf_t formatted;
formatter.format(msg, formatted);
auto eol_len = strlen(spdlog::details::os::default_eol);
lines.emplace_back(formatted.begin(), formatted.end() - eol_len);
using diff_t = typename std::iterator_traits<decltype(formatted.end())>::difference_type;
lines.emplace_back(formatted.begin(), formatted.end() - static_cast<diff_t>(eol_len));
});
std::shared_ptr<spdlog::sinks::test_sink_st> test_sink(new spdlog::sinks::test_sink_st);

Expand Down
3 changes: 2 additions & 1 deletion tests/test_sink.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@ class test_sink : public base_sink<Mutex> {
base_sink<Mutex>::formatter_->format(msg, formatted);
// save the line without the eol
auto eol_len = strlen(details::os::default_eol);
using diff_t = typename std::iterator_traits<decltype(formatted.end())>::difference_type;
if (lines_.size() < lines_to_save) {
lines_.emplace_back(formatted.begin(), formatted.end() - eol_len);
lines_.emplace_back(formatted.begin(), formatted.end() - static_cast<diff_t>(eol_len));
}
msg_counter_++;
std::this_thread::sleep_for(delay_);
Expand Down

0 comments on commit ad0f31c

Please sign in to comment.