diff --git a/test/compile-error-test/CMakeLists.txt b/test/compile-error-test/CMakeLists.txt index a86996e2..09777a62 100644 --- a/test/compile-error-test/CMakeLists.txt +++ b/test/compile-error-test/CMakeLists.txt @@ -7,6 +7,7 @@ set(fmt_headers " #include #include #include + #include #include ") @@ -209,6 +210,43 @@ if (CMAKE_CXX_STANDARD GREATER_EQUAL 20) #error #endif " ERROR) + + # Format string compilation tests + expect_compile(compiled-format-string-missing-argument-error " + #if defined(FMT_HAS_CONSTEVAL) && FMT_USE_NONTYPE_TEMPLATE_ARGS + using namespace fmt::literals; + fmt::format(FMT_COMPILE(\"{x}\")); + #else + #error + #endif + " ERROR) + + expect_compile(compiled-format-string-argument-unassigned-error " + #if defined(FMT_HAS_CONSTEVAL) && FMT_USE_NONTYPE_TEMPLATE_ARGS + using namespace fmt::literals; + fmt::format(FMT_COMPILE(\"{x}\"), \"x\"_a); + #else + #error + #endif + " ERROR) + + expect_compile(compiled-format-string-argument-duplicate-error " + #if defined(FMT_HAS_CONSTEVAL) && FMT_USE_NONTYPE_TEMPLATE_ARGS + using namespace fmt::literals; + fmt::format(FMT_COMPILE(\"{x}\"), \"x\"_a=42, \"x\"_a=43); + #else + #error + #endif + " ERROR) + + expect_compile(compiled-format-string-missing-other-argument-error " + #if defined(FMT_HAS_CONSTEVAL) && FMT_USE_NONTYPE_TEMPLATE_ARGS + using namespace fmt::literals; + fmt::format(FMT_COMPILE(\"{a} {b}\"), \"b\"_a=42); + #else + #error + #endif + " ERROR) endif () # Run all tests