blob: debda08995cfb93e0063965ffcdca075f983aec6 [file] [log] [blame]
// { dg-do run { target c++20 } }
#include <chrono>
#include <testsuite_hooks.h>
using namespace std::chrono;
#define WIDEN_(C, S) ::std::__format::_Widen<C>(S, L##S)
#define WIDEN(S) WIDEN_(_CharT, S)
template<typename _CharT, typename ChronoType>
void
test(const ChronoType& ct)
{
std::basic_string<_CharT> res;
res = std::format(WIDEN("{:%% %t %n more text}"), ct);
VERIFY( res == WIDEN("% \t \n more text") );
res = std::format(WIDEN("{:7%% %t %n}"), ct);
VERIFY( res == WIDEN("% \t \n ") );
res = std::format(WIDEN("{:>6%% %t %n}"), ct);
VERIFY( res == WIDEN(" % \t \n") );
res = std::format(WIDEN("{:+>7%% %t %n}"), ct);
VERIFY( res == WIDEN("++% \t \n") );
res = std::format(WIDEN("{:=^7%% %t %n}"), ct);
VERIFY( res == WIDEN("=% \t \n=") );
}
template<typename CharT>
void
test_all()
{
test<CharT>(20s);
test<CharT>(10d);
test<CharT>(Monday);
test<CharT>(2020y/January/8);
test<CharT>(local_days(2020y/January/8));
test<CharT>(sys_days(2020y/January/8) + 13h + 10min + 5s);
#if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI
test<CharT>(sys_info());
test<CharT>(local_info());
#endif
}
int main()
{
test_all<char>();
#ifdef _GLIBCXX_USE_WCHAR_T
test_all<wchar_t>();
#endif // _GLIBCXX_USE_WCHAR_T
}