comparison UnitTestsSources/MultiThreadingTests.cpp @ 2598:34dc57f4a7d2 jobs

simplification of JobStepResult
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 16 May 2018 16:23:20 +0200
parents a3fdfb6979ed
children 593d6b0f4cba
comparison
equal deleted inserted replaced
2597:ef7ba1b21d58 2598:34dc57f4a7d2
32 32
33 33
34 #include "PrecompiledHeadersUnitTests.h" 34 #include "PrecompiledHeadersUnitTests.h"
35 #include "gtest/gtest.h" 35 #include "gtest/gtest.h"
36 36
37 #include "../Core/JobsEngine/JobStepRetry.h"
38 #include "../Core/JobsEngine/JobsEngine.h" 37 #include "../Core/JobsEngine/JobsEngine.h"
39 #include "../Core/MultiThreading/Locker.h" 38 #include "../Core/MultiThreading/Locker.h"
40 #include "../Core/OrthancException.h" 39 #include "../Core/OrthancException.h"
41 #include "../Core/SystemToolbox.h" 40 #include "../Core/SystemToolbox.h"
42 #include "../Core/Toolbox.h" 41 #include "../Core/Toolbox.h"
242 241
243 242
244 class DummyJob : public Orthanc::IJob 243 class DummyJob : public Orthanc::IJob
245 { 244 {
246 private: 245 private:
247 JobStepResult result_; 246 bool fails_;
248 unsigned int count_; 247 unsigned int count_;
249 unsigned int steps_; 248 unsigned int steps_;
250 249
251 public: 250 public:
252 DummyJob() : 251 DummyJob() :
253 result_(Orthanc::JobStepCode_Success), 252 fails_(false),
254 count_(0), 253 count_(0),
255 steps_(4) 254 steps_(4)
256 { 255 {
257 } 256 }
258 257
259 explicit DummyJob(JobStepResult result) : 258 explicit DummyJob(bool fails) :
260 result_(result), 259 fails_(fails),
261 count_(0), 260 count_(0),
262 steps_(4) 261 steps_(4)
263 { 262 {
264 } 263 }
265 264
269 268
270 virtual void SignalResubmit() 269 virtual void SignalResubmit()
271 { 270 {
272 } 271 }
273 272
274 virtual JobStepResult* ExecuteStep() 273 virtual JobStepResult ExecuteStep()
275 { 274 {
276 boost::this_thread::sleep(boost::posix_time::milliseconds(10)); 275 boost::this_thread::sleep(boost::posix_time::milliseconds(10));
277 276
278 if (count_ == steps_ - 1) 277 if (fails_)
279 { 278 {
280 return new JobStepResult(result_); 279 return JobStepResult::Failure(ErrorCode_ParameterOutOfRange);
280 }
281 else if (count_ == steps_ - 1)
282 {
283 return JobStepResult::Success();
281 } 284 }
282 else 285 else
283 { 286 {
284 count_++; 287 count_++;
285 return new JobStepResult(JobStepCode_Continue); 288 return JobStepResult::Continue();
286 } 289 }
287 } 290 }
288 291
289 virtual void ReleaseResources() 292 virtual void ReleaseResources()
290 { 293 {
765 768
766 boost::this_thread::sleep(boost::posix_time::milliseconds(100)); 769 boost::this_thread::sleep(boost::posix_time::milliseconds(100));
767 770
768 if (1) 771 if (1)
769 { 772 {
770 printf(">> %d\n", engine.GetRegistry().SubmitAndWait(new DummyJob(JobStepResult(Orthanc::JobStepCode_Failure)), rand() % 10)); 773 ASSERT_TRUE(engine.GetRegistry().SubmitAndWait(new DummyJob(), rand() % 10));
774 ASSERT_FALSE(engine.GetRegistry().SubmitAndWait(new DummyJob(true), rand() % 10));
771 } 775 }
772 776
773 boost::this_thread::sleep(boost::posix_time::milliseconds(100)); 777 boost::this_thread::sleep(boost::posix_time::milliseconds(100));
774 778
775 779