diff options
author | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
---|---|---|
committer | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
commit | 66765100f4257159622cefe57bed50125a5ad017 (patch) | |
tree | a88ee23bb194eb91f0ebb2d9b23ff423e3ea8e37 /cpp/src/tests/ClusterFailover.cpp | |
parent | 1aeaa7b16e5ce54f10c901d75c4d40f9f88b9db6 (diff) | |
parent | 88b98b2f4152ef59a671fad55a0d08338b6b78ca (diff) | |
download | qpid-python-rajith_jms_client.tar.gz |
Creating a branch for experimenting with some ideas for JMS client.rajith_jms_client
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/rajith_jms_client@1128369 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/ClusterFailover.cpp')
-rw-r--r-- | cpp/src/tests/ClusterFailover.cpp | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/cpp/src/tests/ClusterFailover.cpp b/cpp/src/tests/ClusterFailover.cpp deleted file mode 100644 index bf5c147f19..0000000000 --- a/cpp/src/tests/ClusterFailover.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -/**@file Tests for partial failure in a cluster. - * Partial failure means some nodes experience a failure while others do not. - * In this case the failed nodes must shut down. - */ - -#include "test_tools.h" -#include "unit_test.h" -#include "ClusterFixture.h" -#include "qpid/client/FailoverManager.h" -#include <boost/assign.hpp> -#include <boost/algorithm/string.hpp> -#include <boost/bind.hpp> - -namespace qpid { -namespace tests { - -QPID_AUTO_TEST_SUITE(ClusterFailoverTestSuite) - -using namespace std; -using namespace qpid; -using namespace qpid::cluster; -using namespace qpid::framing; -using namespace qpid::client; -using namespace qpid::client::arg; -using namespace boost::assign; -using broker::Broker; -using boost::shared_ptr; - -// Timeout for tests that wait for messages -const sys::Duration TIMEOUT=sys::TIME_SEC/4; - -ClusterFixture::Args getArgs(bool durable=std::getenv("STORE_LIB")) -{ - ClusterFixture::Args args; - args += "--auth", "no", "--no-module-dir", - "--load-module", getLibPath("CLUSTER_LIB"); - if (durable) - args += "--load-module", getLibPath("STORE_LIB"), "TMP_DATA_DIR"; - else - args += "--no-data-dir"; - return args; -} - -// Test re-connecting with same session name after a failure. -QPID_AUTO_TEST_CASE(testReconnectSameSessionName) { - ClusterFixture cluster(2, getArgs(), -1); - // Specify a timeout to make sure it is ignored, session resume is - // not implemented so sessions belonging to dead brokers should - // not be kept. - Client c0(cluster[0], "foo", 5); - BOOST_CHECK_EQUAL(2u, knownBrokerPorts(c0.connection, 2).size()); // wait for both. - c0.session.queueDeclare("q"); - c0.session.messageTransfer(arg::content=Message("sendme", "q")); - BOOST_CHECK_EQUAL(c0.subs.get("q").getData(), "sendme"); - cluster.killWithSilencer(0, c0.connection, 9); - Client c1(cluster[1], "foo", 5); - c1.session.queueQuery(); // Try to use the session. -} - -QPID_AUTO_TEST_CASE(testReconnectExclusiveQueue) { - // Regresion test. Session timeouts should be ignored - // by the broker as session resume is not implemented. - ClusterFixture cluster(2, getArgs(), -1); - Client c0(cluster[0], "foo", 5); - c0.session.queueDeclare("exq", arg::exclusive=true); - SubscriptionSettings settings; - settings.exclusive = true; - settings.autoAck = 0; - Subscription s0 = c0.subs.subscribe(c0.lq, "exq", settings, "exsub"); - c0.session.messageTransfer(arg::content=Message("sendme", "exq")); - BOOST_CHECK_EQUAL(c0.lq.get().getData(), "sendme"); - - // Regression: core dump on exit if unacked messages were left in - // a session with a timeout. - cluster.killWithSilencer(0, c0.connection); - - // Regression: session timeouts prevented re-connecting to - // exclusive queue. - Client c1(cluster[1]); - c1.session.queueDeclare("exq", arg::exclusive=true); - Subscription s1 = c1.subs.subscribe(c1.lq, "exq", settings, "exsub"); - s1.cancel(); - - // Regression: session timeouts prevented new member joining - // cluster with exclusive queues. - cluster.add(); - Client c2(cluster[2]); - c2.session.queueQuery(); -} - - -QPID_AUTO_TEST_SUITE_END() - -}} // namespace qpid::tests |