home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 275 / DPCS0111DVD.ISO / Toolkit / Audio-Visual / VirtualDub / Source / VirtualDub-1.9.10-src.7z / src / test / source / TestDistributedJobQueue.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2009-09-14  |  1.3 KB  |  49 lines

  1. #include <vd2/system/vdstl.h>
  2. #include <vd2/VDLib/Job.h>
  3. #include "test.h"
  4.  
  5. namespace {
  6.     enum JobState {
  7.         waiting        = VDJob::kStateWaiting,
  8.         inprogress    = VDJob::kStateInProgress,
  9.         completed    = VDJob::kStateCompleted,
  10.         postponed    = VDJob::kStatePostponed,
  11.         aborted        = VDJob::kStateAborted,
  12.         error        = VDJob::kStateError,
  13.         aborting    = VDJob::kStateAborting,
  14.         count        = VDJob::kStateCount            
  15.     };
  16.  
  17.     VDJob j(JobState state, int changeRev, bool modified) {
  18.         VDJob job;
  19.  
  20.         job.SetState(state);
  21.         job.mChangeRevision = changeRev;
  22.         job.SetModified(modified);
  23.  
  24.         return job;
  25.     }
  26.  
  27.     VDJob operator+(const VDJob& x, const VDJob& y) {
  28.         VDJob t(x);
  29.  
  30.         t.Merge(y);
  31.         return t;
  32.     }
  33.  
  34.     bool operator<<=(const VDJob& x, const VDJob& y) {
  35.         return    x.GetState() == y.GetState() &&
  36.                 x.mChangeRevision == y.mChangeRevision;
  37.     }
  38. }
  39.  
  40. DEFINE_TEST(DistributedJobQueue) {
  41.     TEST_ASSERT(j(waiting, 10, false) + j(postponed, 11, false) <<= j(postponed, 11, false));
  42.     TEST_ASSERT(j(postponed, 10, true) + j(waiting, 10, false) <<= j(postponed, 10, false));
  43.     TEST_ASSERT(j(postponed, 10, true) + j(completed, 10, false) <<= j(postponed, 10, false));
  44.     TEST_ASSERT(j(postponed, 10, true) + j(completed, 11, false) <<= j(completed, 11, false));
  45.     TEST_ASSERT(j(postponed, 10, true) + j(completed, 10, false) <<= j(postponed, 10, false));
  46.  
  47.     return 0;
  48. }
  49.