--- /dev/null
+#include "locktestclient.h"
+#include <QTimer>
+#include <QTcpSocket>
+#include <QDebug>
+#include <QFile>
+#include <QxtFileLock>
+
+LockTestClient::LockTestClient(QObject *parent)
+ : QObject(parent)
+{
+}
+
+
+LockTestClient::~LockTestClient()
+{
+}
+
+void LockTestClient::startTests()
+{
+ QTcpSocket socket;
+ socket.connectToHost ( "localhost", 55555);
+ char control;
+
+ #define GetNextCommand() if(socket.waitForReadyRead (-1) )\
+ {\
+ if(socket.bytesAvailable() > 1)\
+ qDebug()<<"Something is wrong here";\
+ socket.getChar(&control);\
+ if(control == 'a')\
+ {\
+ socket.disconnectFromHost();\
+ return;\
+ }\
+ if(control != 'n')\
+ { \
+ qDebug()<<"Wrong control command";\
+ }\
+ }
+
+ if(socket.waitForConnected (-1))
+ {
+ QFile file("lock.file");
+
+ if(!file.open(QIODevice::ReadWrite))
+ {
+ qDebug()<<"Could not open lockfile";
+ return;
+ }
+
+ if(1)
+ {
+ GetNextCommand();
+ //Trying to readlock the same region
+ QxtFileLock lock(&file,0x10,20,QxtFileLock::ReadLock);
+ if(lock.lock())
+ socket.putChar('s'); //s for success f for fail
+ else
+ socket.putChar('f');
+ socket.waitForBytesWritten(-1);
+ }
+
+ if(1)
+ {
+ GetNextCommand();
+ //Trying to lock the same region with different locks
+ QxtFileLock lock(&file,0x10,20,QxtFileLock::WriteLock);
+
+ if(!lock.lock())
+ socket.putChar('s'); //s for success f for fail
+ else
+ socket.putChar('f');
+ socket.waitForBytesWritten(-1);
+ }
+
+ if(1)
+ {
+ GetNextCommand();
+ //Trying to writelock the same region
+ QxtFileLock lock(&file,0x10,20,QxtFileLock::WriteLock);
+
+ if(!lock.lock())
+ socket.putChar('s'); //s for success f for fail
+ else
+ socket.putChar('f');
+ socket.waitForBytesWritten(-1);
+ }
+
+ if(1)
+ {
+ GetNextCommand();
+ //Trying to writelock different regions
+ QxtFileLock lock(&file,0x10+21,20,QxtFileLock::WriteLock);
+
+ if(lock.lock())
+ socket.putChar('s'); //s for success f for fail
+ else
+ socket.putChar('f');
+ socket.waitForBytesWritten(-1);
+ }
+
+ }
+}
+
+