+++ /dev/null
-#include "threadtestcontroller.h"
-#include <QTcpServer>
-#include <QTcpSocket>
-#include <QDebug>
-
-#include <QFile>
-#include <QxtFileLock>
-#include <QCoreApplication>
-
-ThreadTestController::ThreadTestController(QObject *parent)
- : QObject(parent)
-{
- server = new QTcpServer(this);
- connect(server,SIGNAL(newConnection ()),this,SLOT(doTests()));
-}
-
-
-ThreadTestController::~ThreadTestController()
-{
-}
-
-void ThreadTestController::doTests()
-{
- QTcpSocket *socket = server->nextPendingConnection();
- QFile file("lock.file");
-
- #define DoNextTest() socket->putChar('n');\
- if(socket->waitForReadyRead(-1))\
- {\
- socket->getChar(&testResult);\
- if(testResult == 'f')\
- qDebug()<<"----Test failed----";\
- else if(testResult == 's')\
- qDebug()<<"----Test passed----";\
- else\
- qDebug()<<"----Wrong result value----";\
- }\
- else qDebug()<<"No ready read";
-
- if(socket && file.open(QIODevice::ReadWrite))
- {
- char testResult = 'f';
-
- if(1)
- {
- qDebug()<<"----Starting next test-----";
- qDebug()<<"Trying to readlock the same region ";
- QxtFileLock lock(&file,0x10,20,QxtFileLock::ReadLock);
- if(lock.lock())
- {
- DoNextTest();
- }
- }
-
- if(1)
- {
- qDebug()<<"----Starting next test-----";
- qDebug()<<"Trying to lock the same region with different locks";
- QxtFileLock lock(&file,0x10,20,QxtFileLock::ReadLock);
- if(lock.lock())
- {
- DoNextTest();
- }
- }
-
- if(1)
- {
- qDebug()<<"----Starting next test-----";
- qDebug()<<"Trying to writelock the same region twice";
- QxtFileLock lock(&file,0x10,20,QxtFileLock::WriteLock);
- if(lock.lock())
- {
- DoNextTest();
- }
- }
-
- if(1)
- {
- qDebug()<<"----Starting next test-----";
- qDebug()<<"Trying to writelock different regions";
- QxtFileLock lock(&file,0x10,20,QxtFileLock::WriteLock);
- if(lock.lock())
- {
- DoNextTest();
- }
- }
-
- }
- QCoreApplication::instance()->exit();
-}
-
-bool ThreadTestController::startTests()
-{
- if (!server->listen(QHostAddress::Any,55555))
- {
- qDebug()<<"Could not start listening Server "<<server->serverError();
- return false;
- }
- return true;
-}
-
-