25 #ifndef WTHREADEDFUNCTION_TEST_H
26 #define WTHREADEDFUNCTION_TEST_H
30 #include <cxxtest/TestSuite.h>
32 #include "../WThreadedFunction.h"
33 #include "../WSharedObject.h"
73 for(
int i = 1; i <= *
m_input.get() && !shutdown(); ++i )
145 boost::shared_ptr< FuncType > func(
new FuncType( 5 ) );
150 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
152 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
154 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
156 TS_ASSERT_EQUALS( func->getResult(), 15 );
160 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
163 TS_ASSERT_EQUALS( func->getResult(), 15 );
166 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
169 TS_ASSERT_EQUALS( func->getResult(), 30 );
176 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
178 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
180 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
182 TS_ASSERT_EQUALS( func->getResult(), 30 );
189 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
191 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
193 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
195 TS_ASSERT_EQUALS( func->getResult(), 75 );
205 boost::shared_ptr< FuncType > func(
new FuncType( 100000000 ) );
208 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
210 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
212 TS_ASSERT_EQUALS( f.
status(), W_THREADS_STOP_REQUESTED );
214 TS_ASSERT_EQUALS( f.
status(), W_THREADS_ABORTED );
216 TS_ASSERT( func->stopped() );
225 boost::shared_ptr< FuncType > func(
new FuncType( 5 ) );
228 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
230 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
232 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
234 TS_ASSERT_EQUALS( func->getResult(), 90 );
253 TS_ASSERT_EQUALS( f.
status(), W_THREADS_ABORTED );
270 #endif // WTHREADEDFUNCTION_TEST_H