test: improve sock_tests/move_assignment

Use also a socket for the moved-to object and check which one is closed when.
pull/26312/head
Vasil Dimov 1 year ago
parent 5086a99b84
commit 7df4508369
No known key found for this signature in database
GPG Key ID: 54DF06F64B55CBBF

@ -58,15 +58,27 @@ BOOST_AUTO_TEST_CASE(move_constructor)
BOOST_AUTO_TEST_CASE(move_assignment)
{
const SOCKET s = CreateSocket();
Sock* sock1 = new Sock(s);
Sock* sock2 = new Sock(INVALID_SOCKET);
const SOCKET s1 = CreateSocket();
const SOCKET s2 = CreateSocket();
Sock* sock1 = new Sock(s1);
Sock* sock2 = new Sock(s2);
BOOST_CHECK(!SocketIsClosed(s1));
BOOST_CHECK(!SocketIsClosed(s2));
*sock2 = std::move(*sock1);
BOOST_CHECK(!SocketIsClosed(s1));
BOOST_CHECK(SocketIsClosed(s2));
BOOST_CHECK(*sock2 == s1);
delete sock1;
BOOST_CHECK(!SocketIsClosed(s));
BOOST_CHECK(*sock2 == s);
BOOST_CHECK(!SocketIsClosed(s1));
BOOST_CHECK(SocketIsClosed(s2));
BOOST_CHECK(*sock2 == s1);
delete sock2;
BOOST_CHECK(SocketIsClosed(s));
BOOST_CHECK(SocketIsClosed(s1));
BOOST_CHECK(SocketIsClosed(s2));
}
#ifndef WIN32 // Windows does not have socketpair(2).

Loading…
Cancel
Save