update flakey get test

This commit is contained in:
Matt Broadstone 2014-07-28 17:55:30 -04:00
parent a8feef7d82
commit 75f7882d1c
2 changed files with 12 additions and 6 deletions

View File

@ -484,8 +484,7 @@ void Queue::get(bool noAck)
out << qint16(0); //reserved 1 out << qint16(0); //reserved 1
Frame::writeField('s', out, d->name); Frame::writeField('s', out, d->name);
out << qint8(noAck ? 1 : 0); // no-ack
out << qint8(noAck ? 1 : 0); // noAck
frame.setArguments(arguments); frame.setArguments(arguments);
d->sendFrame(frame); d->sendFrame(frame);
@ -505,8 +504,8 @@ void Queue::ack(const Message &message)
QByteArray arguments; QByteArray arguments;
QDataStream out(&arguments, QIODevice::WriteOnly); QDataStream out(&arguments, QIODevice::WriteOnly);
out << message.deliveryTag(); // reserved 1 out << message.deliveryTag();
out << qint8(0); // noAck out << qint8(0); // multiple
frame.setArguments(arguments); frame.setArguments(arguments);
d->sendFrame(frame); d->sendFrame(frame);

View File

@ -360,7 +360,7 @@ void tst_QAMQPQueue::get()
queue->declare(); queue->declare();
QVERIFY(waitForSignal(queue, SIGNAL(declared()))); QVERIFY(waitForSignal(queue, SIGNAL(declared())));
const int messageCount = 50; const int messageCount = 200;
Exchange *defaultExchange = client->createExchange(); Exchange *defaultExchange = client->createExchange();
for (int i = 0; i < messageCount; ++i) { for (int i = 0; i < messageCount; ++i) {
QString expected = QString("message %1").arg(i); QString expected = QString("message %1").arg(i);
@ -370,7 +370,14 @@ void tst_QAMQPQueue::get()
for (int i = 0; i < messageCount; ++i) { for (int i = 0; i < messageCount; ++i) {
QString expected = QString("message %1").arg(i); QString expected = QString("message %1").arg(i);
queue->get(false); queue->get(false);
QVERIFY(waitForSignal(queue, SIGNAL(messageReceived()))); if (!waitForSignal(queue, SIGNAL(messageReceived()))) {
// NOTE: this is here instead of waiting for messages to be
// available with a sleep above. It makes the test a little
// longer if there's a miss, look into a proper fix in the future
i--;
continue;
}
Message message = queue->dequeue(); Message message = queue->dequeue();
QCOMPARE(message.payload(), expected.toUtf8()); QCOMPARE(message.payload(), expected.toUtf8());
queue->ack(message); queue->ack(message);