diff options
Diffstat (limited to 'qpid/cpp/src/tests/Cpg.cpp')
-rw-r--r-- | qpid/cpp/src/tests/Cpg.cpp | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/qpid/cpp/src/tests/Cpg.cpp b/qpid/cpp/src/tests/Cpg.cpp deleted file mode 100644 index db7debaa08..0000000000 --- a/qpid/cpp/src/tests/Cpg.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * - * Copyright (c) 2006 The Apache Software Foundation - * - * Licensed 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. - * - */ - - -#include "test_tools.h" -#include "qpid/cluster/Cpg.h" -#include "qpid/framing/AMQBody.h" - -#include <boost/bind.hpp> -#include "unit_test.h" - -#include <string> -#include <iostream> -#include <iterator> -#include <vector> -#include <algorithm> - -QPID_AUTO_TEST_SUITE(CpgTestSuite) - - -using namespace std; -using namespace qpid::cluster; -using namespace qpid::framing; - -// For debugging: op << for CPG types. - -ostream& operator<<(ostream& o, const cpg_name* n) { - return o << qpid::cluster::Cpg::str(*n); -} - -ostream& operator<<(ostream& o, const cpg_address& a) { - return o << "(" << a.nodeid <<","<<a.pid<<","<<a.reason<<")"; -} - -template <class T> -ostream& operator<<(ostream& o, const pair<T*, int>& array) { - o << "{ "; - ostream_iterator<cpg_address> i(o, " "); - copy(array.first, array.first+array.second, i); - o << "}"; - return o; -} - -struct Callback : public Cpg::Handler { - Callback(const string group_) : group(group_) {} - string group; - vector<string> delivered; - vector<int> configChanges; - - void deliver ( - cpg_handle_t /*handle*/, - struct cpg_name *grp, - uint32_t /*nodeid*/, - uint32_t /*pid*/, - void* msg, - int msg_len) - { - BOOST_CHECK_EQUAL(group, Cpg::str(*grp)); - delivered.push_back(string((char*)msg,msg_len)); - } - - void configChange( - cpg_handle_t /*handle*/, - struct cpg_name *grp, - struct cpg_address */*members*/, int nMembers, - struct cpg_address */*left*/, int nLeft, - struct cpg_address */*joined*/, int nJoined - ) - { - BOOST_CHECK_EQUAL(group, Cpg::str(*grp)); - configChanges.push_back(nMembers); - BOOST_MESSAGE("configChange: "<< - nLeft<<" left "<< - nJoined<<" joined "<< - nMembers<<" members."); - } -}; - -QPID_AUTO_TEST_CASE(CpgBasic) { - // Verify basic functionality of cpg. This will catch any - // openais configuration or permission errors. - // - Cpg::Name group("CpgBasic"); - Callback cb(group.str()); - Cpg cpg(cb); - cpg.join(group); - iovec iov = { (void*)"Hello!", 6 }; - cpg.mcast(group, &iov, 1); - cpg.leave(group); - cpg.dispatchSome(); - - BOOST_REQUIRE_EQUAL(1u, cb.delivered.size()); - BOOST_CHECK_EQUAL("Hello!", cb.delivered.front()); - BOOST_REQUIRE_EQUAL(2u, cb.configChanges.size()); - BOOST_CHECK_EQUAL(1, cb.configChanges[0]); - BOOST_CHECK_EQUAL(0, cb.configChanges[1]); -} - - -QPID_AUTO_TEST_SUITE_END() |