kdelibs/threadweaver/Tests/JobTests.h

65 lines
1.3 KiB
C
Raw Normal View History

2014-11-13 01:04:59 +02:00
#ifndef JOBTESTS_H
#define JOBTESTS_H
#include <QtCore/QObject>
namespace ThreadWeaver{
class Job;
}
using ThreadWeaver::Job;
class JobTests : public QObject
{
Q_OBJECT
private Q_SLOTS:
// call finish() before leave a test to make sure the queue is empty
void WeaverLazyThreadCreationTest();
void SimpleJobTest();
void SimpleJobCollectionTest();
void EmptyJobCollectionTest();
void ShortJobSequenceTest();
void EmptyJobSequenceTest();
void QueueAndDequeueSequenceTest();
void RecursiveQueueAndDequeueSequenceTest();
void QueueAndDequeueAllSequenceTest();
void RecursiveQueueAndDequeueAllSequenceTest();
// This test is not the most efficient, as the mutex locking takes most of
// the execution time. Anyway, it will fail if the jobs are not executed
// in the right order, and the order is randomized.
void MassiveJobSequenceTest();
/* TODO: reenable
void SimpleRecursiveSequencesTest();
void SequenceOfSequencesTest();
void QueueAndStopTest();
*/
void ResourceRestrictionPolicyBasicsTest ();
void JobSignalsAreEmittedAsynchronouslyTest();
void DequeSuspendedSequence();
public Q_SLOTS: // slots used during tests that are not test cases
void jobStarted( ThreadWeaver::Job* );
void jobDone( ThreadWeaver::Job* );
};
#endif