Ticket #2739: test_ticket_2739.cpp

File test_ticket_2739.cpp, 1.3 KB (added by viboes, 13 years ago)
Line 
1// Copyright (C) 2009 Vicente J. Botet Escriba
2//
3// Distributed under the Boost Software License, Version 1.0. (See accompanying
4// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5#include <boost/thread/thread.hpp>
6#include <boost/test/unit_test.hpp>
7#include <iostream>
8
9static bool mycallable1_called =false;
10
11static bool mycallable2_called =false;
12
13struct mycallable1
14{
15 void operator()() const {
16 mycallable1_called=true;
17 std::cout << "mycallable1" << std::endl;
18 };
19};
20
21struct mycallable2
22{
23 void operator()() const {
24 mycallable2_called=true;
25 std::cout << "mycallable2" << std::endl;
26 //BOOST_CHECK(false && "mycallable2 has been called");
27 };
28};
29
30void my_thread() {
31 mycallable1 x;
32 boost::this_thread::at_thread_exit(x);
33}
34
35void test_ticket_2739()
36{
37 mycallable2 x;
38 boost::this_thread::at_thread_exit(x);
39
40 boost::thread th(my_thread);
41 th.join();
42 BOOST_CHECK(mycallable1_called);
43}
44
45boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
46{
47 boost::unit_test_framework::test_suite* test =
48 BOOST_TEST_SUITE("Boost.Threads: ticket 2739");
49
50 test->add(BOOST_TEST_CASE(test_ticket_2739));
51 return test;
52}