Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r86363 - trunk/libs/sync/test/run
From: andrey.semashev_at_[hidden]
Date: 2013-10-19 12:14:36


Author: andysem
Date: 2013-10-19 12:14:35 EDT (Sat, 19 Oct 2013)
New Revision: 86363
URL: http://svn.boost.org/trac/boost/changeset/86363

Log:
Enabled CV and timed mutex tests.

Text files modified:
   trunk/libs/sync/test/run/mutex_test.cpp | 99 +++++++++++++++++++++------------------
   1 files changed, 52 insertions(+), 47 deletions(-)

Modified: trunk/libs/sync/test/run/mutex_test.cpp
==============================================================================
--- trunk/libs/sync/test/run/mutex_test.cpp Sat Oct 19 09:53:56 2013 (r86362)
+++ trunk/libs/sync/test/run/mutex_test.cpp 2013-10-19 12:14:35 EDT (Sat, 19 Oct 2013) (r86363)
@@ -6,12 +6,14 @@
 
 #include <boost/test/unit_test.hpp>
 
+#include <boost/bind.hpp>
 #include <boost/sync/mutexes.hpp>
 #include <boost/sync/locks.hpp>
+#include <boost/sync/condition_variables/condition_variable.hpp>
 #include <boost/sync/support/boost_date_time.hpp>
-//#include <boost/thread/recursive_mutex.hpp>
-//#include <boost/thread/thread_time.hpp>
-//#include <boost/thread/condition.hpp>
+#include <boost/thread/thread.hpp>
+#include <boost/thread/thread_time.hpp>
+#include <boost/date_time/posix_time/posix_time_types.hpp>
 
 #include "utils.hpp"
 
@@ -24,7 +26,7 @@
     void operator()() const
     {
         mutex_type mutex;
-// boost::condition condition;
+ boost::sync::condition_variable condition;
 
         // Test the lock's constructors.
         {
@@ -33,16 +35,16 @@
         }
         lock_type lock(mutex);
         BOOST_CHECK(lock ? true : false);
-/*
+
         // Construct and initialize an xtime for a fast time out.
- boost::xtime xt = delay(0, 100);
+ boost::system_time timeout = boost::get_system_time() + boost::posix_time::milliseconds(100);
 
         // Test the lock and the mutex with condition variables.
         // No one is going to notify this condition variable. We expect to
         // time out.
- BOOST_CHECK(!condition.timed_wait(lock, xt));
+ BOOST_CHECK(!condition.timed_wait(lock, timeout));
         BOOST_CHECK(lock ? true : false);
-*/
+
         // Test the lock and unlock methods.
         lock.unlock();
         BOOST_CHECK(!lock);
@@ -60,7 +62,7 @@
     void operator()()
     {
         mutex_type mutex;
-// boost::condition condition;
+ boost::sync::condition_variable condition;
 
         // Test the lock's constructors.
         {
@@ -73,16 +75,16 @@
         }
         lock_type lock(mutex, boost::sync::try_to_lock);
         BOOST_CHECK(lock ? true : false);
-/*
+
         // Construct and initialize an xtime for a fast time out.
- boost::xtime xt = delay(0, 100);
+ boost::system_time timeout = boost::get_system_time() + boost::posix_time::milliseconds(100);
 
         // Test the lock and the mutex with condition variables.
         // No one is going to notify this condition variable. We expect to
         // time out.
- BOOST_CHECK(!condition.timed_wait(lock, xt));
+ BOOST_CHECK(!condition.timed_wait(lock, timeout));
         BOOST_CHECK(lock ? true : false);
-*/
+
         // Test the lock, unlock and trylock methods.
         lock.unlock();
         BOOST_CHECK(!lock);
@@ -94,40 +96,42 @@
         BOOST_CHECK(lock ? true : false);
     }
 };
