585 |
585 |
586 QLocalSocket* serverSocket = server.nextPendingConnection(); |
586 QLocalSocket* serverSocket = server.nextPendingConnection(); |
587 char buffer[dataBufferSize]; |
587 char buffer[dataBufferSize]; |
588 memset(buffer, 0, dataBufferSize); |
588 memset(buffer, 0, dataBufferSize); |
589 serverSocket->write(buffer, dataBufferSize); |
589 serverSocket->write(buffer, dataBufferSize); |
590 serverSocket->flush(); |
590 serverSocket->waitForBytesWritten(); |
591 |
591 |
|
592 // wait until the first 128 bytes are ready to read |
592 QVERIFY(client.waitForReadyRead()); |
593 QVERIFY(client.waitForReadyRead()); |
593 QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); |
594 QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); |
594 #if defined(QT_LOCALSOCKET_TCP) || defined(Q_OS_SYMBIAN) |
595 // wait until the second 128 bytes are ready to read |
595 QTest::qWait(250); |
596 QVERIFY(client.waitForReadyRead()); |
596 #endif |
|
597 QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); |
597 QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); |
|
598 // no more bytes available |
|
599 QVERIFY(client.bytesAvailable() == 0); |
598 } |
600 } |
599 |
601 |
600 // QLocalSocket/Server can take a name or path, check that it works as expected |
602 // QLocalSocket/Server can take a name or path, check that it works as expected |
601 void tst_QLocalSocket::fullPath() |
603 void tst_QLocalSocket::fullPath() |
602 { |
604 { |
691 ++tries; |
693 ++tries; |
692 } while ((socket.error() == QLocalSocket::ServerNotFoundError |
694 } while ((socket.error() == QLocalSocket::ServerNotFoundError |
693 || socket.error() == QLocalSocket::ConnectionRefusedError) |
695 || socket.error() == QLocalSocket::ConnectionRefusedError) |
694 && tries < 1000); |
696 && tries < 1000); |
695 if (tries == 0 && socket.state() != QLocalSocket::ConnectedState) { |
697 if (tries == 0 && socket.state() != QLocalSocket::ConnectedState) { |
696 QVERIFY(socket.waitForConnected(3000)); |
698 QVERIFY(socket.waitForConnected(7000)); |
697 QVERIFY(socket.state() == QLocalSocket::ConnectedState); |
699 QVERIFY(socket.state() == QLocalSocket::ConnectedState); |
698 } |
700 } |
699 |
701 |
700 // We should *not* have this signal yet! |
702 // We should *not* have this signal yet! |
701 if (tries == 0) |
703 if (tries == 0) |
721 QVERIFY2(server.listen("qlocalsocket_threadtest"), |
723 QVERIFY2(server.listen("qlocalsocket_threadtest"), |
722 server.errorString().toLatin1().constData()); |
724 server.errorString().toLatin1().constData()); |
723 int done = clients; |
725 int done = clients; |
724 while (done > 0) { |
726 while (done > 0) { |
725 bool timedOut = true; |
727 bool timedOut = true; |
726 QVERIFY(server.waitForNewConnection(3000, &timedOut)); |
728 QVERIFY(server.waitForNewConnection(7000, &timedOut)); |
727 QVERIFY(!timedOut); |
729 QVERIFY(!timedOut); |
728 QLocalSocket *serverSocket = server.nextPendingConnection(); |
730 QLocalSocket *serverSocket = server.nextPendingConnection(); |
729 QVERIFY(serverSocket); |
731 QVERIFY(serverSocket); |
730 QTextStream out(serverSocket); |
732 QTextStream out(serverSocket); |
731 out << testLine << endl; |
733 out << testLine << endl; |
974 client.connectToServer("writeOnlySocket", QIODevice::WriteOnly); |
976 client.connectToServer("writeOnlySocket", QIODevice::WriteOnly); |
975 QVERIFY(client.waitForConnected()); |
977 QVERIFY(client.waitForConnected()); |
976 #if defined(Q_OS_SYMBIAN) |
978 #if defined(Q_OS_SYMBIAN) |
977 QTest::qWait(250); |
979 QTest::qWait(250); |
978 #endif |
980 #endif |
979 QVERIFY(server.waitForNewConnection()); |
981 QVERIFY(server.waitForNewConnection(200)); |
980 QLocalSocket* serverSocket = server.nextPendingConnection(); |
982 QLocalSocket* serverSocket = server.nextPendingConnection(); |
981 QVERIFY(serverSocket); |
983 QVERIFY(serverSocket); |
982 |
984 |
983 QCOMPARE(client.bytesAvailable(), qint64(0)); |
985 QCOMPARE(client.bytesAvailable(), qint64(0)); |
984 QCOMPARE(client.state(), QLocalSocket::ConnectedState); |
986 QCOMPARE(client.state(), QLocalSocket::ConnectedState); |