Browse Source

Test tags updated.

main
offa 7 years ago
parent
commit
e369b880f0
1 changed files with 8 additions and 8 deletions
  1. +8
    -8
      test/ScopeGuardTest.cpp

+ 8
- 8
test/ScopeGuardTest.cpp View File

} }




TEST_CASE("deleter called on destruction", "[ScopeGuard]")
TEST_CASE("deleter called on destruction", "[ScopeExit]")
{ {
REQUIRE_CALL(m, deleter()); REQUIRE_CALL(m, deleter());
auto guard = sr::make_scope_exit(deleter); auto guard = sr::make_scope_exit(deleter);
static_cast<void>(guard); static_cast<void>(guard);
} }


TEST_CASE("deleter lambda called on destruction", "[ScopeGuard]")
TEST_CASE("deleter lambda called on destruction", "[ScopeExit]")
{ {
CallMock cm; CallMock cm;
REQUIRE_CALL(cm, deleter()); REQUIRE_CALL(cm, deleter());
static_cast<void>(guard); static_cast<void>(guard);
} }


TEST_CASE("deleter called and rethrow on copy exception", "[ScopeGuard]")
TEST_CASE("deleter called and rethrow on copy exception", "[ScopeExit]")
{ {
REQUIRE_THROWS([] { REQUIRE_THROWS([] {
const ThrowOnCopyMock noMove; const ThrowOnCopyMock noMove;
}()); }());
} }


TEST_CASE("deleter is not called if released", "[ScopeGuard]")
TEST_CASE("deleter is not called if released", "[ScopeExit]")
{ {
REQUIRE_CALL(m, deleter()).TIMES(0); REQUIRE_CALL(m, deleter()).TIMES(0);
auto guard = sr::make_scope_exit(deleter); auto guard = sr::make_scope_exit(deleter);
guard.release(); guard.release();
} }


TEST_CASE("move releases moved-from object", "[ScopeGuard]")
TEST_CASE("move releases moved-from object", "[ScopeExit]")
{ {
REQUIRE_CALL(m, deleter()); REQUIRE_CALL(m, deleter());
auto movedFrom = sr::make_scope_exit(deleter); auto movedFrom = sr::make_scope_exit(deleter);
static_cast<void>(guard); static_cast<void>(guard);
} }


TEST_CASE("move transfers state", "[ScopeGuard]")
TEST_CASE("move transfers state", "[ScopeExit]")
{ {
REQUIRE_CALL(m, deleter()); REQUIRE_CALL(m, deleter());
auto movedFrom = sr::make_scope_exit(deleter); auto movedFrom = sr::make_scope_exit(deleter);
static_cast<void>(guard); static_cast<void>(guard);
} }


TEST_CASE("move transfers state if released", "[ScopeGuard]")
TEST_CASE("move transfers state if released", "[ScopeExit]")
{ {
REQUIRE_CALL(m, deleter()).TIMES(0); REQUIRE_CALL(m, deleter()).TIMES(0);
auto movedFrom = sr::make_scope_exit(deleter); auto movedFrom = sr::make_scope_exit(deleter);
static_cast<void>(guard); static_cast<void>(guard);
} }


TEST_CASE("no exception propagation from deleter", "[ScopeGuard]")
TEST_CASE("no exception propagation from deleter", "[ScopeExit]")
{ {
REQUIRE_NOTHROW([] { REQUIRE_NOTHROW([] {
auto guard = sr::make_scope_exit([] { throw std::exception{}; }); auto guard = sr::make_scope_exit([] { throw std::exception{}; });

Loading…
Cancel
Save