1 #include "threadtestcontroller.h"
8 #include <QCoreApplication>
10 ThreadTestController::ThreadTestController(QObject *parent)
13 server = new QTcpServer(this);
14 connect(server,SIGNAL(newConnection ()),this,SLOT(doTests()));
18 ThreadTestController::~ThreadTestController()
22 void ThreadTestController::doTests()
24 QTcpSocket *socket = server->nextPendingConnection();
25 QFile file("lock.file");
27 #define DoNextTest() socket->putChar('n');\
28 if(socket->waitForReadyRead(-1))\
30 socket->getChar(&testResult);\
31 if(testResult == 'f')\
32 qDebug()<<"----Test failed----";\
33 else if(testResult == 's')\
34 qDebug()<<"----Test passed----";\
36 qDebug()<<"----Wrong result value----";\
38 else qDebug()<<"No ready read";
40 if(socket && file.open(QIODevice::ReadWrite))
42 char testResult = 'f';
46 qDebug()<<"----Starting next test-----";
47 qDebug()<<"Trying to readlock the same region ";
48 QxtFileLock lock(&file,0x10,20,QxtFileLock::ReadLock);
57 qDebug()<<"----Starting next test-----";
58 qDebug()<<"Trying to lock the same region with different locks";
59 QxtFileLock lock(&file,0x10,20,QxtFileLock::ReadLock);
68 qDebug()<<"----Starting next test-----";
69 qDebug()<<"Trying to writelock the same region twice";
70 QxtFileLock lock(&file,0x10,20,QxtFileLock::WriteLock);
79 qDebug()<<"----Starting next test-----";
80 qDebug()<<"Trying to writelock different regions";
81 QxtFileLock lock(&file,0x10,20,QxtFileLock::WriteLock);
89 QCoreApplication::instance()->exit();
92 bool ThreadTestController::startTests()
94 if (!server->listen(QHostAddress::Any,55555))
96 qDebug()<<"Could not start listening Server "<<server->serverError();