blob: 66f4c4800de9fa4e72e5f06645c04d9c530f2197 (
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
28
29
|
#define BOOST_TEST_MODULE ScopeExit
#include <boost/test/unit_test.hpp>
#include "scopeExit.h"
#include <string>
using namespace AdHoc;
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);
}
|