Mercurial > hg > orthanc
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 |