-/*
+
 template<typename Mutex>
 struct test_lock_times_out_if_other_thread_has_lock
 {
- typedef boost::unique_lock<Mutex> Lock;
+ typedef boost::sync::unique_lock<Mutex> Lock;
+ typedef boost::sync::mutex done_mutex_type;
 
     Mutex m;
- boost::mutex done_mutex;
+ done_mutex_type done_mutex;
     bool done;
     bool locked;
- boost::condition_variable done_cond;
+ boost::sync::condition_variable done_cond;
 
- test_lock_times_out_if_other_thread_has_lock():
+ test_lock_times_out_if_other_thread_has_lock() :
         done(false),locked(false)
- {}
+ {
+ }
 
     void locking_thread()
     {
- Lock lock(m,boost::defer_lock);
+ Lock lock(m, boost::sync::defer_lock);
         lock.timed_lock(boost::posix_time::milliseconds(50));
 
- boost::lock_guard<boost::mutex> lk(done_mutex);
- locked=lock.owns_lock();
- done=true;
+ boost::sync::lock_guard< done_mutex_type > lk(done_mutex);
+ locked = lock.owns_lock();
+ done = true;
         done_cond.notify_one();
     }
 
     void locking_thread_through_constructor()
     {
- Lock lock(m,boost::posix_time::milliseconds(50));
+ Lock lock(m, boost::posix_time::milliseconds(50));
 
- boost::lock_guard<boost::mutex> lk(done_mutex);
- locked=lock.owns_lock();
- done=true;
+ boost::sync::lock_guard< done_mutex_type > lk(done_mutex);
+ locked = lock.owns_lock();
+ done = true;
         done_cond.notify_one();
     }
 
@@ -142,24 +146,23 @@
     {
         Lock lock(m);
 
- locked=false;
- done=false;
+ locked = false;
+ done = false;
 
- boost::thread t(test_func,this);
+ boost::thread t(test_func, this);
 
         try
         {
             {
- boost::unique_lock<boost::mutex> lk(done_mutex);
- BOOST_CHECK(done_cond.timed_wait(lk,boost::posix_time::seconds(2),
- boost::bind(&this_type::is_done,this)));
+ boost::sync::unique_lock< done_mutex_type > lk(done_mutex);
+ BOOST_CHECK(done_cond.timed_wait(lk, boost::posix_time::seconds(2), boost::bind(&this_type::is_done, this)));
                 BOOST_CHECK(!locked);
             }
 
             lock.unlock();
             t.join();
         }
- catch(...)
+ catch (...)
         {
             lock.unlock();
             t.join();
@@ -180,6 +183,7 @@
 {
     typedef M mutex_type;
     typedef boost::sync::unique_lock< mutex_type > lock_type;
+ typedef boost::sync::unique_lock< mutex_type > timed_lock_type;
 
     static bool fake_predicate()
     {
@@ -191,25 +195,25 @@
         test_lock_times_out_if_other_thread_has_lock<mutex_type>()();
 
         mutex_type mutex;
- boost::condition condition;
+ boost::sync::condition_variable condition;
 
         // Test the lock's constructors.
         {
             // Construct and initialize an xtime for a fast time out.
- boost::system_time xt = boost::get_system_time()+boost::posix_time::milliseconds(100);
+ boost::system_time xt = boost::get_system_time() + boost::posix_time::milliseconds(100);
 
             timed_lock_type lock(mutex, xt);
             BOOST_CHECK(lock ? true : false);
         }
         {
- timed_lock_type lock(mutex, boost::defer_lock);
+ timed_lock_type lock(mutex, boost::sync::defer_lock);
             BOOST_CHECK(!lock);
         }
         timed_lock_type lock(mutex);
         BOOST_CHECK(lock ? true : false);
 
         // Construct and initialize an xtime for a fast time out.
- boost::system_time timeout = boost::get_system_time()+boost::posix_time::milliseconds(100);
+ boost::system_time timeout = boost::get_system_time() + boost::posix_time::milliseconds(100);
 
         // Test the lock and the mutex with condition variables.
         // No one is going to notify this condition variable. We expect to
@@ -217,9 +221,9 @@
         BOOST_CHECK(!condition.timed_wait(lock, timeout, fake_predicate));
         BOOST_CHECK(lock ? true : false);
 
- boost::system_time now=boost::get_system_time();
+ boost::system_time now = boost::get_system_time();
         boost::posix_time::milliseconds const timeout_resolution(20);
- BOOST_CHECK((timeout-timeout_resolution)<now);
+ BOOST_CHECK((timeout - timeout_resolution) < now);
 
         // Test the lock, unlock and timedlock methods.
         lock.unlock();
@@ -228,7 +232,7 @@
         BOOST_CHECK(lock ? true : false);
         lock.unlock();
         BOOST_CHECK(!lock);
- boost::system_time target = boost::get_system_time()+boost::posix_time::milliseconds(100);
+ boost::system_time target = boost::get_system_time() + boost::posix_time::milliseconds(100);
         BOOST_CHECK(lock.timed_lock(target));
         BOOST_CHECK(lock ? true : false);
         lock.unlock();
@@ -248,7 +252,7 @@
 struct test_recursive_lock
 {
     typedef M mutex_type;
- typedef sync::unique_lock< mutex_type > lock_type;
+ typedef boost::sync::unique_lock< mutex_type > lock_type;
 
     void operator()()
     {
@@ -257,7 +261,7 @@
         lock_type lock2(mx);
     }
 };
-*/
+
 
 
 void do_test_mutex()
@@ -274,17 +278,17 @@
 {
     test_trylock<boost::sync::mutex>()();
 }
+
 BOOST_AUTO_TEST_CASE(test_try_mutex)
 {
     timed_test(&do_test_try_mutex, 3);
 }
 
-/*
 void do_test_timed_mutex()
 {
- test_lock<sync::timed_mutex>()();
- test_trylock<sync::timed_mutex>()();
- test_timedlock<sync::timed_mutex>()();
+ test_lock<boost::sync::timed_mutex>()();
+ test_trylock<boost::sync::timed_mutex>()();
+ test_timedlock<boost::sync::timed_mutex>()();
 }
 
 BOOST_AUTO_TEST_CASE(test_timed_mutex)
@@ -292,6 +296,7 @@
     timed_test(&do_test_timed_mutex, 3);
 }
 
+/*
 void do_test_recursive_mutex()
 {
     test_lock<boost::recursive_mutex>()();


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk