From f7a512fae412ba6ecf69cbf5802d0c0cca14ee88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 28 Dec 2013 19:07:07 +0100 Subject: [PATCH] Testing Buffer move construction and assignment. --- src/Test/BufferGLTest.cpp | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/Test/BufferGLTest.cpp b/src/Test/BufferGLTest.cpp index f510948c8..a1e5b2502 100644 --- a/src/Test/BufferGLTest.cpp +++ b/src/Test/BufferGLTest.cpp @@ -38,6 +38,9 @@ class BufferGLTest: public AbstractOpenGLTester { explicit BufferGLTest(); void construct(); + void constructCopy(); + void constructMove(); + void label(); void data(); void map(); @@ -74,13 +77,43 @@ BufferGLTest::BufferGLTest() { } void BufferGLTest::construct() { - Buffer buffer; + { + Buffer buffer; + + MAGNUM_VERIFY_NO_ERROR(); + CORRADE_VERIFY(buffer.id() > 0); + CORRADE_COMPARE(buffer.targetHint(), Buffer::Target::Array); + CORRADE_COMPARE(buffer.size(), 0); + } + + MAGNUM_VERIFY_NO_ERROR(); +} + +void BufferGLTest::constructCopy() { + CORRADE_VERIFY(!(std::is_constructible{})); + CORRADE_VERIFY(!(std::is_assignable{})); +} + +void BufferGLTest::constructMove() { + Buffer a; + const Int id = a.id(); + MAGNUM_VERIFY_NO_ERROR(); + CORRADE_VERIFY(id > 0); + + Buffer b(std::move(a)); + + CORRADE_COMPARE(a.id(), 0); + CORRADE_COMPARE(b.id(), id); - CORRADE_COMPARE(buffer.targetHint(), Buffer::Target::Array); + Buffer c; + const Int cId = c.id(); + c = std::move(b); - CORRADE_COMPARE(buffer.size(), 0); MAGNUM_VERIFY_NO_ERROR(); + CORRADE_VERIFY(cId > 0); + CORRADE_COMPARE(b.id(), cId); + CORRADE_COMPARE(c.id(), id); } void BufferGLTest::label() {