[libcxx] r285234 - Cleanup nonportable behavior in tests for std::any
Casey Carter via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 26 13:18:13 PDT 2016
Author: caseycarter
Date: Wed Oct 26 15:18:13 2016
New Revision: 285234
URL: http://llvm.org/viewvc/llvm-project?rev=285234&view=rev
Log:
Cleanup nonportable behavior in tests for std::any
Fixes MS issues 63, 64, and 65.
test/std/utilities/any/any.class/any.cons/move.pass.cpp:
* "Moves are always destructive" is not a portable assumption; check with LIBCPP_ASSERT.
test/std/utilities/any/any.class/any.cons/value.pass.cpp:
* The standard does not forbid initializing std::any from any pointer-to-function type. Remove the non-conforming "DecayTag" test.
test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp:
* Self-swap is not specified to perform no moves; check with LIBCPP_ASSERT.
Differential Revision: https://reviews.llvm.org/D26007
Modified:
libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp
libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp
libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp
Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp?rev=285234&r1=285233&r2=285234&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/move.pass.cpp Wed Oct 26 15:18:13 2016
@@ -80,8 +80,8 @@ void test_move() {
assert(Type::moved == 1 || Type::moved == 2); // zero or more move operations can be performed.
assert(Type::copied == 0); // no copies can be performed.
assert(Type::count == 1 + a.has_value());
- assertEmpty(a); // Moves are always destructive.
assertContains<Type>(a2, 42);
+ LIBCPP_ASSERT(!a.has_value()); // Moves are always destructive.
if (a.has_value())
assertContains<Type>(a, 0);
}
Modified: libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp?rev=285234&r1=285233&r2=285234&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.cons/value.pass.cpp Wed Oct 26 15:18:13 2016
@@ -137,10 +137,6 @@ void test_sfinae_constraints() {
static_assert(!std::is_constructible<std::any, T>::value, "");
}
{
- using DecayTag = std::decay_t<BadTag>;
- static_assert(!std::is_constructible<std::any, DecayTag>::value, "");
- }
- {
// Test that the ValueType&& constructor SFINAE's away when the
// argument is non-copyable
struct NoCopy {
Modified: libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp?rev=285234&r1=285233&r2=285234&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp Wed Oct 26 15:18:13 2016
@@ -104,7 +104,7 @@ void test_self_swap() {
assertContains<T>(a, 42);
assert(T::count == 1);
assert(T::copied == 0);
- assert(T::moved == 0);
+ LIBCPP_ASSERT(T::moved == 0);
}
assert(small::count == 0);
{ // large
@@ -113,9 +113,9 @@ void test_self_swap() {
T::reset();
a.swap(a);
assertContains<T>(a, 42);
- assert(T::copied == 0);
- assert(T::moved == 0);
assert(T::count == 1);
+ assert(T::copied == 0);
+ LIBCPP_ASSERT(T::moved == 0);
}
assert(large::count == 0);
}
More information about the cfe-commits
mailing list