On 11/17/2014 04:28 PM, Raphael Fuchs wrote:
Hi all,
qpid seems to be running fine on my Solaris machine, but there is one unit
test which fails.
I am running qpid 0.28.
noname@solaris:~/install/qpid-
0.28_solaris/cpp/build/src/tests$ ./unit_test
Running 310 test cases...
/export/home/noname/install/qpid-0.28_solaris/cpp/src/tests/MessagingSessionTests.cpp(369):
error in "testUnsettledAcks": check fix.session.getUnsettledAcks() == 10u
failed [0 != 10]
/export/home/noname/install/qpid-0.28_solaris/cpp/src/tests/MessagingSessionTests.cpp(862):
last checkpoint
The Source is:
-------------------
QPID_AUTO_TEST_CASE(testUnsettledAcks)
357 {
358 QueueFixture fix;
359 Sender sender = fix.session.createSender(fix.queue);
360 for (uint i = 0; i < 10; ++i) {
361 sender.send(Message((boost::format("Message_%1%") %
(i+1)).str()));
362 }
363 Receiver receiver = fix.session.createReceiver(fix.queue);
364 for (uint i = 0; i < 10; ++i) {
365 BOOST_CHECK_EQUAL(receiver.fetch().getContent(),
(boost::format("Message_%1%") % (i+1)).str());
366 }
367 BOOST_CHECK_EQUAL(fix.session.getUnsettledAcks(), 0u);
368 fix.session.acknowledge();
369 BOOST_CHECK_EQUAL(fix.session.getUnsettledAcks(), 10u); // this
one fails
370 fix.session.sync();
371 BOOST_CHECK_EQUAL(fix.session.getUnsettledAcks(), 0u);
372 }
So getUnsettledAcks() seems to fail. Can someone tell me what
getUnsettledAcks() does and if it is an important function?
It gives a count of the number of messages that have been acknowledged
by the application, but for which the confirmation of the
acknowledgement from the broker has not yet been received.
It is not often used in my experience.
The test above is actually fragile anyway. There is a race between the
testing thread checking the return value after the acknowledge (line 369
as quoted above) and the response coming back from the server. Though
the application thread would usually win, there is no way of
guaranteeing that.
The method is actually pretty hard to test, which again leads me to
suspect that it is not that much use in practice.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]