On 2019-08-06 22:59, Marshall Clow wrote: > Many of the failing libc++ tests are explicitly XFAILed for NetBSD; I wonder > if they should also be for FreeBSD.
If they can't be fixed, then indeed they should be XFAILed. But maybe not right away, see below. > libcxx/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp > I don't know about this one. Apparently it slept for too long: Assertion failed: (std::abs(ns.count()) < err.count()), function main, file /home/dim/llvm/9.0.0/rc1/llvm.src/projects/libcxx/test/libcxx/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp, line 68. Cause is unknown. > libc++ :: std/language.support/support.runtime/ctime.pass.cpp > Does your C library have "timespec_get" ? Yes, but it got introduced only in FreeBSD 12.0. I ran the tests on FreeBSD 11.3, where it got: /home/dim/llvm/9.0.0/rc1/llvm.src/projects/libcxx/test/std/language.support/support.runtime/ctime.pass.cpp:25:2: error: TIME_UTC not defined This could be worked around by checking the FreeBSD major version, using e.g. "#if __FreeBSD__ >= 12". > libc++ :: > > std/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp For this particular test, FreeBSD, Linux and Windows seem to have a different opinion than macOS on the result of std::strcoll("aaaaaaA", "BaaaaaA"), when the locale is en_US.UTF-8: * macOS 10.14 gives 31 * FreeBSD 13.0 gives -13 * Linux (Ubuntu 18.04) gives -1 * Windows 10 (VS 2017) gives -1 E.g. macOS, which the test appears to be based on, is the odd one out here. :) I won't pretend to fully understand the Unicode collation rules, but it could be that macOS does a case insensitive comparison, while the other systems do a case sensitive comparison. > libc++ :: > > std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp This test failed because it segfaults on FreeBSD, due to a bug in our wcsxfrm_l(3). :-) I have fixed the bug in FreeBSD 13 here: https://svnweb.freebsd.org/changeset/base/350697, but it may take a while before it is merged into FreeBSD 12 and 11. > These contain: > // NetBSD does not support LC_COLLATE at the moment > // XFAIL: netbsd > libc++ :: > > std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp > libc++ :: > > std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp > These contain: > // NetBSD does not support LC_MONETARY at the moment > // XFAIL: netbsd > libc++ :: > > std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp > libc++ :: > > std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp > libc++ :: > > std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp > libc++ :: > > std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp > libc++ :: > > std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp > These contain: > // NetBSD does not support LC_TIME at the moment > // XFAIL: netbsd > libc++ :: > > std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp > libc++ :: > > std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp > These contain: > // NetBSD does not support LC_NUMERIC at the moment > // XFAIL: netbsd > libc++ :: std/re/re.alg/re.alg.match/awk.pass.cpp > libc++ :: std/re/re.alg/re.alg.match/basic.pass.cpp > libc++ :: std/re/re.alg/re.alg.match/ecma.pass.cpp > libc++ :: std/re/re.alg/re.alg.match/extended.pass.cpp > libc++ :: std/re/re.alg/re.alg.search/awk.pass.cpp > libc++ :: std/re/re.alg/re.alg.search/basic.pass.cpp > libc++ :: std/re/re.alg/re.alg.search/ecma.pass.cpp > libc++ :: std/re/re.alg/re.alg.search/extended.pass.cpp > libc++ :: std/re/re.traits/lookup_collatename.pass.cpp > libc++ :: std/re/re.traits/transform_primary.pass.cpp > These contain: > // NetBSD does not support LC_COLLATE at the moment > // XFAIL: netbsd > Is this also a problem for FREEBSD? FreeBSD does support all the LC_xxx functionality, but it could very well be that the output of the above tests is slightly different from what is expected. I will have to look into all the individual cases to see what is going wrong. > libc++ :: std/utilities/time/date.time/ctime.pass.cpp > Does your C library have "timespec_get" ? See above, from FreeBSD 12 onwards. -Dimitry
signature.asc
Description: Message signed with OpenPGP
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev