Re: The time_zone tests that fail

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 12 Mar 2025 at 18:38, Dennis Clarke <dclarke@xxxxxxxxxxxxx> wrote:
>
> On 3/12/25 14:06, Jonathan Wakely wrote:
> > On Wed, 12 Mar 2025 at 17:52, Dennis Clarke wrote:
> >> This is a default out of the box install of Devuan Linux which is just a
> >> really fantastic Linux distro based on the Debian goodness. ....
>
> > Please don't. Nobody cares if you incorrectly think ...
>
> Sorry ... won't happen again.
>
> >
> >>> I see from your follow-up that it fixed your original issue. I'm still
> >>> curious why all the C++ time zone tests fail. Do you have an
> >>> incomplete/modified tzdata file on the system? If no tzdata files are
> >>> found, then a bundled copy of tzdata should get used, so if they're
> >>> failing that suggests your system does have the data but it's
> >>> incomplete.
> >>>
> >>> Could you please look in the
> >>> x86_64-pc-linux-gnu/libstdc++-v3/testsuite/libstdc++.log file and
> >>> search for ^FAIL and see what the errors are?
> >>
> >> t$ find . -type f -name libstdc++.log
> >> ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log
> >> t$
> >> t$ wc -l ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log
> >> 115033 ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log
> >> t$
> >>
> >> Yikes .... 115033 lines.
> >>
> >> t$
> >> t$ grep '^FAIL' ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log
> >> FAIL: std/time/time_zone/get_info_local.cc  -std=gnu++20 execution test
> >> FAIL: std/time/time_zone/get_info_local.cc  -std=gnu++26 execution test
> >> FAIL: std/time/time_zone/get_info_sys.cc  -std=gnu++20 execution test
> >> FAIL: std/time/time_zone/get_info_sys.cc  -std=gnu++26 execution test
> >> FAIL: std/time/tzdb/1.cc  -std=gnu++20 execution test
> >> FAIL: std/time/tzdb/1.cc  -std=gnu++26 execution test
> >> FAIL: std/time/exceptions.cc  -std=gnu++20 execution test
> >> FAIL: std/time/exceptions.cc  -std=gnu++26 execution test
> >> FAIL: std/time/zoned_time/1.cc  -std=gnu++20 execution test
> >> FAIL: std/time/zoned_time/1.cc  -std=gnu++26 execution test
> >> FAIL: std/time/zoned_time/custom.cc  -std=gnu++20 execution test
> >> FAIL: std/time/zoned_time/custom.cc  -std=gnu++26 execution test
> >> FAIL: std/time/zoned_time/io.cc  -std=gnu++20 execution test
> >> FAIL: std/time/zoned_time/io.cc  -std=gnu++26 execution test
> >> FAIL: libstdc++-prettyprinters/chrono.cc execution test
> >> FAIL: libstdc++-prettyprinters/chrono.cc execution test
> >> t$
> >>
> >> No idea why these are failing.
> >
> > Look in the log, it will tell you. All you've shown is that they fail,
> > which was already in the gcc-testresults email.
> >
> > Search for ^FAIL in the file and look at the lines surrounding it.
> > They're probably all failing for the same reason.
> >
>
> Alrighty then .. we have something here :
>
> t$
> t$ grep -n '^FAIL' ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log
> 27145:FAIL: std/time/time_zone/get_info_local.cc  -std=gnu++20 execution
> test
> 27157:FAIL: std/time/time_zone/get_info_local.cc  -std=gnu++26 execution
> test
> 47161:FAIL: std/time/time_zone/get_info_sys.cc  -std=gnu++20 execution test
> 47173:FAIL: std/time/time_zone/get_info_sys.cc  -std=gnu++26 execution test
> 47204:FAIL: std/time/tzdb/1.cc  -std=gnu++20 execution test
> 47215:FAIL: std/time/tzdb/1.cc  -std=gnu++26 execution test
> 87928:FAIL: std/time/exceptions.cc  -std=gnu++20 execution test
> 87942:FAIL: std/time/exceptions.cc  -std=gnu++26 execution test
> 88813:FAIL: std/time/zoned_time/1.cc  -std=gnu++20 execution test
> 88827:FAIL: std/time/zoned_time/1.cc  -std=gnu++26 execution test
> 88839:FAIL: std/time/zoned_time/custom.cc  -std=gnu++20 execution test
> 88851:FAIL: std/time/zoned_time/custom.cc  -std=gnu++26 execution test
> 88875:FAIL: std/time/zoned_time/io.cc  -std=gnu++20 execution test
> 88887:FAIL: std/time/zoned_time/io.cc  -std=gnu++26 execution test
> 102909:FAIL: libstdc++-prettyprinters/chrono.cc execution test
> 103859:FAIL: libstdc++-prettyprinters/chrono.cc execution test
> t$
>
> I will drag out the first FAIL there :
>
> t$ head -27145  ./x86_64-linux-gnu/libstdc++-v3/testsuite/libstdc++.log
> | tail -7
> PASS: std/time/time_zone/get_info_local.cc  -std=gnu++20 (test for
> excess errors)
> Setting LD_LIBRARY_PATH to
> :/opt/bw/build/gcc-14.2.0_linux_xeon.003/gcc:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libatomic/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libgomp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/src/.libs::/opt/bw/build/gcc-14.2.0_linux_xeon.003/gcc:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libatomic/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/../libgomp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/./libstdc++-v3/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./gmp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-gmp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./mpfr/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-mpfr/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./mpc/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-mpc/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./isl/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-isl/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libstdc++-v3/src/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libsanitizer/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libvtv/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libssp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libgomp/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libitm/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/x86_64-linux-gnu/libatomic/.libs:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./gcc:/opt/bw/build/gcc-14.2.0_linux_xeon.003/./prev-gcc
> Execution timeout is: 300
> spawn [open ...]
> terminate called after throwing an instance of 'std::runtime_error'
>    what():  std::chrono::tzdb: cannot locate zone: Europe/London
> FAIL: std/time/time_zone/get_info_local.cc  -std=gnu++20 execution test
> t$
>
>
> OKay, so the timezone Europe/London is absent somewhere?
>
> t$
> t$ ls -l /usr/share/zoneinfo/Europe/London
> -rw-r--r-- 1 root root 3664 Nov 23 14:04 /usr/share/zoneinfo/Europe/London
> t$
>
>
> Seems to exist on the machine.
>
>
> So that is baffling.

As I said, only the /usr/share/zoneinfo/tzdata.zi file matters, not
the Europe/London file.

On my machine it contains that zone:

$ grep Europe/London /usr/share/zoneinfo/tzdata.zi
Z Europe/London -0:1:15 - LMT 1847 D
L Europe/London GB
L Europe/London GB-Eire
L Europe/London Europe/Guernsey
L Europe/London Europe/Isle_of_Man
L Europe/London Europe/Jersey
L Europe/London Europe/Belfast


> I will drag out the others but I am guessing they all say "cannot
> locate" some timezone data somehow.
>
> terminate called after throwing an instance of 'std::runtime_error'
>    what():  std::chrono::tzdb: cannot locate zone: Europe/Zurich
> FAIL: std/time/time_zone/get_info_sys.cc  -std=gnu++20 execution test
>
>
> Execution timeout is: 300
> spawn [open ...]
> /opt/bw/build/gcc-14.2.0/libstdc++-v3/testsuite/std/time/tzdb/1.cc:18:
> void test_version(): Assertion 'db.version == remote_version()' failed.
> FAIL: std/time/tzdb/1.cc  -std=gnu++26 execution test
>
> Hold the phone .... execution timeout ?

It's telling you the timeout is set to 300s, not that it timed out.

Could you please compile and run this program with this installed gcc-14:

#include <chrono>
#include <iostream>

int main()
{
  std::cout << std::chrono::get_tzdb().version << '\n';
}




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux