[PATCH] D32671: [libcxx] [test] variant: test coverage for P0602 extension

Casey Carter via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 24 09:08:09 PDT 2017

CaseyCarter added a comment.

In https://reviews.llvm.org/D32671#762840, @mpark wrote:

> @CaseyCarter: Do these changes pass with the current version?
>  Also, have you seen the tests in `test/libcxx/utilities/variant/variant.variant`?
>  If yes, do those tests and the ones in this diff overlap at all?
>  Curious as to how we should merge them.

Disclaimer: I know nothing about the libc++ <variant>, and I didn't realize there were tests in the libcxx tree for variant.

These tests technically "pass" with the current version since they do nothing when testing libc++ - they're currently only enabled when testing the MSVC standard library. I hadn't bothered to try them with libc++ variant before, but when I do they all pass except for triviality_test of copy/move assignment with `NoCopy` as an alternative. Those results indicate to me that you already implement fine-grained SMF triviality, and the discrepancy with `NoCopy` is probably due to the lack of LWG2904.

Taking a look at the libcxx tree tests:

- There are SMF sfinae tests in these for (what is now) standard behavior that should be moved into the std tree tests.
- Your `test_XXX_basic` tests are effectively testing the same behavior as these but with "is `constexpr`" as a proxy for "is trivial", and using more demonstrative code whereas mine only tests traits.

I think I'd like to integrate those tests into the std tree, if that's ok with you.


More information about the cfe-commits mailing list