This is an archive of the discontinued LLVM Phabricator instance.

[testsuite] Implement a category to skip libstdcxx tests
ClosedPublic

Authored by davide on Jul 9 2018, 5:10 PM.

Details

Summary

On systems where it's not supported.
As far as I understand Linux is the only systems which now ships with libstdcxx (maybe NetBSD?, but I'm not entirely sure of the state of lldb on the platform).
We could make this more fine grained looking for the header as we do for libcxx. This is a little tricky as there's no such thing as /usr/include/c++/v1, but libstdcxx encodes the version number in the path (i.e. /usr/include/c++/5.4). I guess we might match a regex, but it seems fragile to me.

@labath I hope this is more in line with what you had in mind, thanks for your feedback!

Diff Detail

Event Timeline

davide created this revision.Jul 9 2018, 5:10 PM

@labath this is breaking several bots for us internally so I would really love to get this in.
As this seems to be reasonably close to what you ask, I might consider checking this in before end of day (PST) today and we can iterate from there.

JDevlieghere accepted this revision.Jul 10 2018, 10:00 AM
JDevlieghere added a subscriber: JDevlieghere.

LGTM

This revision is now accepted and ready to land.Jul 10 2018, 10:00 AM
labath accepted this revision.Jul 10 2018, 11:35 AM

Sorry for the slow response, I am OOO officially :P.

I think this is fine in general. As for the list of platforms, android should be on that list but not for long (which is why one of the things I was planning to do next week was to implement something like this). I am not sure about NetBSD, but @krytarowski should be able to add that easily if that is the case.

For the category markup, I was hoping you would just place a .categories file in the appropriate subfolder, but after checking I see that this is actually consistent with how libc++ tests are marked up, so that is not a big deal either. I'll probably convert both of them to the filesystem-based markup next week.

Thank you Pavel!

This revision was automatically updated to reflect the committed changes.

NetBSD ships with GCC style and Clang style userland. The former one ships with GNU libstdc++, the latter with libc++.

Probably the former with ship GDB at least for long time, the latter will switch to LLDB.

Through pkgsrc a user can install LLDB with either style of distribution, including GCC with libstdc++ one (I'm using this myself also for the development of LLVM related code).

BTW. NetBSD uses GPLv3 GNU toolchain.