1 /* $FreeBSD$ */ 2 3 int destructed; 4 int destructed2; 5 6 class Test { 7 public: Test()8 Test() { printf("Test::Test()\n"); } ~Test()9 ~Test() { printf("Test::~Test()\n"); destructed = 1; } 10 }; 11 12 void cleanup_handler(void * arg)13cleanup_handler(void *arg) 14 { 15 destructed2 = 1; 16 printf("%s()\n", __func__); 17 } 18 19 void check_destruct(void)20check_destruct(void) 21 { 22 if (!destructed) 23 printf("Bug, object destructor is not called\n"); 24 else 25 printf("OK\n"); 26 } 27 28 void check_destruct2(void)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