Chromium Code Reviews| Index: third_party/WebKit/Source/wtf/VectorTest.cpp |
| diff --git a/third_party/WebKit/Source/wtf/VectorTest.cpp b/third_party/WebKit/Source/wtf/VectorTest.cpp |
| index d06b47be7bf0215dc50edbf1bd1879bc0b504fef..447edd090448b5c7f5577b89cf19a7ba7a08c134 100644 |
| --- a/third_party/WebKit/Source/wtf/VectorTest.cpp |
| +++ b/third_party/WebKit/Source/wtf/VectorTest.cpp |
| @@ -459,6 +459,31 @@ TEST(VectorTest, AppendFirst) |
| vector.append(const_cast<const WTF::String&>(vector.first())); |
| } |
| +// The test below is for the following issue: |
| +// |
| +// https://bugs.chromium.org/p/chromium/issues/detail?id=592767 |
| +// |
| +// where deleted copy assignment operator made canMoveWithMemcpy true because of the implementation of |
| +// IsTriviallyMoveAssignable<T>. |
| + |
| +class MojoMoveOnlyType final { |
|
yzshen1
2016/03/08 21:30:38
Nit: this class itself doesn't have anything to do
|
| +public: |
| + MojoMoveOnlyType(); |
| + MojoMoveOnlyType(MojoMoveOnlyType&&); |
| + MojoMoveOnlyType& operator=(MojoMoveOnlyType&&); |
| + ~MojoMoveOnlyType(); |
| + |
| +private: |
| + MojoMoveOnlyType(const MojoMoveOnlyType&) = delete; |
| + void operator=(const MojoMoveOnlyType&) = delete; |
| +}; |
| + |
| +static_assert(!IsTriviallyMoveAssignable<MojoMoveOnlyType>::value, "MojoMoveOnlyType isn't trivially move assignable."); |
| +static_assert(!IsTriviallyCopyAssignable<MojoMoveOnlyType>::value, "MojoMoveOnlyType isn't trivially copy assignable."); |
| + |
| +static_assert(!VectorTraits<MojoMoveOnlyType>::canMoveWithMemcpy, "MojoMoveOnlyType can't be moved with memcpy."); |
| +static_assert(!VectorTraits<MojoMoveOnlyType>::canCopyWithMemcpy, "MojoMoveOnlyType can't be copied with memcpy."); |
| + |
| } // anonymous namespace |
| } // namespace WTF |