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 )
146 boost::shared_ptr< FuncType > func(
new FuncType( 5 ) );
151 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
153 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
155 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
157 TS_ASSERT_EQUALS( func->getResult(), 15 );
161 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
164 TS_ASSERT_EQUALS( func->getResult(), 15 );
167 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
170 TS_ASSERT_EQUALS( func->getResult(), 30 );
177 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
179 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
181 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
183 TS_ASSERT_EQUALS( func->getResult(), 30 );
190 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
192 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
194 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
196 TS_ASSERT_EQUALS( func->getResult(), 75 );
206 boost::shared_ptr< FuncType > func(
new FuncType( 100000000 ) );
209 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
211 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
213 TS_ASSERT_EQUALS( f.
status(), W_THREADS_STOP_REQUESTED );
215 TS_ASSERT_EQUALS( f.
status(), W_THREADS_ABORTED );
217 TS_ASSERT( func->stopped() );
226 boost::shared_ptr< FuncType > func(
new FuncType( 5 ) );
229 TS_ASSERT_EQUALS( f.
status(), W_THREADS_INITIALIZED );
231 TS_ASSERT_EQUALS( f.
status(), W_THREADS_RUNNING );
233 TS_ASSERT_EQUALS( f.
status(), W_THREADS_FINISHED );
235 TS_ASSERT_EQUALS( func->getResult(), 90 );
254 TS_ASSERT_EQUALS( f.
status(), W_THREADS_ABORTED );
271 #endif // WTHREADEDFUNCTION_TEST_H