On Thu, Jun 12, 2025 at 4:48 PM Daniel Krügler <daniel.krueg...@gmail.com>
wrote:

> Am Do., 12. Juni 2025 um 16:40 Uhr schrieb Tomasz Kamiński <
> tkami...@redhat.com>:
>
>> libstdc++-v3/ChangeLog:
>>
>>         * testsuite/std/time/format/whitespace.cc: New test.
>> ---
>> Testing on x86_64-linux. OK for trunk when test passes.
>>
>>  .../testsuite/std/time/format/whitespace.cc   | 54 +++++++++++++++++++
>>  1 file changed, 54 insertions(+)
>>  create mode 100644 libstdc++-v3/testsuite/std/time/format/whitespace.cc
>>
>> diff --git a/libstdc++-v3/testsuite/std/time/format/whitespace.cc
>> b/libstdc++-v3/testsuite/std/time/format/whitespace.cc
>> new file mode 100644
>> index 00000000000..e211bd51dc1
>> --- /dev/null
>> +++ b/libstdc++-v3/testsuite/std/time/format/whitespace.cc
>> @@ -0,0 +1,54 @@
>> +// { 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)
>>
>>
> I don't think that you really need to use the uglified  _CharT here...
>
>
>> +template<typename _CharT, typename ChronoType>
>>
>
> .. and here. It is only needed within the standard library headers, right?
>
Yes, that's true. I copied this marco from the _GLIBCXX_WIDEN from
std/format.
I use this definition like that in multiple files, so I think I would
prefer to clean them
all at once.
Jonathan, is changing _CharT in WIDEN and other places for files that use
them
pre-approved?

>
>
>> +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);
>> +  test<CharT>(sys_info());
>> +  test<CharT>(local_info());
>> +}
>> +
>> +int main()
>> +{
>> +  test_all<char>();
>> +
>> +#ifdef _GLIBCXX_USE_WCHAR_T
>> +  test_all<wchar_t>();
>> +#endif // _GLIBCXX_USE_WCHAR_T
>> +}
>> --
>> 2.49.0
>>
>
> - Daniel
>

Reply via email to