Scroom 0.14-49-gb7ae7a6d
Loading...
Searching...
No Matches
threadpool-queue-tests.cc File Reference
#include <iostream>
#include <memory>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/thread.hpp>
#include <gtest/gtest.h>
#include <scroom/function-additor.hh>
#include <scroom/semaphore.hh>
#include "helpers.hh"
#include "queue.hh"
Include dependency graph for threadpool-queue-tests.cc:

Functions

static const millisec short_timeout (250)
 
static const millisec long_timeout (2000)
 
 EXPECT_TRUE (queue !=nullptr)
 
 EXPECT_EQ (0, queue->getCount())
 
queue jobStarted ()
 
 EXPECT_EQ (1, queue->getCount())
 
 EXPECT_EQ (2, queue->getCount())
 
queue jobFinished ()
 
 EXPECT_TRUE (qi !=nullptr)
 
 EXPECT_EQ (0, qi->getCount())
 
 EXPECT_EQ (1, qi->getCount())
 
 EXPECT_EQ (2, qi->getCount())
 
boost::thread const t (pass(&s1)+destroy(queue)+clear(&s2))
 
queue reset ()
 
 EXPECT_TRUE (weakQueue.lock() !=nullptr)
 
s1 V ()
 
 EXPECT_FALSE (s2.P(long_timeout))
 
 EXPECT_FALSE (weakQueue.lock() !=nullptr)
 
 EXPECT_FALSE (s2.P(short_timeout))
 
 EXPECT_TRUE (s2.P(long_timeout))
 
boost::thread const t (clear(&s0)+pass(&s1)+destroy(queue)+clear(&s2))
 
s0 P ()
 
t schedule (clear(&s), queue)
 
t add ()
 
 EXPECT_TRUE (s.P(long_timeout))
 
t schedule (clear(&s2))
 
 EXPECT_FALSE (s1.try_P())
 
pool schedule (clear(&s1)+pass(&s2), queue)
 
 EXPECT_TRUE (s1.P(long_timeout))
 
boost::thread const t (pass(&s3)+destroy(queue)+clear(&s4))
 
 EXPECT_FALSE (s4.P(long_timeout))
 
 EXPECT_TRUE (s4.P(long_timeout))
 

Variables

ThreadPool::Queue::WeakPtr const weakQueue = queue
 
QueueImpl::Ptr const qi = queue->get()
 
Semaphore s1 (0)
 
Semaphore s2 (0)
 
auto * l = new QueueLock(queue->get())
 
Semaphore s0 (0)
 
Semaphore s (0)
 
ThreadPool t (0)
 
Semaphore s3 (0)
 
Semaphore s4 (0)
 
ThreadPool pool (0)
 

Function Documentation

◆ add()

◆ EXPECT_EQ() [1/6]

EXPECT_EQ ( ,
qi->  getCount() 
)

◆ EXPECT_EQ() [2/6]

EXPECT_EQ ( ,
queue->  getCount() 
)

◆ EXPECT_EQ() [3/6]

EXPECT_EQ ( ,
qi->  getCount() 
)

◆ EXPECT_EQ() [4/6]

EXPECT_EQ ( ,
queue->  getCount() 
)

◆ EXPECT_EQ() [5/6]

EXPECT_EQ ( ,
qi->  getCount() 
)

◆ EXPECT_EQ() [6/6]

EXPECT_EQ ( ,
queue->  getCount() 
)

◆ EXPECT_FALSE() [1/5]

EXPECT_FALSE ( s1.  try_P())

◆ EXPECT_FALSE() [2/5]

EXPECT_FALSE ( s2.  Plong_timeout)

◆ EXPECT_FALSE() [3/5]

EXPECT_FALSE ( s2.  Pshort_timeout)

◆ EXPECT_FALSE() [4/5]

EXPECT_FALSE ( s4.  Plong_timeout)

◆ EXPECT_FALSE() [5/5]

EXPECT_FALSE ( weakQueue.lock() !  = nullptr)

◆ EXPECT_TRUE() [1/7]

EXPECT_TRUE ( qi = nullptr)

◆ EXPECT_TRUE() [2/7]

EXPECT_TRUE ( queue !  = nullptr)

◆ EXPECT_TRUE() [3/7]

EXPECT_TRUE ( s.  Plong_timeout)

◆ EXPECT_TRUE() [4/7]

EXPECT_TRUE ( s1.  Plong_timeout)

◆ EXPECT_TRUE() [5/7]

EXPECT_TRUE ( s2.  Plong_timeout)

◆ EXPECT_TRUE() [6/7]

EXPECT_TRUE ( s4.  Plong_timeout)

◆ EXPECT_TRUE() [7/7]

EXPECT_TRUE ( weakQueue.lock() !  = nullptr)

◆ jobFinished()

qi jobFinished ( )

◆ jobStarted()

qi jobStarted ( )

◆ long_timeout()

static const millisec long_timeout ( 2000  )
static

◆ P()

s0 P ( )

◆ reset()

queue reset ( )
132{
133 testData.reset();
134
135 return false;
136}
TestData::Ptr testData
Definition test-helpers.cc:25

◆ schedule() [1/3]

t schedule ( clear s,
queue   
)

◆ schedule() [2/3]

pool schedule ( clear &s1+pass s2,
queue   
)

◆ schedule() [3/3]

t schedule ( clear s2)

◆ short_timeout()

static const millisec short_timeout ( 250  )
static

◆ t() [1/3]

boost::thread const t ( clear &s0+pass &s1+destroy(queue)+clear s2)

◆ t() [2/3]

boost::thread const t ( pass &s1+destroy(queue)+clear s2)

◆ t() [3/3]

boost::thread const t ( pass &s3+destroy(queue)+clear s4)

◆ V()

s1 V ( )

Variable Documentation

◆ l

delete l = new QueueLock(queue->get())

◆ pool

ThreadPool pool ( )

◆ qi

QueueImpl::Ptr const qi = queue->get()

◆ s

Semaphore s(0) ( )
Initial value:
{
std::shared_ptr< Queue > Ptr
Definition threadpool.hh:78
static Ptr create()
ThreadPool::Queue.
Definition threadpoolimpl.cc:380

◆ s0

Semaphore s0(0) ( )

◆ s1

Semaphore s1(0) ( )

◆ s2

Semaphore s2(0) ( )

◆ s3

Scaffold s3 ( )

◆ s4

Scaffold s4 ( )

◆ t

◆ weakQueue