Skip to content

Commit f660d60

Browse files
committed
Fix tests
1 parent e2d1042 commit f660d60

2 files changed

Lines changed: 41 additions & 16 deletions

File tree

include/iris/colorize_format.hpp

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -814,9 +814,12 @@ struct colorizing_scanner : scanner<CharT>
814814
template<class CharT>
815815
struct basic_dynamic_colorized_string
816816
{
817-
constexpr explicit basic_dynamic_colorized_string(std::basic_string_view<CharT> str) noexcept
817+
constexpr explicit basic_dynamic_colorized_string(std::basic_string_view<CharT> str)
818818
: str_(str)
819-
{}
819+
{
820+
checking_scanner<CharT> scanner(str);
821+
scanner.scan();
822+
}
820823

821824
std::basic_string_view<CharT> str_;
822825
};
@@ -828,9 +831,12 @@ using dynamic_colorized_string = basic_dynamic_colorized_string<char>;
828831
template<class CharT>
829832
struct basic_dynamic_colorized_format_string
830833
{
831-
constexpr explicit basic_dynamic_colorized_format_string(std::basic_string_view<CharT> str) noexcept
834+
constexpr explicit basic_dynamic_colorized_format_string(std::basic_string_view<CharT> str)
832835
: str_(str)
833-
{}
836+
{
837+
checking_scanner<CharT> scanner(str);
838+
scanner.scan();
839+
}
834840

835841
std::basic_string_view<CharT> str_;
836842
};
@@ -896,7 +902,8 @@ struct basic_colorized_string_view
896902
{
897903
template<class Str>
898904
requires StringLike<Str const&>
899-
constexpr basic_colorized_string_view(Str const& str) : str_(str)
905+
consteval basic_colorized_string_view(Str const& str)
906+
: str_(str)
900907
{
901908
detail::checking_scanner<CharT> scanner(str);
902909
scanner.scan();
@@ -963,7 +970,7 @@ struct static_colorized_string
963970
}();
964971
};
965972

966-
namespace colorize_literals {
973+
inline namespace colorize_literals {
967974

968975
template<basic_fixed_string Str>
969976
[[nodiscard]] consteval static_colorized_string<Str> operator""_col()
@@ -1025,6 +1032,12 @@ constexpr Out colorize_format_to(Out out, colorized_format_string<Args...> fmt,
10251032

10261033
} // ansi_colorize
10271034

1035+
inline namespace colorize_literals {
1036+
1037+
using namespace ansi_colorize::colorize_literals;
1038+
1039+
} // colorize_literals
1040+
10281041
using ansi_colorize::static_colorized_string;
10291042

10301043
using ansi_colorize::dynamic_colorize;

test/colorize_format.cpp

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,6 @@ TEST_CASE("colorized_string")
2323
test("[fg:red|bg:blue]");
2424
}
2525

26-
CHECK_THROWS_AS((void)iris::colorize("[]"), iris::colorize_error);
27-
CHECK_THROWS_AS((void)iris::colorize("["), iris::colorize_error);
28-
CHECK_THROWS_AS((void)iris::colorize("]"), iris::colorize_error);
29-
CHECK_THROWS_AS((void)iris::colorize("[reset|red]"), iris::colorize_error);
30-
CHECK_THROWS_AS((void)iris::colorize("[red|reset]"), iris::colorize_error);
31-
CHECK_THROWS_AS((void)iris::colorize("[black|red]"), iris::colorize_error);
32-
3326
CHECK_THROWS_AS((void)iris::colorize(iris::dynamic_colorize("[]")), iris::colorize_error);
3427
CHECK_THROWS_AS((void)iris::colorize(iris::dynamic_colorize("[")), iris::colorize_error);
3528
CHECK_THROWS_AS((void)iris::colorize(iris::dynamic_colorize("]")), iris::colorize_error);
@@ -163,9 +156,28 @@ TEST_CASE("colorize(fixed)")
163156
STATIC_CHECK(iris::colorize(str) == "\033[38;2;255;0;0mfoo");
164157

165158
STATIC_CHECK(std::string_view{iris::ansi_colorize::static_colorized_string<str>::colorized} == "\033[38;2;255;0;0mfoo");
166-
using namespace iris::ansi_colorize::colorize_literals;
167-
auto const s = iris::colorize_format("[red]{}"_col, 42);
168-
CHECK(s == "\033[38;2;255;0;0m42");
159+
160+
{
161+
auto const s = iris::colorize_format("[red]{}", 42);
162+
CHECK(s == "\033[38;2;255;0;0m42");
163+
}
164+
{
165+
using namespace iris::colorize_literals;
166+
auto const s = iris::colorize_format("[red]{}"_col, 42);
167+
CHECK(s == "\033[38;2;255;0;0m42");
168+
}
169+
170+
{
171+
std::string s;
172+
iris::colorize_format_to(std::back_inserter(s), "[red]{}", 42);
173+
CHECK(s == "\033[38;2;255;0;0m42");
174+
}
175+
{
176+
using namespace iris::colorize_literals;
177+
std::string s;
178+
iris::colorize_format_to(std::back_inserter(s), "[red]{}"_col, 42);
179+
CHECK(s == "\033[38;2;255;0;0m42");
180+
}
169181
}
170182

171183
#endif

0 commit comments

Comments
 (0)