diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 60e9e745..2d846f7f 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -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 @@ -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 diff --git a/include/spdlog/fmt/bin_to_hex.h b/include/spdlog/fmt/bin_to_hex.h index c2998d57..9ac570f4 100644 --- a/include/spdlog/fmt/bin_to_hex.h +++ b/include/spdlog/fmt/bin_to_hex.h @@ -102,7 +102,7 @@ namespace template struct formatter, char> { - const char delimiter = ' '; + char delimiter = ' '; bool put_newlines = true; bool put_delimiters = true; bool use_uppercase = false; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0a3d77eb..bc964eed 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -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) @@ -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) diff --git a/tests/test_custom_callbacks.cpp b/tests/test_custom_callbacks.cpp index 4b048572..f890ec9d 100644 --- a/tests/test_custom_callbacks.cpp +++ b/tests/test_custom_callbacks.cpp @@ -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::difference_type; + lines.emplace_back(formatted.begin(), formatted.end() - static_cast(eol_len)); }); std::shared_ptr test_sink(new spdlog::sinks::test_sink_st); diff --git a/tests/test_sink.h b/tests/test_sink.h index 529d86dd..c9bdf472 100644 --- a/tests/test_sink.h +++ b/tests/test_sink.h @@ -47,8 +47,9 @@ protected: base_sink::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::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(eol_len)); } msg_counter_++; std::this_thread::sleep_for(delay_);