diff options
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Deliverable.h | 1 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Exchange.cpp | 2 | ||||
| -rw-r--r-- | qpid/tests/src/py/qpid_tests/broker_0_10/stats.py | 33 |
3 files changed, 34 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/broker/Deliverable.h b/qpid/cpp/src/qpid/broker/Deliverable.h index e08d0e1b20..4dc67fdcfc 100644 --- a/qpid/cpp/src/qpid/broker/Deliverable.h +++ b/qpid/cpp/src/qpid/broker/Deliverable.h @@ -38,7 +38,6 @@ namespace qpid { virtual Message& getMessage() = 0; virtual void deliverTo(const boost::shared_ptr<Queue>& queue) = 0; - virtual uint64_t contentSize() { return 0; } virtual ~Deliverable(){} }; } diff --git a/qpid/cpp/src/qpid/broker/Exchange.cpp b/qpid/cpp/src/qpid/broker/Exchange.cpp index f8a69c4451..b9080cdda5 100644 --- a/qpid/cpp/src/qpid/broker/Exchange.cpp +++ b/qpid/cpp/src/qpid/broker/Exchange.cpp @@ -135,7 +135,7 @@ void Exchange::doRoute(Deliverable& msg, ConstBindingList b) if (mgmtExchange != 0) { qmf::org::apache::qpid::broker::Exchange::PerThreadStats *eStats = mgmtExchange->getStatistics(); - uint64_t contentSize = msg.contentSize(); + uint64_t contentSize = msg.getMessage().getContentSize(); eStats->msgReceives += 1; eStats->byteReceives += contentSize; diff --git a/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py b/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py index d78366a616..d36cc79acc 100644 --- a/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py +++ b/qpid/tests/src/py/qpid_tests/broker_0_10/stats.py @@ -63,6 +63,39 @@ class BrokerStatsTests(Base): def setup_access(self): return BrokerAgent(self.conn) + def test_exchange_stats(self): + agent = self.setup_access() + start_broker = agent.getBroker() + + agent.addExchange("direct", "stats-test-exchange") + sess = self.setup_session() + tx_a = sess.sender("stats-test-exchange/a") + tx_b = sess.sender("stats-test-exchange/b") + rx_a = sess.receiver("stats-test-exchange/a") + + exchange = agent.getExchange("stats-test-exchange") + self.failUnless(exchange, "expected a valid exchange object") + self.assertEqual(exchange.msgReceives, 0, "msgReceives") + self.assertEqual(exchange.msgDrops, 0, "msgDrops") + self.assertEqual(exchange.msgRoutes, 0, "msgRoutes") + self.assertEqual(exchange.byteReceives, 0, "byteReceives") + self.assertEqual(exchange.byteDrops, 0, "byteDrops") + self.assertEqual(exchange.byteRoutes, 0, "byteRoutes") + + tx_a.send("0123456789") + tx_b.send("01234567890123456789") + tx_a.send("012345678901234567890123456789") + tx_b.send("0123456789012345678901234567890123456789") + + exchange.update() + self.assertEqual(exchange.msgReceives, 4, "msgReceives") + self.assertEqual(exchange.msgDrops, 2, "msgDrops") + self.assertEqual(exchange.msgRoutes, 2, "msgRoutes") + self.assertEqual(exchange.byteReceives, 100, "byteReceives") + self.assertEqual(exchange.byteDrops, 60, "byteDrops") + self.assertEqual(exchange.byteRoutes, 40, "byteRoutes") + + agent.delExchange("stats-test-exchange") def test_enqueues_dequeues(self): agent = self.setup_access() |
