1/* $FreeBSD$ */
2
3int destructed;
4int destructed2;
5
6class Test {
7public:
8	Test() { printf("Test::Test()\n"); }
9	~Test() { printf("Test::~Test()\n"); destructed = 1; }
10};
11
12void
13cleanup_handler(void *arg)
14{
15	destructed2 = 1;
16	printf("%s()\n", __func__);
17}
18
19void
20check_destruct(void)
21{
22	if (!destructed)
23		printf("Bug, object destructor is not called\n");
24	else
25		printf("OK\n");
26}
27
28void
29check_destruct2(void)
30{
31	if (!destructed)
32		printf("Bug, object destructor is not called\n");
33	else if (!destructed2)
34		printf("Bug, cleanup handler is not called\n");
35	else
36		printf("OK\n");
37}
38