From 8e63eca912a01659cef81b9d6d1cc7cb11edfff5 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Tue, 26 Mar 2024 15:39:54 -0700 Subject: Remove `HintFmt::operator%` Change-Id: Ibcf1a7848b4b18ec9b0807628ff229079ae7a0fe --- tests/unit/libutil/fmt.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/unit/libutil/fmt.cc (limited to 'tests') diff --git a/tests/unit/libutil/fmt.cc b/tests/unit/libutil/fmt.cc new file mode 100644 index 000000000..383a688d3 --- /dev/null +++ b/tests/unit/libutil/fmt.cc @@ -0,0 +1,23 @@ +#include "fmt.hh" +#include "ansicolor.hh" + +#include + +namespace nix { + +TEST(HintFmt, arg_count) +{ + // Single arg is treated as a literal string. + ASSERT_EQ(HintFmt("%s").str(), "%s"); + + // Other strings format as expected: + ASSERT_EQ(HintFmt("%s", 1).str(), ANSI_MAGENTA "1" ANSI_NORMAL); + ASSERT_EQ(HintFmt("%1%", "hello").str(), ANSI_MAGENTA "hello" ANSI_NORMAL); + + // Argument counts are detected at construction. + ASSERT_THROW(HintFmt("%s %s", 1), boost::io::too_few_args); + + ASSERT_THROW(HintFmt("%s", 1, 2), boost::io::too_many_args); +} + +} -- cgit v1.2.3