libSDL2pp/tests/movetest.hh
2016-02-03 00:28:15 +03:00

16 lines
411 B
C++

#define MOVE_TEST(cl, obj, getmethod, nullval) { \
auto ptr = obj.getmethod(); \
EXPECT_TRUE(ptr != nullval); \
\
cl obj1(std::move(obj)); \
EXPECT_EQUAL(obj1.getmethod(), ptr); \
EXPECT_TRUE(obj.getmethod() == nullval); \
\
std::swap(obj, obj1); \
EXPECT_EQUAL(obj.getmethod(), ptr); \
EXPECT_TRUE(obj1.getmethod() == nullval); \
\
obj = std::move(obj); \
EXPECT_EQUAL(obj.getmethod(), ptr); \
}