Go to the documentation of this file.00001
00011
00012
00013
00014 #include <iostream>
00015 #include <ecl/config/ecl.hpp>
00016 #if defined(ECL_IS_POSIX)
00017
00018
00019
00020
00021
00022 #include <iostream>
00023 #include <gtest/gtest.h>
00024 #include <ecl/config/ecl.hpp>
00025 #include <ecl/exceptions/standard_exception.hpp>
00026 #include <ecl/time/timestamp.hpp>
00027 #include "../../include/ecl/threads/mutex.hpp"
00028
00029
00030
00031
00032
00033 using ecl::StandardException;
00034 using ecl::Mutex;
00035 using ecl::Duration;
00036
00037
00038
00039
00040
00041 TEST(MutexTests,selfDestruct)
00042 {
00043 #if defined(NDEBUG) || defined(ECL_NDEBUG)
00044 std::cout << "Skipping deadlock tests - posix doesn't help you in release mode." << std::endl;
00045 SUCCEED();
00046 #else
00047
00048
00049 Mutex mutex;
00050 mutex.lock();
00051 try {
00052 mutex.lock();
00053 } catch (StandardException &e) {
00054 SUCCEED();
00055 }
00056 mutex.unlock();
00057 #endif
00058 }
00059
00060 TEST(MutexTests,tryLock)
00061 {
00062
00063 Mutex mutex;
00064 mutex.trylock();
00065 EXPECT_FALSE(mutex.trylock());
00066 mutex.unlock();
00067 }
00068
00069 TEST(MutexTests,timedLock)
00070 {
00071
00072
00073
00074
00075
00076
00077
00078 }
00079
00080
00081
00082
00083
00084 int main(int argc, char **argv)
00085 {
00086
00087 testing::InitGoogleTest(&argc, argv);
00088 return RUN_ALL_TESTS();
00089 }
00090
00091 #else
00092
00093
00094
00095
00096
00097 int main(int argc, char **argv)
00098 {
00099
00100 std::cout << "Currently not supported on your platform." << std::endl;
00101 }
00102
00103 #endif