| @@ -157,3 +157,28 @@ TEST_CASE("move transfers state if released", "[ScopeFail]") | |||
| static_cast<void>(guard); | |||
| } | |||
| TEST_CASE("deleter called on exception", "[ScopeFail]") | |||
| { | |||
| try | |||
| { | |||
| REQUIRE_CALL(m, deleter()); | |||
| auto guard = sr::make_scope_fail(deleter); | |||
| throw 3; | |||
| } | |||
| catch( ... ) | |||
| { | |||
| } | |||
| } | |||
| TEST_CASE("deleter not called on pending exception", "[ScopeFail]") | |||
| { | |||
| try | |||
| { | |||
| throw 3; | |||
| } | |||
| catch( ... ) | |||
| { | |||
| auto guard = sr::make_scope_fail(deleter); | |||
| } | |||
| } | |||