blob: 80574f9ebf58b650eb1cc677bb0ab27209c2ef0f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#define BOOST_TEST_MODULE ScopeExit
#include <boost/test/unit_test.hpp>
#include "scopeExit.h"
#include <string>
BOOST_AUTO_TEST_CASE ( cleanexit )
{
std::string log;
{
ScopeExit se([&log]{ log += "before"; }, [&log]{ log += "clean"; }, [&log]{ log += "error"; }, [&log]{ log += "after"; });
}
BOOST_REQUIRE_EQUAL(log, "beforecleanafter");
}
BOOST_AUTO_TEST_CASE ( uncaught )
{
BOOST_REQUIRE_THROW({
std::string log;
{
ScopeExit se([&log]{ log += "before"; }, [&log]{ log += "clean"; }, [&log]{ log += "error"; }, [&log]{ log += "after"; });
throw std::runtime_error("test unclean exit");
}
BOOST_REQUIRE_EQUAL(log, "beforeerrorafter");
}, std::runtime_error);
}
|