[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