summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2009-03-25 23:44:30 +0000
committerStephen D. Huston <shuston@apache.org>2009-03-25 23:44:30 +0000
commit67d330f235362bf622b95f8c4d14321272a44ba7 (patch)
tree82153e6fd6c1c77e9defc80cb2e6b34d23de25cf /qpid/cpp/src/tests
parentb51fd45a4ed81bee144c22c2a57fc0e882d44149 (diff)
downloadqpid-python-67d330f235362bf622b95f8c4d14321272a44ba7.tar.gz
Merge from trunk tag to-cmake-25mar09 (r758432)
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/cmake@758465 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests')
-rw-r--r--qpid/cpp/src/tests/ClientSessionTest.cpp22
-rw-r--r--qpid/cpp/src/tests/ClusterFixture.cpp2
-rw-r--r--qpid/cpp/src/tests/DispatcherTest.cpp79
-rw-r--r--qpid/cpp/src/tests/FieldTable.cpp2
-rw-r--r--qpid/cpp/src/tests/ForkedBroker.cpp7
-rw-r--r--qpid/cpp/src/tests/FrameDecoder.cpp73
-rw-r--r--qpid/cpp/src/tests/Makefile.am16
-rw-r--r--qpid/cpp/src/tests/MessageTest.cpp5
-rw-r--r--qpid/cpp/src/tests/MessageUtils.h2
-rw-r--r--qpid/cpp/src/tests/PollerTest.cpp2
-rw-r--r--qpid/cpp/src/tests/ProxyTest.cpp1
-rw-r--r--qpid/cpp/src/tests/QueueEvents.cpp7
-rw-r--r--qpid/cpp/src/tests/QueuePolicyTest.cpp9
-rw-r--r--qpid/cpp/src/tests/ReplicationTest.cpp129
-rw-r--r--qpid/cpp/src/tests/SocketProxy.h2
-rw-r--r--qpid/cpp/src/tests/TimerTest.cpp4
-rw-r--r--qpid/cpp/src/tests/Uuid.cpp2
-rw-r--r--qpid/cpp/src/tests/client_test.vcproj34
-rw-r--r--qpid/cpp/src/tests/cluster.mk5
-rw-r--r--qpid/cpp/src/tests/cluster_test.cpp191
-rwxr-xr-xqpid/cpp/src/tests/clustered_replication_test127
-rw-r--r--qpid/cpp/src/tests/consume.vcproj34
-rw-r--r--qpid/cpp/src/tests/echotest.vcproj34
-rw-r--r--qpid/cpp/src/tests/failover_soak.cpp338
-rwxr-xr-xqpid/cpp/src/tests/federated_cluster_test47
-rwxr-xr-xqpid/cpp/src/tests/federated_cluster_test_with_node_failure23
-rw-r--r--qpid/cpp/src/tests/header_test.vcproj34
-rw-r--r--qpid/cpp/src/tests/latencytest.vcproj34
-rw-r--r--qpid/cpp/src/tests/logging.cpp16
-rw-r--r--qpid/cpp/src/tests/perftest.cpp13
-rw-r--r--qpid/cpp/src/tests/perftest.vcproj34
-rw-r--r--qpid/cpp/src/tests/publish.vcproj34
-rw-r--r--qpid/cpp/src/tests/receiver.cpp18
-rw-r--r--qpid/cpp/src/tests/receiver.vcproj34
-rw-r--r--qpid/cpp/src/tests/replaying_sender.cpp4
-rwxr-xr-xqpid/cpp/src/tests/replication_test40
-rw-r--r--qpid/cpp/src/tests/resuming_receiver.cpp19
-rwxr-xr-xqpid/cpp/src/tests/run_failover_soak12
-rwxr-xr-xqpid/cpp/src/tests/run_header_test3
-rw-r--r--qpid/cpp/src/tests/sender.cpp28
-rw-r--r--qpid/cpp/src/tests/sender.vcproj34
-rw-r--r--qpid/cpp/src/tests/shlibtest.vcproj91
-rwxr-xr-xqpid/cpp/src/tests/ssl_test3
-rwxr-xr-xqpid/cpp/src/tests/start_cluster3
-rw-r--r--qpid/cpp/src/tests/tests.sln290
-rw-r--r--qpid/cpp/src/tests/topic_listener.cpp3
-rw-r--r--qpid/cpp/src/tests/topic_listener.vcproj34
-rw-r--r--qpid/cpp/src/tests/topic_publisher.vcproj34
-rw-r--r--qpid/cpp/src/tests/txjob.vcproj34
-rw-r--r--qpid/cpp/src/tests/txshift.cpp5
-rw-r--r--qpid/cpp/src/tests/txshift.vcproj34
-rw-r--r--qpid/cpp/src/tests/txtest.vcproj34
-rw-r--r--qpid/cpp/src/tests/unit_test.h9
-rw-r--r--qpid/cpp/src/tests/unit_test.vcproj112
54 files changed, 1580 insertions, 660 deletions
diff --git a/qpid/cpp/src/tests/ClientSessionTest.cpp b/qpid/cpp/src/tests/ClientSessionTest.cpp
index 1658f3d4ec..589e1154e1 100644
--- a/qpid/cpp/src/tests/ClientSessionTest.cpp
+++ b/qpid/cpp/src/tests/ClientSessionTest.cpp
@@ -428,8 +428,8 @@ QPID_AUTO_TEST_CASE(testConcurrentSenders)
for (size_t i = 0; i < 5; i++) {
publishers.push_back(new Publisher(connection, message, 100));
}
- for_each(publishers.begin(), publishers.end(), boost::bind(&Publisher::start, _1));
- for_each(publishers.begin(), publishers.end(), boost::bind(&Publisher::join, _1));
+ std::for_each(publishers.begin(), publishers.end(), boost::bind(&Publisher::start, _1));
+ std::for_each(publishers.begin(), publishers.end(), boost::bind(&Publisher::join, _1));
connection.close();
}
@@ -564,6 +564,24 @@ QPID_AUTO_TEST_CASE(testSessionManagerSetFlowControl) {
BOOST_CHECK_EQUAL("my-message", got.getData());
}
+QPID_AUTO_TEST_CASE(testGetThenSubscribe) {
+ ClientSessionFixture fix;
+ std::string name("myqueue");
+ fix.session.queueDeclare(arg::queue=name, arg::exclusive=true, arg::autoDelete=true);
+ fix.session.messageTransfer(arg::content=Message("one", name));
+ fix.session.messageTransfer(arg::content=Message("two", name));
+ Message got;
+ BOOST_CHECK(fix.subs.get(got, name));
+ BOOST_CHECK_EQUAL("one", got.getData());
+
+ DummyListener listener(fix.session, name, 1);
+ listener.run();
+ BOOST_CHECK_EQUAL(1u, listener.messages.size());
+ if (!listener.messages.empty()) {
+ BOOST_CHECK_EQUAL("two", listener.messages[0].getData());
+ }
+}
+
QPID_AUTO_TEST_SUITE_END()
diff --git a/qpid/cpp/src/tests/ClusterFixture.cpp b/qpid/cpp/src/tests/ClusterFixture.cpp
index 3a0ea74098..5658957b48 100644
--- a/qpid/cpp/src/tests/ClusterFixture.cpp
+++ b/qpid/cpp/src/tests/ClusterFixture.cpp
@@ -109,7 +109,7 @@ void ClusterFixture::addLocal() {
Args args(makeArgs(prefix));
vector<const char*> argv(args.size());
transform(args.begin(), args.end(), argv.begin(), boost::bind(&string::c_str, _1));
- qpid::log::Logger::instance().setPrefix(os.str());
+ qpid::log::Logger::instance().setPrefix(prefix);
localBroker.reset(new BrokerFixture(parseOpts(argv.size(), &argv[0])));
push_back(localBroker->getPort());
forkedBrokers.push_back(shared_ptr<ForkedBroker>());
diff --git a/qpid/cpp/src/tests/DispatcherTest.cpp b/qpid/cpp/src/tests/DispatcherTest.cpp
index c2f6bca12a..c619a36438 100644
--- a/qpid/cpp/src/tests/DispatcherTest.cpp
+++ b/qpid/cpp/src/tests/DispatcherTest.cpp
@@ -78,9 +78,6 @@ void reader(DispatchHandle& h, int fd) {
h.rewatch();
}
-DispatchHandle* rh = 0;
-DispatchHandle* wh = 0;
-
void rInterrupt(DispatchHandle&) {
cerr << "R";
}
@@ -92,9 +89,27 @@ void wInterrupt(DispatchHandle&) {
DispatchHandle::Callback rcb = rInterrupt;
DispatchHandle::Callback wcb = wInterrupt;
+DispatchHandleRef *volatile rh = 0;
+DispatchHandleRef *volatile wh = 0;
+
+volatile bool stopWait = false;
+volatile bool phase1finished = false;
+
+timer_t timer;
+
+void stop_handler(int /*signo*/, siginfo_t* /*info*/, void* /*context*/) {
+ stopWait = true;
+}
+
void timer_handler(int /*signo*/, siginfo_t* /*info*/, void* /*context*/) {
- rh->call(rcb);
- wh->call(wcb);
+ static int count = 0;
+ if (count++ < 10) {
+ rh->call(rcb);
+ wh->call(wcb);
+ } else {
+ phase1finished = true;
+ assert(::timer_delete(timer) == 0);
+ }
}
int main(int /*argc*/, char** /*argv*/)
@@ -114,7 +129,7 @@ int main(int /*argc*/, char** /*argv*/)
// Setup sender and receiver
int sv[2];
- int rc = ::socketpair(AF_LOCAL, SOCK_STREAM, 0, sv);
+ int rc = ::socketpair(AF_UNIX, SOCK_STREAM, 0, sv);
assert(rc >= 0);
// Set non-blocking
@@ -132,8 +147,8 @@ int main(int /*argc*/, char** /*argv*/)
PosixIOHandle f0(sv[0]);
PosixIOHandle f1(sv[1]);
- rh = new DispatchHandle(f0, boost::bind(reader, _1, sv[0]), 0, 0);
- wh = new DispatchHandle(f1, 0, boost::bind(writer, _1, sv[1], testString), 0);
+ rh = new DispatchHandleRef(f0, boost::bind(reader, _1, sv[0]), 0, 0);
+ wh = new DispatchHandleRef(f1, 0, boost::bind(writer, _1, sv[1], testString), 0);
rh->startWatch(poller);
wh->startWatch(poller);
@@ -155,10 +170,9 @@ int main(int /*argc*/, char** /*argv*/)
assert(rc == 0);
::sigevent se;
+ ::memset(&se, 0, sizeof(se)); // Clear to make valgrind happy (this *is* the neatest way to do this portably - sigh)
se.sigev_notify = SIGEV_SIGNAL;
se.sigev_signo = SIGRTMIN;
- se.sigev_value.sival_ptr = 0;
- timer_t timer;
rc = ::timer_create(CLOCK_REALTIME, &se, &timer);
assert(rc == 0);
@@ -169,11 +183,52 @@ int main(int /*argc*/, char** /*argv*/)
rc = ::timer_settime(timer, 0, &ts, 0);
assert(rc == 0);
- // wait 2 minutes then shutdown
- ::sleep(60);
+ // wait
+ while (!phase1finished) {
+ ::sleep(1);
+ }
+
+ // Now test deleting/creating DispatchHandles in tight loop, so that we are likely to still be using the
+ // attached PollerHandles after deleting the DispatchHandle
+ DispatchHandleRef* t = wh;
+ wh = 0;
+ delete t;
+ t = rh;
+ rh = 0;
+ delete t;
+
+ sa.sa_sigaction = stop_handler;
+ rc = ::sigaction(SIGRTMIN, &sa,0);
+ assert(rc == 0);
+
+ itimerspec nts = {
+ /*.it_value = */ {30, 0}, // s, ns
+ /*.it_interval = */ {30, 0}}; // s, ns
+
+ rc = ::timer_create(CLOCK_REALTIME, &se, &timer);
+ assert(rc == 0);
+ rc = ::timer_settime(timer, 0, &nts, 0);
+ assert(rc == 0);
+
+ DispatchHandleRef* rh1;
+ DispatchHandleRef* wh1;
+
+ struct timespec w = {0, 1000000};
+ while (!stopWait) {
+ rh1 = new DispatchHandleRef(f0, boost::bind(reader, _1, sv[0]), 0, 0);
+ wh1 = new DispatchHandleRef(f1, 0, boost::bind(writer, _1, sv[1], testString), 0);
+ rh1->startWatch(poller);
+ wh1->startWatch(poller);
+
+ ::nanosleep(&w, 0);
+
+ delete wh1;
+ delete rh1;
+ }
rc = ::timer_delete(timer);
assert(rc == 0);
+
poller->shutdown();
dt.join();
dt1.join();
diff --git a/qpid/cpp/src/tests/FieldTable.cpp b/qpid/cpp/src/tests/FieldTable.cpp
index 6b364723cf..9f2fd45b73 100644
--- a/qpid/cpp/src/tests/FieldTable.cpp
+++ b/qpid/cpp/src/tests/FieldTable.cpp
@@ -22,7 +22,7 @@
#include "qpid/framing/Array.h"
#include "qpid/framing/FieldTable.h"
#include "qpid/framing/FieldValue.h"
-#include <alloca.h>
+#include "qpid/sys/alloca.h"
#include "unit_test.h"
diff --git a/qpid/cpp/src/tests/ForkedBroker.cpp b/qpid/cpp/src/tests/ForkedBroker.cpp
index 2b90068549..f90f76aeb2 100644
--- a/qpid/cpp/src/tests/ForkedBroker.cpp
+++ b/qpid/cpp/src/tests/ForkedBroker.cpp
@@ -22,6 +22,9 @@
#include "ForkedBroker.h"
#include <boost/bind.hpp>
#include <algorithm>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <signal.h>
ForkedBroker::ForkedBroker(const Args& args) { init(args); }
@@ -41,9 +44,9 @@ void ForkedBroker::kill(int sig) {
if (::kill(savePid, sig) < 0)
throw ErrnoException("kill failed");
int status;
- if (::waitpid(savePid, &status, 0) < 0)
+ if (::waitpid(savePid, &status, 0) < 0 && sig != 9)
throw ErrnoException("wait for forked process failed");
- if (WEXITSTATUS(status) != 0)
+ if (WEXITSTATUS(status) != 0 && sig != 9)
throw qpid::Exception(QPID_MSG("Forked broker exited with: " << WEXITSTATUS(status)));
}
diff --git a/qpid/cpp/src/tests/FrameDecoder.cpp b/qpid/cpp/src/tests/FrameDecoder.cpp
new file mode 100644
index 0000000000..f5db66d5fe
--- /dev/null
+++ b/qpid/cpp/src/tests/FrameDecoder.cpp
@@ -0,0 +1,73 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#include "unit_test.h"
+#include "qpid/framing/AMQFrame.h"
+#include "qpid/framing/FrameDecoder.h"
+#include "qpid/framing/AMQContentBody.h"
+#include "qpid/framing/Buffer.h"
+#include <string>
+
+
+QPID_AUTO_TEST_SUITE(FrameDecoderTest)
+
+using namespace std;
+using namespace qpid::framing;
+
+
+string makeData(int size) {
+ string data;
+ data.resize(size);
+ for (int i =0; i < size; ++i)
+ data[i] = 'a' + (i%26);
+ return data;
+}
+string encodeFrame(string data) {
+ AMQFrame f((AMQContentBody(data)));
+ string encoded;
+ encoded.resize(f.encodedSize());
+ Buffer b(&encoded[0], encoded.size());
+ f.encode(b);
+ return encoded;
+}
+
+string getData(const AMQFrame& frame) {
+ const AMQContentBody* content = dynamic_cast<const AMQContentBody*>(frame.getBody());
+ BOOST_CHECK(content);
+ return content->getData();
+}
+
+QPID_AUTO_TEST_CASE(testByteFragments) {
+ string data = makeData(42);
+ string encoded = encodeFrame(data);
+ FrameDecoder decoder;
+ for (size_t i = 0; i < encoded.size()-1; ++i) {
+ Buffer buf(&encoded[i], 1);
+ BOOST_CHECK(!decoder.decode(buf));
+ }
+ Buffer buf(&encoded[encoded.size()-1], 1);
+ BOOST_CHECK(decoder.decode(buf));
+ BOOST_CHECK_EQUAL(data, getData(decoder.getFrame()));
+}
+
+
+
+QPID_AUTO_TEST_SUITE_END()
diff --git a/qpid/cpp/src/tests/Makefile.am b/qpid/cpp/src/tests/Makefile.am
index 9da85eaad4..9a81ef18b3 100644
--- a/qpid/cpp/src/tests/Makefile.am
+++ b/qpid/cpp/src/tests/Makefile.am
@@ -94,7 +94,9 @@ unit_test_SOURCES= unit_test.cpp unit_test.h \
QueueEvents.cpp \
ProxyTest.cpp \
RetryList.cpp \
- RateFlowcontrolTest.cpp
+ RateFlowcontrolTest.cpp \
+ FrameDecoder.cpp \
+ ReplicationTest.cpp
if HAVE_XML
unit_test_SOURCES+= XmlClientSessionTest.cpp
@@ -163,7 +165,7 @@ header_test_LDADD=$(lib_client)
check_PROGRAMS+=failover_soak
failover_soak_SOURCES=failover_soak.cpp ForkedBroker.h ForkedBroker.cpp
-failover_soak_LDADD=$(lib_client)
+failover_soak_LDADD=$(lib_client) $(lib_broker)
check_PROGRAMS+=declare_queues
declare_queues_SOURCES=declare_queues.cpp
@@ -195,11 +197,11 @@ sender_LDADD=$(lib_client)
check_PROGRAMS+=PollerTest
PollerTest_SOURCES=PollerTest.cpp
-PollerTest_LDADD=$(lib_common)
+PollerTest_LDADD=$(lib_common) $(SOCKLIBS)
check_PROGRAMS+=DispatcherTest
DispatcherTest_SOURCES=DispatcherTest.cpp
-DispatcherTest_LDADD=$(lib_common)
+DispatcherTest_LDADD=$(lib_common) $(SOCKLIBS)
TESTS_ENVIRONMENT = VALGRIND=$(VALGRIND) srcdir=$(srcdir) QPID_DATA_DIR= BOOST_TEST_SHOW_PROGRESS=yes $(srcdir)/run_test
@@ -255,9 +257,11 @@ CLEANFILES+=valgrind.out *.log *.vglog* dummy_test $(unit_wrappers)
# Longer running stability tests, not run by default check: target.
# Not run under valgrind, too slow
-LONG_TESTS+=start_broker fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak stop_broker reliable_replication_test
+LONG_TESTS+=start_broker fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak stop_broker \
+ reliable_replication_test federated_cluster_test_with_node_failure
-EXTRA_DIST+=fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak reliable_replication_test
+EXTRA_DIST+=fanout_perftest shared_perftest multiq_perftest topic_perftest run_failover_soak reliable_replication_test \
+ federated_cluster_test_with_node_failure
check-long:
$(MAKE) check TESTS="$(LONG_TESTS)" VALGRIND=
diff --git a/qpid/cpp/src/tests/MessageTest.cpp b/qpid/cpp/src/tests/MessageTest.cpp
index 8fd9a53c7c..cd63f64a37 100644
--- a/qpid/cpp/src/tests/MessageTest.cpp
+++ b/qpid/cpp/src/tests/MessageTest.cpp
@@ -24,13 +24,12 @@
#include "qpid/framing/MessageTransferBody.h"
#include "qpid/framing/FieldValue.h"
#include "qpid/framing/Uuid.h"
+#include "qpid/sys/alloca.h"
#include "unit_test.h"
#include <iostream>
-#include <alloca.h>
-using namespace boost;
using namespace qpid::broker;
using namespace qpid::framing;
@@ -44,7 +43,7 @@ QPID_AUTO_TEST_CASE(testEncodeDecode)
string data1("abcdefg");
string data2("hijklmn");
- intrusive_ptr<Message> msg(new Message());
+ boost::intrusive_ptr<Message> msg(new Message());
AMQFrame method((MessageTransferBody(ProtocolVersion(), exchange, 0, 0)));
AMQFrame header((AMQHeaderBody()));
diff --git a/qpid/cpp/src/tests/MessageUtils.h b/qpid/cpp/src/tests/MessageUtils.h
index 67a852aa10..6a12c72007 100644
--- a/qpid/cpp/src/tests/MessageUtils.h
+++ b/qpid/cpp/src/tests/MessageUtils.h
@@ -33,7 +33,7 @@ struct MessageUtils
static boost::intrusive_ptr<Message> createMessage(const string& exchange="", const string& routingKey="",
const Uuid& messageId=Uuid(true), uint64_t contentSize = 0)
{
- boost::intrusive_ptr<Message> msg(new Message());
+ boost::intrusive_ptr<broker::Message> msg(new broker::Message());
AMQFrame method(( MessageTransferBody(ProtocolVersion(), exchange, 0, 0)));
AMQFrame header((AMQHeaderBody()));
diff --git a/qpid/cpp/src/tests/PollerTest.cpp b/qpid/cpp/src/tests/PollerTest.cpp
index 4f11dc5901..5b6b09ef65 100644
--- a/qpid/cpp/src/tests/PollerTest.cpp
+++ b/qpid/cpp/src/tests/PollerTest.cpp
@@ -74,7 +74,7 @@ int main(int /*argc*/, char** /*argv*/)
try
{
int sv[2];
- int rc = ::socketpair(AF_LOCAL, SOCK_STREAM, 0, sv);
+ int rc = ::socketpair(AF_UNIX, SOCK_STREAM, 0, sv);
assert(rc >= 0);
// Set non-blocking
diff --git a/qpid/cpp/src/tests/ProxyTest.cpp b/qpid/cpp/src/tests/ProxyTest.cpp
index 9007f3dc97..4ea10f7be9 100644
--- a/qpid/cpp/src/tests/ProxyTest.cpp
+++ b/qpid/cpp/src/tests/ProxyTest.cpp
@@ -23,7 +23,6 @@
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/ExecutionSyncBody.h"
#include "qpid/framing/Proxy.h"
-#include <alloca.h>
#include "unit_test.h"
diff --git a/qpid/cpp/src/tests/QueueEvents.cpp b/qpid/cpp/src/tests/QueueEvents.cpp
index 3e377d04b3..cd9439355e 100644
--- a/qpid/cpp/src/tests/QueueEvents.cpp
+++ b/qpid/cpp/src/tests/QueueEvents.cpp
@@ -27,6 +27,7 @@
#include "qpid/broker/QueueEvents.h"
#include "qpid/client/QueueOptions.h"
#include "qpid/framing/SequenceNumber.h"
+#include "qpid/sys/Dispatcher.h"
#include <boost/bind.hpp>
#include <boost/format.hpp>
@@ -37,7 +38,7 @@ using namespace qpid::broker;
using namespace qpid::sys;
using qpid::framing::SequenceNumber;
-struct DummyListener
+struct EventChecker
{
typedef std::deque<QueueEvents::Event> Events;
@@ -70,9 +71,9 @@ QPID_AUTO_TEST_CASE(testBasicEventProcessing)
sys::Dispatcher dispatcher(poller);
Thread dispatchThread(dispatcher);
QueueEvents events(poller);
- DummyListener listener;
+ EventChecker listener;
listener.poller = poller;
- events.registerListener("dummy", boost::bind(&DummyListener::handle, &listener, _1));
+ events.registerListener("dummy", boost::bind(&EventChecker::handle, &listener, _1));
//signal occurence of some events:
Queue queue("queue1");
SequenceNumber id;
diff --git a/qpid/cpp/src/tests/QueuePolicyTest.cpp b/qpid/cpp/src/tests/QueuePolicyTest.cpp
index 6c650169c7..7c7f8b7a10 100644
--- a/qpid/cpp/src/tests/QueuePolicyTest.cpp
+++ b/qpid/cpp/src/tests/QueuePolicyTest.cpp
@@ -158,6 +158,15 @@ QPID_AUTO_TEST_CASE(testRingPolicy)
BOOST_CHECK_EQUAL((boost::format("%1%_%2%") % "Message" % (i+1)).str(), msg.getData());
}
BOOST_CHECK(!f.subs.get(msg, q));
+
+ for (int i = 10; i < 20; i++) {
+ f.session.messageTransfer(arg::content=client::Message((boost::format("%1%_%2%") % "Message" % (i+1)).str(), q));
+ }
+ for (int i = 15; i < 20; i++) {
+ BOOST_CHECK(f.subs.get(msg, q, qpid::sys::TIME_SEC));
+ BOOST_CHECK_EQUAL((boost::format("%1%_%2%") % "Message" % (i+1)).str(), msg.getData());
+ }
+ BOOST_CHECK(!f.subs.get(msg, q));
}
QPID_AUTO_TEST_CASE(testStrictRingPolicy)
diff --git a/qpid/cpp/src/tests/ReplicationTest.cpp b/qpid/cpp/src/tests/ReplicationTest.cpp
new file mode 100644
index 0000000000..7bd585639d
--- /dev/null
+++ b/qpid/cpp/src/tests/ReplicationTest.cpp
@@ -0,0 +1,129 @@
+ /*
+ *
+ * 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.
+ *
+ */
+#include "unit_test.h"
+#include "test_tools.h"
+#include "BrokerFixture.h"
+
+#include "qpid/Plugin.h"
+#include "qpid/broker/Broker.h"
+#include "qpid/client/QueueOptions.h"
+#include "qpid/framing/reply_exceptions.h"
+#include "qpid/framing/SequenceNumber.h"
+#include "qpid/replication/constants.h"
+#include "qpid/sys/Shlib.h"
+
+#include <string>
+#include <sstream>
+#include <vector>
+
+#include <boost/assign.hpp>
+#include <boost/bind.hpp>
+
+using namespace qpid::client;
+using namespace qpid::framing;
+using namespace qpid::replication::constants;
+using boost::assign::list_of;
+
+QPID_AUTO_TEST_SUITE(ReplicationTestSuite)
+
+qpid::sys::Shlib plugin("../.libs/replicating_listener.so");
+
+qpid::broker::Broker::Options getBrokerOpts(const std::vector<std::string>& args)
+{
+ std::vector<const char*> argv(args.size());
+ transform(args.begin(), args.end(), argv.begin(), boost::bind(&string::c_str, _1));
+
+ qpid::broker::Broker::Options opts;
+ qpid::Plugin::addOptions(opts);
+ opts.parse(argv.size(), &argv[0], "", true);
+ return opts;
+}
+
+QPID_AUTO_TEST_CASE(testReplicationExchange)
+{
+ qpid::broker::Broker::Options brokerOpts(getBrokerOpts(list_of<string>("qpidd")
+ ("--replication-exchange-name=qpid.replication")));
+ ProxySessionFixture f(brokerOpts);
+
+
+ std::string dataQ("queue-1");
+ std::string eventQ("event-queue-1");
+ std::string dataQ2("queue-2");
+ std::string eventQ2("event-queue-2");
+ FieldTable eventQopts;
+ eventQopts.setString("qpid.insert_sequence_numbers", REPLICATION_EVENT_SEQNO);
+
+ f.session.queueDeclare(arg::queue=eventQ, arg::exclusive=true, arg::autoDelete=true, arg::arguments=eventQopts);
+ f.session.exchangeBind(arg::exchange="qpid.replication", arg::queue=eventQ, arg::bindingKey=dataQ);
+
+ f.session.queueDeclare(arg::queue=eventQ2, arg::exclusive=true, arg::autoDelete=true, arg::arguments=eventQopts);
+ f.session.exchangeBind(arg::exchange="qpid.replication", arg::queue=eventQ2, arg::bindingKey=dataQ2);
+
+ QueueOptions args;
+ args.enableQueueEvents(false);
+ f.session.queueDeclare(arg::queue=dataQ, arg::exclusive=true, arg::autoDelete=true, arg::arguments=args);
+ f.session.queueDeclare(arg::queue=dataQ2, arg::exclusive=true, arg::autoDelete=true, arg::arguments=args);
+ for (int i = 0; i < 10; i++) {
+ f.session.messageTransfer(arg::content=Message((boost::format("%1%_%2%") % "Message" % (i+1)).str(), dataQ));
+ f.session.messageTransfer(arg::content=Message((boost::format("%1%_%2%") % "Message" % (i+1)).str(), dataQ2));
+ }
+ Message msg;
+ LocalQueue incoming;
+ Subscription sub = f.subs.subscribe(incoming, dataQ);
+ for (int i = 0; i < 10; i++) {
+ BOOST_CHECK(incoming.get(msg, qpid::sys::TIME_SEC));
+ BOOST_CHECK_EQUAL((boost::format("%1%_%2%") % "Message" % (i+1)).str(), msg.getData());
+ }
+ BOOST_CHECK(!f.subs.get(msg, dataQ));
+
+ sub.cancel();
+ sub = f.subs.subscribe(incoming, eventQ);
+ //check that we received enqueue events for first queue:
+ for (int i = 0; i < 10; i++) {
+ BOOST_CHECK(incoming.get(msg, qpid::sys::TIME_SEC));
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsString(REPLICATION_TARGET_QUEUE), dataQ);
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt(REPLICATION_EVENT_TYPE), ENQUEUE);
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt64(REPLICATION_EVENT_SEQNO), (i+1));
+ BOOST_CHECK_EQUAL((boost::format("%1%_%2%") % "Message" % (i+1)).str(), msg.getData());
+ }
+ //check that we received dequeue events for first queue:
+ for (int i = 0; i < 10; i++) {
+ BOOST_CHECK(incoming.get(msg, qpid::sys::TIME_SEC));
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsString(REPLICATION_TARGET_QUEUE), dataQ);
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt(REPLICATION_EVENT_TYPE), DEQUEUE);
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt(DEQUEUED_MESSAGE_POSITION), (i+1));
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt64(REPLICATION_EVENT_SEQNO), (i+11));
+ }
+
+ sub.cancel();
+ sub = f.subs.subscribe(incoming, eventQ2);
+ //check that we received enqueue events for second queue:
+ for (int i = 0; i < 10; i++) {
+ BOOST_CHECK(incoming.get(msg, qpid::sys::TIME_SEC));
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsString(REPLICATION_TARGET_QUEUE), dataQ2);
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt(REPLICATION_EVENT_TYPE), ENQUEUE);
+ BOOST_CHECK_EQUAL(msg.getHeaders().getAsInt64(REPLICATION_EVENT_SEQNO), (i+1));
+ BOOST_CHECK_EQUAL((boost::format("%1%_%2%") % "Message" % (i+1)).str(), msg.getData());
+ }
+}
+
+
+QPID_AUTO_TEST_SUITE_END()
diff --git a/qpid/cpp/src/tests/SocketProxy.h b/qpid/cpp/src/tests/SocketProxy.h
index 9722359d82..d2a93c902b 100644
--- a/qpid/cpp/src/tests/SocketProxy.h
+++ b/qpid/cpp/src/tests/SocketProxy.h
@@ -94,7 +94,7 @@ class SocketProxy : private qpid::sys::Runnable
throwIf(!(event.type == qpid::sys::Poller::READABLE && event.handle == &listenerHandle), "SocketProxy: Accept failed");
poller.delFd(listenerHandle);
- server.reset(listener.accept(0, 0));
+ server.reset(listener.accept());
// Pump data between client & server sockets
qpid::sys::PollerHandle clientHandle(client);
diff --git a/qpid/cpp/src/tests/TimerTest.cpp b/qpid/cpp/src/tests/TimerTest.cpp
index 50712ff79c..f8ab9fb2f3 100644
--- a/qpid/cpp/src/tests/TimerTest.cpp
+++ b/qpid/cpp/src/tests/TimerTest.cpp
@@ -75,7 +75,11 @@ class TestTask : public TimerTask
BOOST_CHECK(fired);
BOOST_CHECK_EQUAL(expected_position, position);
Duration actual(start, end);
+#ifdef _WIN32
+ uint64_t difference = _abs64(expected - actual);
+#else
uint64_t difference = abs(expected - actual);
+#endif
std::string msg(boost::lexical_cast<std::string>(boost::format("tolerance = %1%, difference = %2%") % tolerance % difference));
BOOST_CHECK_MESSAGE(difference < tolerance, msg);
}
diff --git a/qpid/cpp/src/tests/Uuid.cpp b/qpid/cpp/src/tests/Uuid.cpp
index ee86d75a26..ea2e80b63b 100644
--- a/qpid/cpp/src/tests/Uuid.cpp
+++ b/qpid/cpp/src/tests/Uuid.cpp
@@ -18,11 +18,11 @@
#include "qpid/framing/Uuid.h"
#include "qpid/framing/Buffer.h"
+#include "qpid/sys/alloca.h"
#include "unit_test.h"
#include <set>
-#include <alloca.h>
QPID_AUTO_TEST_SUITE(UuidTestSuite)
diff --git a/qpid/cpp/src/tests/client_test.vcproj b/qpid/cpp/src/tests/client_test.vcproj
index 0f9a50cdf0..1623c2961e 100644
--- a/qpid/cpp/src/tests/client_test.vcproj
+++ b/qpid/cpp/src/tests/client_test.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="client_test"
- ProjectGUID="{9A95F0E4-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="client_test"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\client_test\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\client_test\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\client_test.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\client_test\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\client_test\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\client_test.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\client_test\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\client_test\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\client_test.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\client_test\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\client_test\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\client_test.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/cluster.mk b/qpid/cpp/src/tests/cluster.mk
index c3100ac968..5d115de5a5 100644
--- a/qpid/cpp/src/tests/cluster.mk
+++ b/qpid/cpp/src/tests/cluster.mk
@@ -29,8 +29,9 @@ if HAVE_LIBCPG
# ais_check checks pre-requisites for cluster tests and runs them if ok.
-TESTS+=ais_check federated_cluster_test
-EXTRA_DIST+=ais_check start_cluster stop_cluster restart_cluster cluster_python_tests cluster_python_tests_failing.txt federated_cluster_test
+TESTS+=ais_check federated_cluster_test clustered_replication_test
+EXTRA_DIST+=ais_check start_cluster stop_cluster restart_cluster cluster_python_tests cluster_python_tests_failing.txt \
+ federated_cluster_test clustered_replication_test
check_PROGRAMS+=cluster_test
cluster_test_SOURCES=unit_test.cpp cluster_test.cpp ClusterFixture.cpp ClusterFixture.h ForkedBroker.h ForkedBroker.cpp
diff --git a/qpid/cpp/src/tests/cluster_test.cpp b/qpid/cpp/src/tests/cluster_test.cpp
index c880f30e6b..eee2df58cc 100644
--- a/qpid/cpp/src/tests/cluster_test.cpp
+++ b/qpid/cpp/src/tests/cluster_test.cpp
@@ -27,6 +27,7 @@
#include "qpid/client/ConnectionAccess.h"
#include "qpid/client/Session.h"
#include "qpid/client/FailoverListener.h"
+#include "qpid/client/FailoverManager.h"
#include "qpid/cluster/Cluster.h"
#include "qpid/cluster/Cpg.h"
#include "qpid/cluster/UpdateClient.h"
@@ -35,6 +36,8 @@
#include "qpid/framing/reply_exceptions.h"
#include "qpid/framing/enum.h"
#include "qpid/log/Logger.h"
+#include "qpid/sys/Monitor.h"
+#include "qpid/sys/Thread.h"
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
@@ -148,49 +151,65 @@ vector<string> browse(Client& c, const string& q, int n) {
c.subs.subscribe(lq, q, browseSettings);
vector<string> result;
for (int i = 0; i < n; ++i) {
- result.push_back(lq.get(TIMEOUT).getData());
+ Message m;
+ if (!lq.get(m, TIMEOUT))
+ break;
+ result.push_back(m.getData());
}
c.subs.getSubscription(q).cancel();
return result;
}
+ConnectionSettings aclSettings(int port, const std::string& id) {
+ ConnectionSettings settings;
+ settings.port = port;
+ settings.mechanism = "PLAIN";
+ settings.username = id;
+ settings.password = id;
+ return settings;
+}
+
+#if 0
+// FIXME aconway 2009-03-10: This test passes but exposes a memory leak in the SASL client code.
+// Enable it when the leak is fixed.
+
+QPID_AUTO_TEST_CASE(testAcl) {
+ ofstream policyFile("cluster_test.acl");
+ // FIXME aconway 2009-02-12: guest -> qpidd?
+ policyFile << "acl allow foo@QPID create queue name=foo" << endl
+ << "acl allow foo@QPID create queue name=foo2" << endl
+ << "acl deny foo@QPID create queue name=bar" << endl
+ << "acl allow all all" << endl;
+ policyFile.close();
+ char cwd[1024];
+ BOOST_CHECK(::getcwd(cwd, sizeof(cwd)));
+ ClusterFixture cluster(2,-1, list_of<string>
+ ("--no-data-dir")
+ ("--auth=no")
+ ("--acl-file="+string(cwd)+"/cluster_test.acl")
+ ("--cluster-mechanism=PLAIN")
+ ("--cluster-username=cluster")
+ ("--cluster-password=cluster")
+ ("--load-module=../.libs/acl.so"));
+
+ Client c0(aclSettings(cluster[0], "c0"), "c0");
+ Client c1(aclSettings(cluster[1], "c1"), "c1");
+ Client foo(aclSettings(cluster[1], "foo"), "foo");
+
+ foo.session.queueDeclare("foo");
+ BOOST_CHECK_EQUAL(c0.session.queueQuery("foo").getQueue(), "foo");
+
+ BOOST_CHECK_THROW(foo.session.queueDeclare("bar"), framing::NotAllowedException);
+ BOOST_CHECK(c0.session.queueQuery("bar").getQueue().empty());
+ BOOST_CHECK(c1.session.queueQuery("bar").getQueue().empty());
-// FIXME aconway 2009-02-12: need to figure out how to test this properly.
-// Current problems:
-// - all brokers share the same data-dir (set ACL without data dir?)
-// - updater's user name not making it through to updatee for ACL checks.
-//
-// QPID_AUTO_TEST_CASE(testAcl) {
-// ofstream policyFile("cluster_test.acl");
-// // FIXME aconway 2009-02-12: guest -> qpidd?
-// policyFile << "acl allow guest@QPID all all" << endl
-// << "acl allow foo@QPID create queue name=foo" << endl
-// << "acl allow bar@QPID create queue name=bar" << endl
-// << "acl deny all create queue" << endl
-// << "acl allow all all" << endl;
-// policyFile.close();
-// ClusterFixture cluster(2,-1, list_of<string>
-// ("--data-dir=.") ("--auth=no")
-// ("--acl-file=cluster_test.acl")
-// ("--cluster-mechanism=PLAIN")
-// ("--load-module=../.libs/acl.so"));
-// Client c0(cluster[0], "c0");
-// Client c1(cluster[1], "c1");
-
-// ConnectionSettings settings;
-// settings.port = cluster[0];
-// settings.username = "foo";
-// Client foo(settings, "foo");
-
-// foo.session.queueDeclare("foo");
-// BOOST_CHECK_EQUAL(c0.session.queueQuery("foo").getQueue(), "foo");
-// BOOST_CHECK_EQUAL(c1.session.queueQuery("foo").getQueue(), "foo");
-
-// BOOST_CHECK_THROW(foo.session.queueDeclare("bar"), int);
-// BOOST_CHECK_EQUAL(c0.session.queueQuery("bar").getQueue(), "");
-// BOOST_CHECK_EQUAL(c1.session.queueQuery("bar").getQueue(), "");
-// }
+ cluster.add();
+ Client c2(aclSettings(cluster[2], "c2"), "c2");
+ BOOST_CHECK_THROW(foo.session.queueDeclare("bar"), framing::NotAllowedException);
+ BOOST_CHECK(c2.session.queueQuery("bar").getQueue().empty());
+}
+#endif
QPID_AUTO_TEST_CASE(testMessageTimeToLive) {
// Note: this doesn't actually test for cluster race conditions around TTL,
@@ -199,13 +218,23 @@ QPID_AUTO_TEST_CASE(testMessageTimeToLive) {
ClusterFixture cluster(2);
Client c0(cluster[0], "c0");
Client c1(cluster[1], "c1");
+ c0.session.queueDeclare("p");
c0.session.queueDeclare("q");
c0.session.messageTransfer(arg::content=ttlMessage("a", "q", 200));
c0.session.messageTransfer(arg::content=Message("b", "q"));
- BOOST_CHECK_EQUAL(browse(c1, "q", 2), list_of<string>("a")("b"));
- sys::usleep(300*1000);
+ c0.session.messageTransfer(arg::content=ttlMessage("x", "p", 10000));
+ c0.session.messageTransfer(arg::content=Message("y", "p"));
+ cluster.add();
+ Client c2(cluster[1], "c2");
+
+ BOOST_CHECK_EQUAL(browse(c0, "p", 2), list_of<string>("x")("y"));
+ BOOST_CHECK_EQUAL(browse(c1, "p", 2), list_of<string>("x")("y"));
+ BOOST_CHECK_EQUAL(browse(c2, "p", 2), list_of<string>("x")("y"));
+
+ sys::usleep(200*1000);
BOOST_CHECK_EQUAL(browse(c0, "q", 1), list_of<string>("b"));
BOOST_CHECK_EQUAL(browse(c1, "q", 1), list_of<string>("b"));
+ BOOST_CHECK_EQUAL(browse(c2, "q", 1), list_of<string>("b"));
}
QPID_AUTO_TEST_CASE(testSequenceOptions) {
@@ -506,10 +535,11 @@ QPID_AUTO_TEST_CASE(testCatchupSharedState) {
c0.session.queueDeclare("q");
c0.session.messageTransfer(arg::content=Message("foo","q"));
c0.session.messageTransfer(arg::content=Message("bar","q"));
+
while (c0.session.queueQuery("q").getMessageCount() != 2)
sys::usleep(1000); // Wait for message to show up on broker 0.
- // Add a new broker, it should catch up.
+ // Add a new broker, it will catch up.
cluster.add();
// Do some work post-add
@@ -527,6 +557,7 @@ QPID_AUTO_TEST_CASE(testCatchupSharedState) {
BOOST_CHECK(c1.subs.get(m, "q", TIMEOUT));
BOOST_CHECK_EQUAL(m.getData(), "foo");
+ BOOST_CHECK_EQUAL(m.getDeliveryProperties().getExchange(), "");
BOOST_CHECK(c1.subs.get(m, "q", TIMEOUT));
BOOST_CHECK_EQUAL(m.getData(), "bar");
BOOST_CHECK_EQUAL(c1.session.queueQuery("q").getMessageCount(), 0u);
@@ -628,4 +659,86 @@ QPID_AUTO_TEST_CASE(testDequeueWaitingSubscription) {
BOOST_CHECK_EQUAL(0u, c2.session.queueQuery("q").getMessageCount());
}
+QPID_AUTO_TEST_CASE(testHeartbeatCancelledOnFailover)
+{
+ struct Sender : FailoverManager::Command
+ {
+ std::string queue;
+ std::string content;
+
+ Sender(const std::string& q, const std::string& c) : queue(q), content(c) {}
+
+ void execute(AsyncSession& session, bool)
+ {
+ session.messageTransfer(arg::content=Message(content, queue));
+ }
+ };
+
+ struct Receiver : FailoverManager::Command, MessageListener, qpid::sys::Runnable
+ {
+ FailoverManager& mgr;
+ std::string queue;
+ std::string expectedContent;
+ qpid::client::Subscription subscription;
+ qpid::sys::Monitor lock;
+ bool ready;
+
+ Receiver(FailoverManager& m, const std::string& q, const std::string& c) : mgr(m), queue(q), expectedContent(c), ready(false) {}
+
+ void received(Message& message)
+ {
+ BOOST_CHECK_EQUAL(expectedContent, message.getData());
+ subscription.cancel();
+ }
+
+ void execute(AsyncSession& session, bool)
+ {
+ session.queueDeclare(arg::queue=queue);
+ SubscriptionManager subs(session);
+ subscription = subs.subscribe(*this, queue);
+ session.sync();
+ setReady();
+ subs.run();
+ //cleanup:
+ session.queueDelete(arg::queue=queue);
+ }
+
+ void run()
+ {
+ mgr.execute(*this);
+ }
+
+ void waitForReady()
+ {
+ qpid::sys::Monitor::ScopedLock l(lock);
+ while (!ready) {
+ lock.wait();
+ }
+ }
+
+ void setReady()
+ {
+ qpid::sys::Monitor::ScopedLock l(lock);
+ ready = true;
+ lock.notify();
+ }
+ };
+
+ ClusterFixture cluster(2);
+ ConnectionSettings settings;
+ settings.port = cluster[1];
+ settings.heartbeat = 1;
+ FailoverManager fmgr(settings);
+ Sender sender("my-queue", "my-data");
+ Receiver receiver(fmgr, "my-queue", "my-data");
+ qpid::sys::Thread runner(receiver);
+ receiver.waitForReady();
+ cluster.kill(1);
+ //sleep for 2 secs to allow the heartbeat task to fire on the now dead connection:
+ ::usleep(2*1000*1000);
+ fmgr.execute(sender);
+ runner.join();
+ fmgr.close();
+}
+
QPID_AUTO_TEST_SUITE_END()
diff --git a/qpid/cpp/src/tests/clustered_replication_test b/qpid/cpp/src/tests/clustered_replication_test
new file mode 100755
index 0000000000..2a3e742632
--- /dev/null
+++ b/qpid/cpp/src/tests/clustered_replication_test
@@ -0,0 +1,127 @@
+#!/bin/sh
+
+#
+# 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.
+#
+
+# Test reliability of the replication feature in the face of link
+# failures:
+srcdir=`dirname $0`
+PYTHON_DIR=$srcdir/../../../python
+
+trap stop_brokers INT EXIT
+
+fail() {
+ echo $1
+ exit 1
+}
+with_ais_group() {
+ id -nG | grep '\<ais\>' >/dev/null || { echo "You are not a member of the ais group." 1>&2; exit 1; }
+ echo $* | newgrp ais
+}
+
+stop_brokers() {
+ if [[ $PRIMARY1 ]] ; then
+ ../qpidd -q --port $PRIMARY1
+ unset PRIMARY1
+ fi
+ if [[ $PRIMARY2 ]] ; then
+ ../qpidd -q --port $PRIMARY2
+ unset PRIMARY2
+ fi
+ if [[ $DR1 ]] ; then
+ ../qpidd -q --port $DR1
+ unset DR1
+ fi
+ if [[ $DR2 ]] ; then
+ ../qpidd -q --port $DR2
+ unset DR2
+ fi
+}
+
+if test -d ${PYTHON_DIR}; then
+ id -nG | grep '\<ais\>' >/dev/null || \
+ NOGROUP="You are not a member of the ais group."
+ ps -u root | grep 'aisexec\|corosync' >/dev/null || \
+ NOAISEXEC="The aisexec or corosync daemon is not running as root"
+
+ if test -n "$NOGROUP" -o -n "$NOAISEXEC"; then
+ cat <<EOF
+Not running federation to cluster test because:
+ $NOGROUP
+ $NOAISEXEC
+EOF
+ exit 0;
+ fi
+
+ #todo: these cluster names need to be unique to prevent clashes
+ PRIMARY_CLUSTER=PRIMARY_$(hostname)_$(pwd)
+ DR_CLUSTER=DR_$(hostname)_$(pwd)
+
+ GENERAL_OPTS="--auth no --no-module-dir --no-data-dir --daemon --port 0 --log-enable notice+ --log-to-stderr false"
+ PRIMARY_OPTS="--load-module ../.libs/replicating_listener.so --create-replication-queue true --replication-queue REPLICATION_QUEUE --load-module ../.libs/cluster.so --cluster-name $PRIMARY_CLUSTER"
+ DR_OPTS="--load-module ../.libs/replication_exchange.so --load-module ../.libs/cluster.so --cluster-name $DR_CLUSTER"
+
+ rm -f repl*.tmp #cleanup any files left from previous run
+
+ #start first node of primary cluster and set up test queue
+ echo Starting primary cluster
+ PRIMARY1=$(with_ais_group ../qpidd $GENERAL_OPTS $PRIMARY_OPTS --log-to-file repl.primary.1.tmp) || fail "Could not start node"
+ $PYTHON_DIR/commands/qpid-config -a "localhost:$PRIMARY1" add queue test-queue --generate-queue-events 2
+ $PYTHON_DIR/commands/qpid-config -a "localhost:$PRIMARY1" add queue control-queue --generate-queue-events 1
+
+ #send 10 messages, consume 5 of them
+ for i in `seq 1 10`; do echo Message$i; done | ./sender --port $PRIMARY1
+ ./receiver --port $PRIMARY1 --messages 5 > /dev/null
+
+ #add new node to primary cluster, testing correct transfer of state:
+ echo Adding node to primary cluster
+ PRIMARY2=$(with_ais_group ../qpidd $GENERAL_OPTS $PRIMARY_OPTS --log-to-file repl.primary.2.tmp)
+
+ #start DR cluster, set up test queue there and establish replication bridge
+ echo Starting DR cluster
+ DR1=$(with_ais_group ../qpidd $GENERAL_OPTS $DR_OPTS --log-to-file repl.dr.1.tmp)
+ DR2=$(with_ais_group ../qpidd $GENERAL_OPTS $DR_OPTS --log-to-file repl.dr.2.tmp)
+
+ $PYTHON_DIR/commands/qpid-config -a "localhost:$DR1" add queue test-queue
+ $PYTHON_DIR/commands/qpid-config -a "localhost:$DR1" add queue control-queue
+ $PYTHON_DIR/commands/qpid-config -a "localhost:$DR1" add exchange replication REPLICATION_EXCHANGE
+ $PYTHON_DIR/commands/qpid-route queue add localhost:$DR2 localhost:$PRIMARY2 REPLICATION_EXCHANGE REPLICATION_QUEUE
+
+ #send more messages to primary
+ for i in `seq 11 20`; do echo Message$i; done | ./sender --port $PRIMARY1 --send-eos 1
+
+ #wait for replication events to all be processed:
+ echo Waiting for replication to complete
+ echo Done | ./sender --port $PRIMARY1 --routing-key control-queue --send-eos 1
+ ./receiver --queue control-queue --port $DR1 > /dev/null
+
+ #verify contents of test queue on dr cluster:
+ echo Verifying...
+ ./receiver --port $DR2 > repl.out.tmp
+ for i in `seq 6 20`; do echo Message$i; done | diff repl.out.tmp - || FAIL=1
+
+ if [[ $FAIL ]]; then
+ echo Clustered replication test failed: expectations not met!
+ exit 1
+ else
+ echo Clustered replication test passed
+ rm -f repl*.tmp
+ fi
+
+fi
diff --git a/qpid/cpp/src/tests/consume.vcproj b/qpid/cpp/src/tests/consume.vcproj
index ecf7b2df08..2e1f8e3e56 100644
--- a/qpid/cpp/src/tests/consume.vcproj
+++ b/qpid/cpp/src/tests/consume.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="consume"
- ProjectGUID="{7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="consume"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\consume\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\consume\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\consume.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\consume\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\consume\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\consume.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\consume\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\consume\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\consume.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\consume\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\consume\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\consume.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/echotest.vcproj b/qpid/cpp/src/tests/echotest.vcproj
index 0048dde85f..2848894228 100644
--- a/qpid/cpp/src/tests/echotest.vcproj
+++ b/qpid/cpp/src/tests/echotest.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="echotest"
- ProjectGUID="{0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="echotest"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\echotest\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\echotest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\echotest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\echotest\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\echotest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\echotest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\echotest\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\echotest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\echotest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\echotest\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\echotest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\echotest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/failover_soak.cpp b/qpid/cpp/src/tests/failover_soak.cpp
index 6149e845e4..4f16e469b8 100644
--- a/qpid/cpp/src/tests/failover_soak.cpp
+++ b/qpid/cpp/src/tests/failover_soak.cpp
@@ -26,18 +26,32 @@
#include <sys/wait.h>
#include <sys/time.h>
#include <string.h>
+#include <sys/types.h>
+#include <signal.h>
#include <string>
#include <iostream>
#include <sstream>
#include <vector>
+#include <boost/assign.hpp>
+
+#include "qpid/framing/Uuid.h"
+
#include <ForkedBroker.h>
+#include <qpid/client/Connection.h>
+
+
using namespace std;
+using boost::assign::list_of;
+using namespace qpid::framing;
+using namespace qpid::client;
+
+
typedef vector<ForkedBroker *> brokerVector;
@@ -51,11 +65,34 @@ typedef enum
childStatus;
+typedef enum
+{
+ NO_TYPE,
+ DECLARING_CLIENT,
+ SENDING_CLIENT,
+ RECEIVING_CLIENT
+}
+childType;
+
+
+ostream& operator<< ( ostream& os, const childType& ct ) {
+ switch ( ct ) {
+ case DECLARING_CLIENT: os << "Declaring Client"; break;
+ case SENDING_CLIENT: os << "Sending Client"; break;
+ case RECEIVING_CLIENT: os << "Receiving Client"; break;
+ default: os << "No Client"; break;
+ }
+
+ return os;
+}
+
+
+
struct child
{
- child ( string & name, pid_t pid )
- : name(name), pid(pid), retval(-999), status(RUNNING)
+ child ( string & name, pid_t pid, childType type )
+ : name(name), pid(pid), retval(-999), status(RUNNING), type(type)
{
gettimeofday ( & startTime, 0 );
}
@@ -70,10 +107,18 @@ struct child
}
+ void
+ setType ( childType t )
+ {
+ type = t;
+ }
+
+
string name;
pid_t pid;
int retval;
childStatus status;
+ childType type;
struct timeval startTime,
stopTime;
};
@@ -83,10 +128,11 @@ struct child
struct children : public vector<child *>
{
+
void
- add ( string & name, pid_t pid )
+ add ( string & name, pid_t pid, childType type )
{
- push_back(new child ( name, pid ));
+ push_back ( new child ( name, pid, type ) );
}
@@ -108,7 +154,7 @@ struct children : public vector<child *>
child * kid = get ( pid );
if(! kid)
{
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
{
cerr << "children::exited warning: Can't find child with pid "
<< pid
@@ -138,10 +184,15 @@ struct children : public vector<child *>
int
checkChildren ( )
{
- vector<child *>::iterator i;
+ vector<child *>::iterator i;
for ( i = begin(); i != end(); ++ i )
if ( (COMPLETED == (*i)->status) && (0 != (*i)->retval) )
- return (*i)->retval;
+ {
+ cerr << "checkChildren: error on child of type "
+ << (*i)->type
+ << endl;
+ return (*i)->retval;
+ }
return 0;
}
@@ -176,22 +227,43 @@ struct children : public vector<child *>
If it has been at least that long since a shild stopped
running, we judge the system to have hung.
*/
- bool
+ int
hanging ( int hangTime )
{
struct timeval now,
duration;
gettimeofday ( &now, 0 );
+ int how_many_hanging = 0;
+
vector<child *>::iterator i;
for ( i = begin(); i != end(); ++ i )
{
- timersub ( & now, &((*i)->startTime), & duration );
- if ( duration.tv_sec >= hangTime )
- return true;
+ //Not in POSIX
+ //timersub ( & now, &((*i)->startTime), & duration );
+ duration.tv_sec = now.tv_sec - (*i)->startTime.tv_sec;
+ duration.tv_usec = now.tv_usec - (*i)->startTime.tv_usec;
+ if (duration.tv_usec < 0) {
+ --duration.tv_sec;
+ duration.tv_usec += 1000000;
+ }
+
+ if ( (COMPLETED != (*i)->status) // child isn't done running
+ &&
+ ( duration.tv_sec >= hangTime ) // it's been too long
+ )
+ {
+ std::cerr << "Child of type "
+ << (*i)->type
+ << " hanging. "
+ << "PID is "
+ << (*i)->pid
+ << endl;
+ ++ how_many_hanging;
+ }
}
- return false;
+ return how_many_hanging;
}
@@ -206,9 +278,8 @@ children allMyChildren;
void
-childExit ( int signalNumber )
+childExit ( int )
{
- signalNumber ++; // Now maybe the compiler willleave me alone?
int childReturnCode;
pid_t pid = waitpid ( 0, & childReturnCode, WNOHANG);
@@ -235,10 +306,9 @@ mrand ( int minDesiredVal, int maxDesiredVal ) {
void
-makeClusterName ( string & s, int & num ) {
- num = mrand(1000);
+makeClusterName ( string & s ) {
stringstream ss;
- ss << "soakTestCluster_" << num;
+ ss << "soakTestCluster_" << Uuid(true).str();
s = ss.str();
}
@@ -263,66 +333,136 @@ printBrokers ( brokerVector & brokers )
+ForkedBroker * newbie = 0;
+int newbie_port = 0;
+
+
+
+bool
+wait_for_newbie ( )
+{
+ if ( ! newbie )
+ return true;
+
+ try
+ {
+ Connection connection;
+ connection.open ( "127.0.0.1", newbie_port );
+ connection.close();
+ newbie = 0; // He's no newbie anymore!
+ return true;
+ }
+ catch ( const std::exception& error )
+ {
+ std::cerr << "wait_for_newbie error: "
+ << error.what()
+ << endl;
+ return false;
+ }
+}
+
+
+
void
startNewBroker ( brokerVector & brokers,
char const * srcRoot,
char const * moduleDir,
- string const clusterName )
+ string const clusterName,
+ int verbosity )
{
static int brokerId = 0;
stringstream path, prefix, module;
module << moduleDir << "/cluster.so";
path << srcRoot << "/qpidd";
- prefix << "soak-" << brokerId++;
-
- const char * const argv[] =
- {
- "qpidd",
- "-p0",
- "--load-module=cluster.so",
- "--cluster-name",
- clusterName.c_str(),
- "--auth=no",
- "--no-data-dir",
- "--no-module-dir",
- "--mgmt-enable=no",
- "--log-prefix", prefix.str().c_str(),
- 0
- };
-
- size_t argc = sizeof(argv)/sizeof(argv[0]);
- brokers.push_back ( new ForkedBroker ( argc, argv ) );
+ prefix << "soak-" << brokerId;
+ std::vector<std::string> argv = list_of<string>
+ ("qpidd")
+ ("--no-module-dir")
+ ("--load-module=cluster.so")
+ ("--cluster-name")
+ (clusterName)
+ ("--auth=no")
+ ("--no-data-dir")
+ ("--mgmt-enable=no")
+ ("--log-prefix")
+ (prefix.str())
+ ("--log-to-file")
+ (prefix.str()+".log");
+
+ newbie = new ForkedBroker ( argv );
+ newbie_port = newbie->getPort();
+ ForkedBroker * broker = newbie;
+
+ if ( verbosity > 0 )
+ std::cerr << "new broker created: pid == "
+ << broker->getPID()
+ << " log-prefix == "
+ << "soak-" << brokerId
+ << endl;
+ brokers.push_back ( broker );
+
+ ++ brokerId;
}
-void
+bool
killFrontBroker ( brokerVector & brokers, int verbosity )
{
+ cerr << "killFrontBroker: waiting for newbie sync...\n";
+ if ( ! wait_for_newbie() )
+ return false;
+ cerr << "killFrontBroker: newbie synced.\n";
+
if ( verbosity > 0 )
cout << "killFrontBroker pid: " << brokers[0]->getPID() << " on port " << brokers[0]->getPort() << endl;
try { brokers[0]->kill(9); }
catch ( const exception& error ) {
if ( verbosity > 0 )
- cout << "error killing broker: " << error.what() << endl;
+ {
+ cout << "error killing broker: "
+ << error.what()
+ << endl;
+ }
+
+ return false;
}
delete brokers[0];
brokers.erase ( brokers.begin() );
+ return true;
}
+/*
+ * The optional delay is to avoid killing newbie brokers that have just
+ * been added and are still in the process of updating. This causes
+ * spurious, test-generated errors that scare everybody.
+ */
void
-killAllBrokers ( brokerVector & brokers )
+killAllBrokers ( brokerVector & brokers, int delay )
{
+ if ( delay > 0 )
+ {
+ std::cerr << "Killing all brokers after delay of " << delay << endl;
+ sleep ( delay );
+ }
+
for ( uint i = 0; i < brokers.size(); ++ i )
try { brokers[i]->kill(9); }
- catch ( ... ) { }
+ catch ( const exception& error )
+ {
+ std::cerr << "killAllBrokers Warning: exception during kill on broker "
+ << i
+ << " "
+ << error.what()
+ << endl;
+ }
}
@@ -339,7 +479,7 @@ runDeclareQueuesClient ( brokerVector brokers,
string name("declareQueues");
int port = brokers[0]->getPort ( );
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
cout << "startDeclareQueuesClient: host: "
<< host
<< " port: "
@@ -357,11 +497,11 @@ runDeclareQueuesClient ( brokerVector brokers,
if ( ! pid ) {
execv ( path, const_cast<char * const *>(&argv[0]) );
- perror ( "error executing dq: " );
+ perror ( "error executing declareQueues: " );
return 0;
}
- allMyChildren.add ( name, pid );
+ allMyChildren.add ( name, pid, DECLARING_CLIENT );
return pid;
}
@@ -380,12 +520,16 @@ startReceivingClient ( brokerVector brokers,
string name("receiver");
int port = brokers[0]->getPort ( );
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
cout << "startReceivingClient: port " << port << endl;
+
+ // verbosity has to be > 1 to let clients talk.
+ int client_verbosity = (verbosity > 1 ) ? 1 : 0;
+
char portStr[100];
char verbosityStr[100];
sprintf(portStr, "%d", port);
- sprintf(verbosityStr, "%d", verbosity);
+ sprintf(verbosityStr, "%d", client_verbosity);
vector<const char*> argv;
@@ -404,7 +548,7 @@ startReceivingClient ( brokerVector brokers,
return 0;
}
- allMyChildren.add ( name, pid );
+ allMyChildren.add ( name, pid, RECEIVING_CLIENT );
return pid;
}
@@ -424,13 +568,16 @@ startSendingClient ( brokerVector brokers,
string name("sender");
int port = brokers[0]->getPort ( );
- if ( verbosity )
+ if ( verbosity > 1)
cout << "startSenderClient: port " << port << endl;
char portStr[100];
char verbosityStr[100];
+ //
+ // verbosity has to be > 1 to let clients talk.
+ int client_verbosity = (verbosity > 1 ) ? 1 : 0;
sprintf ( portStr, "%d", port);
- sprintf ( verbosityStr, "%d", verbosity);
+ sprintf ( verbosityStr, "%d", client_verbosity);
vector<const char*> argv;
argv.push_back ( "replayingSender" );
@@ -449,19 +596,21 @@ startSendingClient ( brokerVector brokers,
return 0;
}
- allMyChildren.add ( name, pid );
+ allMyChildren.add ( name, pid, SENDING_CLIENT );
return pid;
}
-#define HUNKY_DORY 0
-#define BAD_ARGS 1
-#define CANT_FORK_DQ 2
-#define CANT_FORK_RECEIVER 3
-#define DQ_FAILED 4
-#define ERROR_ON_CHILD 5
-#define HANGING 6
+#define HUNKY_DORY 0
+#define BAD_ARGS 1
+#define CANT_FORK_DQ 2
+#define CANT_FORK_RECEIVER 3
+#define CANT_FORK_SENDER 4
+#define DQ_FAILED 5
+#define ERROR_ON_CHILD 6
+#define HANGING 7
+#define ERROR_KILLING_BROKER 8
int
@@ -489,16 +638,15 @@ main ( int argc, char const ** argv )
allMyChildren.verbosity = verbosity;
- int clusterNum;
string clusterName;
srand ( getpid() );
- makeClusterName ( clusterName, clusterNum );
+ makeClusterName ( clusterName );
brokerVector brokers;
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
cout << "Starting initial cluster...\n";
int nBrokers = 3;
@@ -506,7 +654,8 @@ main ( int argc, char const ** argv )
startNewBroker ( brokers,
srcRoot,
moduleDir,
- clusterName );
+ clusterName,
+ verbosity );
}
@@ -518,14 +667,14 @@ main ( int argc, char const ** argv )
pid_t dqClientPid =
runDeclareQueuesClient ( brokers, host, declareQueuesPath, verbosity );
if ( -1 == dqClientPid ) {
- cerr << "failoverSoak error: Couldn't fork declareQueues.\n";
+ cerr << "END_OF_TEST ERROR_START_DECLARE_1\n";
return CANT_FORK_DQ;
}
// Don't continue until declareQueues is finished.
pid_t retval = waitpid ( dqClientPid, & childStatus, 0);
if ( retval != dqClientPid) {
- cerr << "failoverSoak error: waitpid on declareQueues returned value " << retval << endl;
+ cerr << "END_OF_TEST ERROR_START_DECLARE_2\n";
return DQ_FAILED;
}
allMyChildren.exited ( dqClientPid, childStatus );
@@ -540,7 +689,7 @@ main ( int argc, char const ** argv )
reportFrequency,
verbosity );
if ( -1 == receivingClientPid ) {
- cerr << "failoverSoak error: Couldn't fork receiver.\n";
+ cerr << "END_OF_TEST ERROR_START_RECEIVER\n";
return CANT_FORK_RECEIVER;
}
@@ -554,13 +703,13 @@ main ( int argc, char const ** argv )
reportFrequency,
verbosity );
if ( -1 == sendingClientPid ) {
- cerr << "failoverSoak error: Couldn't fork sender.\n";
- return CANT_FORK_RECEIVER;
+ cerr << "END_OF_TEST ERROR_START_SENDER\n";
+ return CANT_FORK_SENDER;
}
- int minSleep = 3,
- maxSleep = 6;
+ int minSleep = 2,
+ maxSleep = 4;
for ( int totalBrokers = 3;
@@ -578,11 +727,16 @@ main ( int argc, char const ** argv )
sleep ( sleepyTime );
// Kill the oldest broker. --------------------------
- killFrontBroker ( brokers, verbosity );
+ if ( ! killFrontBroker ( brokers, verbosity ) )
+ {
+ allMyChildren.killEverybody();
+ std::cerr << "END_OF_TEST ERROR_BROKER\n";
+ return ERROR_KILLING_BROKER;
+ }
// Sleep for a while. -------------------------
sleepyTime = mrand ( minSleep, maxSleep );
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
cerr << "Sleeping for " << sleepyTime << " seconds.\n";
sleep ( sleepyTime );
@@ -593,22 +747,33 @@ main ( int argc, char const ** argv )
startNewBroker ( brokers,
srcRoot,
moduleDir,
- clusterName );
+ clusterName,
+ verbosity );
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
printBrokers ( brokers );
// If all children have exited, quit.
int unfinished = allMyChildren.unfinished();
if ( ! unfinished ) {
- killAllBrokers ( brokers );
+ killAllBrokers ( brokers, 5 );
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
cout << "failoverSoak: all children have exited.\n";
int retval = allMyChildren.checkChildren();
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
std::cerr << "failoverSoak: checkChildren: " << retval << endl;
- return retval ? ERROR_ON_CHILD : HUNKY_DORY;
+
+ if ( retval )
+ {
+ std::cerr << "END_OF_TEST ERROR_CLIENT\n";
+ return ERROR_ON_CHILD;
+ }
+ else
+ {
+ std::cerr << "END_OF_TEST SUCCESSFUL\n";
+ return HUNKY_DORY;
+ }
}
// Even if some are still running, if there's an error, quit.
@@ -617,35 +782,38 @@ main ( int argc, char const ** argv )
if ( verbosity > 0 )
cout << "failoverSoak: error on child.\n";
allMyChildren.killEverybody();
- killAllBrokers ( brokers );
+ killAllBrokers ( brokers, 5 );
+ std::cerr << "END_OF_TEST ERROR_CLIENT\n";
return ERROR_ON_CHILD;
}
// If one is hanging, quit.
if ( allMyChildren.hanging ( 120 ) )
{
- if ( verbosity > 0 )
- cout << "failoverSoak: child hanging.\n";
- allMyChildren.killEverybody();
- killAllBrokers ( brokers );
+ /*
+ * Don't kill any processes. Leave alive for questioning.
+ * */
+ std::cerr << "END_OF_TEST ERROR_HANGING\n";
return HANGING;
}
- if ( verbosity > 0 ) {
+ if ( verbosity > 1 ) {
std::cerr << "------- next kill-broker loop --------\n";
allMyChildren.print();
}
}
retval = allMyChildren.checkChildren();
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
std::cerr << "failoverSoak: checkChildren: " << retval << endl;
- if ( verbosity > 0 )
+ if ( verbosity > 1 )
cout << "failoverSoak: maxBrokers reached.\n";
allMyChildren.killEverybody();
- killAllBrokers ( brokers );
+ killAllBrokers ( brokers, 5 );
+
+ std::cerr << "END_OF_TEST SUCCESSFUL\n";
return retval ? ERROR_ON_CHILD : HUNKY_DORY;
}
diff --git a/qpid/cpp/src/tests/federated_cluster_test b/qpid/cpp/src/tests/federated_cluster_test
index d4549738b2..575a5d9c9b 100755
--- a/qpid/cpp/src/tests/federated_cluster_test
+++ b/qpid/cpp/src/tests/federated_cluster_test
@@ -21,8 +21,8 @@
# Test reliability of the replication feature in the face of link
# failures:
-MY_DIR=`dirname \`which $0\``
-PYTHON_DIR=${MY_DIR}/../../../python
+srcdir=`dirname $0`
+PYTHON_DIR=$srcdir/../../../python
trap stop_brokers EXIT
@@ -37,9 +37,14 @@ stop_brokers() {
unset BROKER_A
fi
if [[ $NODE_1 ]] ; then
- ./stop_cluster
+ ../qpidd -q --port $NODE_1
unset NODE_1
fi
+ if [[ $NODE_2 ]] ; then
+ ../qpidd -q --port $NODE_2
+ unset NODE_2
+ fi
+ rm cluster.ports
}
start_brokers() {
@@ -48,19 +53,20 @@ start_brokers() {
BROKER_A=`cat fed.port.tmp`
#...and start cluster
- ./start_cluster 2 || fail "Could not start cluster"
+ $srcdir/start_cluster 2 || fail "Could not start cluster"
NODE_1=$(head -1 cluster.ports)
NODE_2=$(tail -1 cluster.ports)
}
setup() {
+ export PYTHONPATH=$PYTHON_DIR
#create exchange on both cluster and single broker
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_A" add exchange direct test-exchange
$PYTHON_DIR/commands/qpid-config -a "localhost:$NODE_1" add exchange direct test-exchange
#create dynamic routes for test exchange
- $PYTHON_DIR/commands/qpid-route dynamic add "localhost:$NODE_1" "localhost:$BROKER_A" test-exchange
- $PYTHON_DIR/commands/qpid-route dynamic add "localhost:$BROKER_A" "localhost:$NODE_1" test-exchange
+ $PYTHON_DIR/commands/qpid-route dynamic add "localhost:$NODE_2" "localhost:$BROKER_A" test-exchange
+ $PYTHON_DIR/commands/qpid-route dynamic add "localhost:$BROKER_A" "localhost:$NODE_2" test-exchange
#create test queue on cluster and bind it to the test exchange
$PYTHON_DIR/commands/qpid-config -a "localhost:$NODE_1" add queue test-queue
@@ -71,7 +77,7 @@ setup() {
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_A" bind test-exchange test-queue from-cluster
}
-run_test_pull_to_cluster() {
+run_test_pull_to_cluster_two_consumers() {
#start consumers on each of the two nodes of the cluster
./receiver --port $NODE_1 --queue test-queue --credit-window 1 > fed1.out.tmp &
./receiver --port $NODE_2 --queue test-queue --credit-window 1 > fed2.out.tmp &
@@ -88,6 +94,20 @@ run_test_pull_to_cluster() {
rm -f fed*.tmp #cleanup
}
+run_test_pull_to_cluster() {
+ #send stream of messages to test exchange on single broker
+ for i in `seq 1 1000`; do echo Message $i >> fed.in.tmp; done
+ ./sender --port $BROKER_A --exchange test-exchange --routing-key to-cluster --send-eos 1 < fed.in.tmp
+
+ #consume from remaining node of the cluster
+ ./receiver --port $NODE_2 --queue test-queue > fed.out.tmp
+
+ #verify all messages are received
+ diff fed.in.tmp fed.out.tmp || fail "federated link to cluster failed: expectations not met!"
+
+ rm -f fed*.tmp #cleanup
+}
+
run_test_pull_from_cluster() {
#start consumer on single broker
./receiver --port $BROKER_A --queue test-queue --credit-window 1 > fed.out.tmp &
@@ -124,8 +144,19 @@ EOF
echo "brokers started"
setup
echo "setup completed"
- run_test_pull_to_cluster
+ run_test_pull_to_cluster_two_consumers
echo "federated link to cluster verified"
run_test_pull_from_cluster
echo "federated link from cluster verified"
+ if [[ $TEST_NODE_FAILURE ]] ; then
+ #kill first cluster node and retest
+ kill -9 $(../qpidd --check --port $NODE_1) && unset NODE_1
+ echo "killed first cluster node; waiting for links to re-establish themselves..."
+ sleep 5
+ echo "retesting..."
+ run_test_pull_to_cluster
+ echo "federated link to cluster verified"
+ run_test_pull_from_cluster
+ echo "federated link from cluster verified"
+ fi
fi
diff --git a/qpid/cpp/src/tests/federated_cluster_test_with_node_failure b/qpid/cpp/src/tests/federated_cluster_test_with_node_failure
new file mode 100755
index 0000000000..f144a676de
--- /dev/null
+++ b/qpid/cpp/src/tests/federated_cluster_test_with_node_failure
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+#
+# 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.
+#
+
+srcdir=`dirname $0`
+TEST_NODE_FAILURE=1 $srcdir/federated_cluster_test
diff --git a/qpid/cpp/src/tests/header_test.vcproj b/qpid/cpp/src/tests/header_test.vcproj
index 9a1da958cc..da761a6edb 100644
--- a/qpid/cpp/src/tests/header_test.vcproj
+++ b/qpid/cpp/src/tests/header_test.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="header_test"
- ProjectGUID="{1B23F05D-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="header_test"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\header_test\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\header_test\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\header_test.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\header_test\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\header_test\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\header_test.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\header_test\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\header_test\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\header_test.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\header_test\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\header_test\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\header_test.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/latencytest.vcproj b/qpid/cpp/src/tests/latencytest.vcproj
index eb9741a1e1..758302029a 100644
--- a/qpid/cpp/src/tests/latencytest.vcproj
+++ b/qpid/cpp/src/tests/latencytest.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="latencytest"
- ProjectGUID="{4A809018-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{4A809018-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="latencytest"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\latencytest\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\latencytest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\latencytest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\latencytest\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\latencytest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\latencytest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\latencytest\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\latencytest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\latencytest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\latencytest\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\latencytest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\latencytest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/logging.cpp b/qpid/cpp/src/tests/logging.cpp
index 051722e7c8..00e1d7de85 100644
--- a/qpid/cpp/src/tests/logging.cpp
+++ b/qpid/cpp/src/tests/logging.cpp
@@ -23,6 +23,7 @@
#include "qpid/memory.h"
#include "qpid/Options.h"
#if defined (_WIN32)
+# include "qpid/log/windows/SinkOptions.h"
#else
# include "qpid/log/posix/SinkOptions.h"
#endif
@@ -172,7 +173,7 @@ QPID_AUTO_TEST_CASE(testLoggerFormat) {
l.format(Logger::FUNCTION);
QPID_LOG(critical, "foo");
- BOOST_CHECK_REGEX("void .*testLoggerFormat.*\\(\\): foo\n", out->last());
+ BOOST_CHECK_EQUAL(string(BOOST_CURRENT_FUNCTION) + ": foo\n", out->last());
l.format(Logger::LEVEL);
QPID_LOG(critical, "foo");
@@ -270,7 +271,11 @@ QPID_AUTO_TEST_CASE(testOptionsParse) {
"--log-function", "YES"
};
qpid::log::Options opts("");
+#ifdef _WIN32
+ qpid::log::windows::SinkOptions sinks("test");
+#else
qpid::log::posix::SinkOptions sinks("test");
+#endif
opts.parse(ARGC(argv), const_cast<char**>(argv));
sinks = *opts.sinkOptions;
vector<string> expect=list_of("error+:foo")("debug:bar")("info");
@@ -286,7 +291,11 @@ QPID_AUTO_TEST_CASE(testOptionsParse) {
QPID_AUTO_TEST_CASE(testOptionsDefault) {
Options opts("");
+#ifdef _WIN32
+ qpid::log::windows::SinkOptions sinks("test");
+#else
qpid::log::posix::SinkOptions sinks("test");
+#endif
sinks = *opts.sinkOptions;
BOOST_CHECK(sinks.logToStderr);
BOOST_CHECK(!sinks.logToStdout);
@@ -345,8 +354,13 @@ QPID_AUTO_TEST_CASE(testQuoteNonPrintable) {
ScopedSuppressLogging ls(l);
Options opts("test");
opts.time=false;
+#ifdef _WIN32
+ qpid::log::windows::SinkOptions *sinks =
+ dynamic_cast<qpid::log::windows::SinkOptions *>(opts.sinkOptions.get());
+#else
qpid::log::posix::SinkOptions *sinks =
dynamic_cast<qpid::log::posix::SinkOptions *>(opts.sinkOptions.get());
+#endif
sinks->logToStderr = false;
sinks->logFile = "logging.tmp";
l.configure(opts);
diff --git a/qpid/cpp/src/tests/perftest.cpp b/qpid/cpp/src/tests/perftest.cpp
index 6456bc8304..18491d72a0 100644
--- a/qpid/cpp/src/tests/perftest.cpp
+++ b/qpid/cpp/src/tests/perftest.cpp
@@ -38,7 +38,6 @@
#include <sstream>
#include <numeric>
#include <algorithm>
-#include <unistd.h>
#include <math.h>
@@ -238,8 +237,10 @@ struct Client : public Runnable {
~Client() {
try {
- session.close();
- connection->close();
+ if (connection->isOpen()) {
+ session.close();
+ connection->close();
+ }
} catch (const std::exception& e) {
std::cerr << "Error in shutdown: " << e.what() << std::endl;
}
@@ -523,7 +524,8 @@ struct PublishThread : public Client {
sync(session).txCommit();
}
}
- if (opts.intervalPub) ::usleep(opts.intervalPub*1000);
+ if (opts.intervalPub)
+ qpid::sys::usleep(opts.intervalPub*1000);
}
if (opts.confirm) session.sync();
AbsTime end=now();
@@ -613,7 +615,8 @@ struct SubscribeThread : public Client {
if (opts.commitAsync) session.txCommit();
else sync(session).txCommit();
}
- if (opts.intervalSub) ::usleep(opts.intervalSub*1000);
+ if (opts.intervalSub)
+ qpid::sys::usleep(opts.intervalSub*1000);
// TODO aconway 2007-11-23: check message order for.
// multiple publishers. Need an array of counters,
// one per publisher and a publisher ID in the
diff --git a/qpid/cpp/src/tests/perftest.vcproj b/qpid/cpp/src/tests/perftest.vcproj
index c9132bac03..3a2397ac9b 100644
--- a/qpid/cpp/src/tests/perftest.vcproj
+++ b/qpid/cpp/src/tests/perftest.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="perftest"
- ProjectGUID="{1F2066BE-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="perftest"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\perftest\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\perftest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\perftest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\perftest\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\perftest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\perftest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\perftest\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\perftest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\perftest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\perftest\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\perftest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\perftest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/publish.vcproj b/qpid/cpp/src/tests/publish.vcproj
index a205337ecd..7422606a32 100644
--- a/qpid/cpp/src/tests/publish.vcproj
+++ b/qpid/cpp/src/tests/publish.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="publish"
- ProjectGUID="{AE773E7F-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="publish"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\publish\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\publish\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\publish.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\publish\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\publish\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\publish.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\publish\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\publish\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\publish.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\publish\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\publish\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\publish.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/receiver.cpp b/qpid/cpp/src/tests/receiver.cpp
index 1ecaece51e..49f7ff0338 100644
--- a/qpid/cpp/src/tests/receiver.cpp
+++ b/qpid/cpp/src/tests/receiver.cpp
@@ -23,7 +23,7 @@
#include <qpid/client/Session.h>
#include <qpid/client/Message.h>
#include <qpid/client/SubscriptionManager.h>
-#include <qpid/client/SubscriptionManager.h>
+#include <qpid/client/SubscriptionSettings.h>
#include "TestOptions.h"
#include <iostream>
@@ -43,15 +43,17 @@ struct Args : public qpid::TestOptions
bool ignoreDuplicates;
uint creditWindow;
uint ackFrequency;
+ bool browse;
- Args() : queue("test-queue"), messages(0), ignoreDuplicates(false), creditWindow(0), ackFrequency(1)
+ Args() : queue("test-queue"), messages(0), ignoreDuplicates(false), creditWindow(0), ackFrequency(1), browse(false)
{
addOptions()
("queue", qpid::optValue(queue, "QUEUE NAME"), "Queue from which to request messages")
("messages", qpid::optValue(messages, "N"), "Number of messages to receive; 0 means receive indefinitely")
("ignore-duplicates", qpid::optValue(ignoreDuplicates), "Detect and ignore duplicates (by checking 'sn' header)")
("credit-window", qpid::optValue(creditWindow, "N"), "Credit window (0 implies infinite window)")
- ("ack-frequency", qpid::optValue(ackFrequency, "N"), "Ack frequency (0 implies none of the messages will get accepted)");
+ ("ack-frequency", qpid::optValue(ackFrequency, "N"), "Ack frequency (0 implies none of the messages will get accepted)")
+ ("browse", qpid::optValue(browse), "Browse rather than consuming");
}
};
@@ -60,7 +62,7 @@ const string EOS("eos");
class Receiver : public MessageListener, public FailoverManager::Command
{
public:
- Receiver(const string& queue, uint messages, bool ignoreDuplicates, uint creditWindow, uint ackFrequency);
+ Receiver(const string& queue, uint messages, bool ignoreDuplicates, uint creditWindow, uint ackFrequency, bool browse);
void received(Message& message);
void execute(AsyncSession& session, bool isRetry);
private:
@@ -75,9 +77,10 @@ class Receiver : public MessageListener, public FailoverManager::Command
bool isDuplicate(Message& message);
};
-Receiver::Receiver(const string& q, uint messages, bool ignoreDuplicates, uint creditWindow, uint ackFrequency) :
+Receiver::Receiver(const string& q, uint messages, bool ignoreDuplicates, uint creditWindow, uint ackFrequency, bool browse) :
queue(q), count(messages), skipDups(ignoreDuplicates), processed(0), lastSn(0)
{
+ if (browse) settings.acquireMode = ACQUIRE_MODE_NOT_ACQUIRED;
if (creditWindow) settings.flowControl = FlowControl::messageWindow(creditWindow);
settings.autoAck = ackFrequency;
}
@@ -107,6 +110,9 @@ void Receiver::execute(AsyncSession& session, bool /*isRetry*/)
SubscriptionManager subs(session);
subscription = subs.subscribe(*this, queue, settings);
subs.run();
+ if (settings.autoAck) {
+ subscription.accept(subscription.getUnaccepted());
+ }
}
int main(int argc, char ** argv)
@@ -115,7 +121,7 @@ int main(int argc, char ** argv)
try {
opts.parse(argc, argv);
FailoverManager connection(opts.con);
- Receiver receiver(opts.queue, opts.messages, opts.ignoreDuplicates, opts.creditWindow, opts.ackFrequency);
+ Receiver receiver(opts.queue, opts.messages, opts.ignoreDuplicates, opts.creditWindow, opts.ackFrequency, opts.browse);
connection.execute(receiver);
connection.close();
return 0;
diff --git a/qpid/cpp/src/tests/receiver.vcproj b/qpid/cpp/src/tests/receiver.vcproj
index 824b75d7d9..ce6fad366e 100644
--- a/qpid/cpp/src/tests/receiver.vcproj
+++ b/qpid/cpp/src/tests/receiver.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="receiver"
- ProjectGUID="{7D314A98-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{7D314A98-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="receiver"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\receiver\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\receiver\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\receiver.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\receiver\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\receiver\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\receiver.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\receiver\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\receiver\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\receiver.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\receiver\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\receiver\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\receiver.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/replaying_sender.cpp b/qpid/cpp/src/tests/replaying_sender.cpp
index 7e148e277f..ea2a13bd54 100644
--- a/qpid/cpp/src/tests/replaying_sender.cpp
+++ b/qpid/cpp/src/tests/replaying_sender.cpp
@@ -60,6 +60,8 @@ Sender::Sender(const std::string& queue, uint count_, uint reportFreq ) : sender
void Sender::execute(AsyncSession& session, bool isRetry)
{
+ if (verbosity > 0)
+ std::cout << "replaying_sender " << (isRetry ? "first " : "re-") << "connect." << endl;
if (isRetry) sender.replay(session);
else sender.init(session);
while (sent < count) {
@@ -70,7 +72,7 @@ void Sender::execute(AsyncSession& session, bool isRetry)
sender.send(message);
if (count > reportFrequency && !(sent % reportFrequency)) {
if ( verbosity > 0 )
- std::cout << "sent " << sent << " of " << count << std::endl;
+ std::cout << "Sender sent " << sent << " of " << count << std::endl;
}
}
message.setData("That's all, folks!");
diff --git a/qpid/cpp/src/tests/replication_test b/qpid/cpp/src/tests/replication_test
index 9b6e5cfb29..6e0c1c8d3b 100755
--- a/qpid/cpp/src/tests/replication_test
+++ b/qpid/cpp/src/tests/replication_test
@@ -22,21 +22,20 @@
# Run a test of the replication feature
MY_DIR=`dirname \`which $0\``
PYTHON_DIR=${MY_DIR}/../../../python
-
trap stop_brokers INT TERM QUIT
stop_brokers() {
- if [[ $BROKER_A ]] ; then
+ if [ x$BROKER_A != x ]; then
../qpidd -q --port $BROKER_A
unset BROKER_A
fi
- if [[ $BROKER_B ]] ; then
+ if [ x$BROKER_B != x ]; then
../qpidd -q --port $BROKER_B
unset BROKER_B
fi
}
-if test -d ${PYTHON_DIR} && test -e ../.libs/replicating_listener.so && test -e ../.libs/replication_exchange.so ; then
+if test -d ${PYTHON_DIR} && test -f ../.libs/replicating_listener.so && test -f ../.libs/replication_exchange.so; then
rm -f queue-*.repl replication-*.log #cleanup from any earlier runs
../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replicating_listener.so --replication-queue replication --create-replication-queue true --log-enable info+ --log-to-file replication-source.log --log-to-stderr 0 > qpidd.port
@@ -44,7 +43,8 @@ if test -d ${PYTHON_DIR} && test -e ../.libs/replicating_listener.so && test -e
../qpidd --daemon --port 0 --no-data-dir --no-module-dir --auth no --load-module ../.libs/replication_exchange.so --log-enable info+ --log-to-file replication-dest.log --log-to-stderr 0 > qpidd.port
BROKER_B=`cat qpidd.port`
- export PYTHONPATH=$PYTHON_DIR
+ PYTHONPATH=$PYTHON_DIR
+ export PYTHONPATH
echo "Running replication test between localhost:$BROKER_A and localhost:$BROKER_B"
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_B" add exchange replication replication
@@ -55,23 +55,39 @@ if test -d ${PYTHON_DIR} && test -e ../.libs/replicating_listener.so && test -e
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_A" add queue queue-a --generate-queue-events 2
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_A" add queue queue-b --generate-queue-events 2
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_A" add queue queue-c --generate-queue-events 1
+ $PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_A" add queue queue-d --generate-queue-events 2
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_B" add queue queue-a
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_B" add queue queue-b
$PYTHON_DIR/commands/qpid-config -a "localhost:$BROKER_B" add queue queue-c
-
- #publish and consume from test queus on broker A:
- for i in `seq 1 10`; do echo Message $i for A >> queue-a-input.repl; done
- for i in `seq 1 20`; do echo Message $i for B >> queue-b-input.repl; done
- for i in `seq 1 15`; do echo Message $i for C >> queue-c-input.repl; done
+ #queue-d deliberately not declared on DR; this error case should be handled
+
+ #publish and consume from test queues on broker A:
+ i=1
+ while [ $i -le 10 ]; do
+ echo Message $i for A >> queue-a-input.repl
+ i=`expr $i + 1`
+ done
+ i=1
+ while [ $i -le 20 ]; do
+ echo Message $i for B >> queue-b-input.repl
+ i=`expr $i + 1`
+ done
+ i=1
+ while [ $i -le 15 ]; do
+ echo Message $i for C >> queue-c-input.repl
+ i=`expr $i + 1`
+ done
./sender --port $BROKER_A --routing-key queue-a --send-eos 1 < queue-a-input.repl
./sender --port $BROKER_A --routing-key queue-b --send-eos 1 < queue-b-input.repl
./sender --port $BROKER_A --routing-key queue-c --send-eos 1 < queue-c-input.repl
+ echo dummy | ./sender --port $BROKER_A --routing-key queue-d --send-eos 1
./receiver --port $BROKER_A --queue queue-a --messages 5 > /dev/null
./receiver --port $BROKER_A --queue queue-b --messages 10 > /dev/null
./receiver --port $BROKER_A --queue queue-c --messages 10 > /dev/null
+ ./receiver --port $BROKER_A --queue queue-d > /dev/null
#shutdown broker A then check that broker Bs versions of the queues are as expected
../qpidd -q --port $BROKER_A
@@ -90,7 +106,9 @@ if test -d ${PYTHON_DIR} && test -e ../.libs/replicating_listener.so && test -e
diff queue-b-backup.repl queue-b-expected.repl || FAIL=1
diff queue-c-backup.repl queue-c-input.repl || FAIL=1
- if [[ $FAIL ]]; then
+ grep 'queue-d does not exist' replication-dest.log > /dev/null || echo "WARNING: Expected error to be logged!"
+
+ if [ x$FAIL != x ]; then
echo replication test failed: expectations not met!
exit 1
else
diff --git a/qpid/cpp/src/tests/resuming_receiver.cpp b/qpid/cpp/src/tests/resuming_receiver.cpp
index f49a115e1e..ef559a009d 100644
--- a/qpid/cpp/src/tests/resuming_receiver.cpp
+++ b/qpid/cpp/src/tests/resuming_receiver.cpp
@@ -53,6 +53,7 @@ class Listener : public MessageListener,
bool gaps;
uint reportFrequency;
int verbosity;
+ bool done;
};
@@ -62,7 +63,8 @@ Listener::Listener(int freq, int verbosity)
lastSn(0),
gaps(false),
reportFrequency(freq),
- verbosity(verbosity)
+ verbosity(verbosity),
+ done(false)
{}
@@ -70,6 +72,7 @@ void Listener::received(Message & message)
{
if (message.getData() == "That's all, folks!")
{
+ done = true;
if(verbosity > 0 )
{
std::cout << "Shutting down listener for "
@@ -111,14 +114,14 @@ void Listener::check()
if (gaps) throw Exception("Detected gaps in sequence; messages appear to have been lost.");
}
-void Listener::execute(AsyncSession& session, bool isRetry)
-{
- if (isRetry) {
- // std::cout << "Resuming from " << count << std::endl;
+void Listener::execute(AsyncSession& session, bool isRetry) {
+ if (verbosity > 0)
+ std::cout << "resuming_receiver " << (isRetry ? "first " : "re-") << "connect." << endl;
+ if (!done) {
+ SubscriptionManager subs(session);
+ subscription = subs.subscribe(*this, "message_queue");
+ subs.run();
}
- SubscriptionManager subs(session);
- subscription = subs.subscribe(*this, "message_queue");
- subs.run();
}
void Listener::editUrlList(std::vector<Url>& urls)
diff --git a/qpid/cpp/src/tests/run_failover_soak b/qpid/cpp/src/tests/run_failover_soak
index 9dddf59cf1..36dfed79a6 100755
--- a/qpid/cpp/src/tests/run_failover_soak
+++ b/qpid/cpp/src/tests/run_failover_soak
@@ -22,8 +22,8 @@
# Check AIS requirements and run tests if found.
id -ng | grep '\<ais\>' >/dev/null || \
NOGROUP="The ais group is not your primary group."
-ps -u root | grep aisexec >/dev/null || \
- NOAISEXEC="The aisexec daemon is not running as root"
+ps -u root | grep 'aisexec\|corosync' >/dev/null || \
+ NOAISEXEC="The aisexec/corosync daemon is not running as root"
if test -n "$NOGROUP" -o -n "$NOAISEXEC"; then
cat <<EOF
@@ -47,10 +47,10 @@ host=127.0.0.1
src_root=..
module_dir=$src_root/.libs
-n_messages=300000
-report_frequency=10000
-verbosity=1
+MESSAGES=${MESSAGES:-300000}
+REPORT_FREQUENCY=${REPORT_FREQUENCY:-`expr $MESSAGES / 20`}
+VERBOSITY=${VERBOSITY:-1}
-exec `dirname $0`/failover_soak $src_root $module_dir $host ./declare_queues ./replaying_sender ./resuming_receiver $n_messages $report_frequency $verbosity
+exec ./failover_soak $src_root $module_dir $host ./declare_queues ./replaying_sender ./resuming_receiver $MESSAGES $REPORT_FREQUENCY $VERBOSITY
diff --git a/qpid/cpp/src/tests/run_header_test b/qpid/cpp/src/tests/run_header_test
index 39d4a24f84..414fecd28f 100755
--- a/qpid/cpp/src/tests/run_header_test
+++ b/qpid/cpp/src/tests/run_header_test
@@ -29,7 +29,8 @@ test -f qpidd.port && QPID_PORT=`cat qpidd.port`
if test -d ${PYTHON_DIR} ; then
./header_test -p $QPID_PORT
- export PYTHONPATH=$PYTHON_DIR:$PYTHONPATH
+ PYTHONPATH=$PYTHON_DIR:$PYTHONPATH
+ export PYTHONPATH
$srcdir/header_test.py "localhost" $QPID_PORT
else
echo "Skipping header test as python libs not found"
diff --git a/qpid/cpp/src/tests/sender.cpp b/qpid/cpp/src/tests/sender.cpp
index 48062315fe..9d9e5be99d 100644
--- a/qpid/cpp/src/tests/sender.cpp
+++ b/qpid/cpp/src/tests/sender.cpp
@@ -24,6 +24,7 @@
#include <qpid/client/AsyncSession.h>
#include <qpid/client/Message.h>
#include <qpid/client/MessageReplayTracker.h>
+#include <qpid/client/QueueOptions.h>
#include <qpid/Exception.h>
#include "TestOptions.h"
@@ -40,13 +41,17 @@ struct Args : public qpid::TestOptions
string destination;
string key;
uint sendEos;
+ bool durable;
+ string lvqMatchValue;
- Args() : key("test-queue"), sendEos(0)
+ Args() : key("test-queue"), sendEos(0), durable(false)
{
- addOptions()
+ addOptions()
("exchange", qpid::optValue(destination, "EXCHANGE"), "Exchange to send messages to")
("routing-key", qpid::optValue(key, "KEY"), "Routing key to add to messages")
- ("send-eos", qpid::optValue(sendEos, "N"), "Send N EOS messages to mark end of input");
+ ("send-eos", qpid::optValue(sendEos, "N"), "Send N EOS messages to mark end of input")
+ ("durable", qpid::optValue(durable, "true|false"), "Mark messages as durable.")
+ ("lvq-match-value", qpid::optValue(lvqMatchValue, "KEY"), "The value to set for the LVQ match key property");
}
};
@@ -55,7 +60,7 @@ const string EOS("eos");
class Sender : public FailoverManager::Command
{
public:
- Sender(const std::string& destination, const std::string& key, uint sendEos);
+ Sender(const std::string& destination, const std::string& key, uint sendEos, bool durable, const std::string& lvqMatchValue);
void execute(AsyncSession& session, bool isRetry);
private:
const std::string destination;
@@ -65,8 +70,17 @@ class Sender : public FailoverManager::Command
uint sent;
};
-Sender::Sender(const std::string& dest, const std::string& key, uint eos) :
- destination(dest), sender(10), message("", key), sendEos(eos), sent(0) {}
+Sender::Sender(const std::string& dest, const std::string& key, uint eos, bool durable, const std::string& lvqMatchValue) :
+ destination(dest), sender(10), message("", key), sendEos(eos), sent(0)
+{
+ if (durable){
+ message.getDeliveryProperties().setDeliveryMode(framing::PERSISTENT);
+ }
+
+ if (!lvqMatchValue.empty()) {
+ message.getHeaders().setString(QueueOptions::strLVQMatchProperty, lvqMatchValue);
+ }
+}
void Sender::execute(AsyncSession& session, bool isRetry)
{
@@ -90,7 +104,7 @@ int main(int argc, char ** argv)
try {
opts.parse(argc, argv);
FailoverManager connection(opts.con);
- Sender sender(opts.destination, opts.key, opts.sendEos);
+ Sender sender(opts.destination, opts.key, opts.sendEos, opts.durable, opts.lvqMatchValue);
connection.execute(sender);
connection.close();
return 0;
diff --git a/qpid/cpp/src/tests/sender.vcproj b/qpid/cpp/src/tests/sender.vcproj
index 7ae9081332..616b665406 100644
--- a/qpid/cpp/src/tests/sender.vcproj
+++ b/qpid/cpp/src/tests/sender.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="sender"
- ProjectGUID="{09714CB8-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{09714CB8-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="sender"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\sender\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\sender\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\sender.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\sender\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\sender\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\sender.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\sender\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\sender\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\sender.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\sender\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\sender\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\sender.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/shlibtest.vcproj b/qpid/cpp/src/tests/shlibtest.vcproj
index b30ce30b3a..4a139a2cb5 100644
--- a/qpid/cpp/src/tests/shlibtest.vcproj
+++ b/qpid/cpp/src/tests/shlibtest.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="shlibtest"
- ProjectGUID="{37AB26B9-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="shlibtest"
Keyword="Win32Proj"
SignManifests="true"
@@ -22,8 +22,8 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="."
- IntermediateDirectory="Static_Debug\shlibtest\I386"
- ConfigurationType="4"
+ IntermediateDirectory="Debug\shlibtest\I386"
+ ConfigurationType="2"
CharacterSet="0"
>
@@ -52,10 +52,10 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\."
- PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS"
+ PreprocessorDefinitions="SHLIBTEST_BUILD_DLL;_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -74,8 +74,16 @@
Name="VCPreLinkEventTool"
/>
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\shlibtestsd.lib"
+ Name="VCLinkerTool"
+ AdditionalDependencies=""
+ OutputFile="$(OutDir)\shlibtestd.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories=".;$(BOOST_ROOT)\lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ ImportLibrary=".\shlibtestd.lib"
+ TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
@@ -96,8 +104,8 @@
<Configuration
Name="Release|Win32"
OutputDirectory="."
- IntermediateDirectory="Static_Release\shlibtest\I386"
- ConfigurationType="4"
+ IntermediateDirectory="Release\shlibtest\I386"
+ ConfigurationType="2"
CharacterSet="0"
>
@@ -126,8 +134,8 @@
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\."
- PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS"
- RuntimeLibrary="0"
+ PreprocessorDefinitions="SHLIBTEST_BUILD_DLL;NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -145,8 +153,18 @@
Name="VCPreLinkEventTool"
/>
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\shlibtests.lib"
+ Name="VCLinkerTool"
+ AdditionalDependencies=""
+ OutputFile="$(OutDir)\shlibtest.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories=".;$(BOOST_ROOT)\lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ ImportLibrary=".\shlibtest.lib"
+ TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
@@ -167,8 +185,8 @@
<Configuration
Name="Debug|x64"
OutputDirectory="."
- IntermediateDirectory="Static_Debug\shlibtest\AMD64"
- ConfigurationType="4"
+ IntermediateDirectory="Debug\shlibtest\AMD64"
+ ConfigurationType="2"
CharacterSet="0"
>
@@ -197,10 +215,10 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\."
- PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64"
+ PreprocessorDefinitions="SHLIBTEST_BUILD_DLL;_DEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -219,8 +237,17 @@
Name="VCPreLinkEventTool"
/>
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\shlibtestsd.lib"
+ Name="VCLinkerTool"
+ AdditionalOptions="/machine:AMD64"
+ AdditionalDependencies=""
+ OutputFile="$(OutDir)\shlibtestd.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories=".;$(BOOST_ROOT)\lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ ImportLibrary=".\shlibtestd.lib"
+ TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
@@ -241,8 +268,8 @@
<Configuration
Name="Release|x64"
OutputDirectory="."
- IntermediateDirectory="Static_Release\shlibtest\AMD64"
- ConfigurationType="4"
+ IntermediateDirectory="Release\shlibtest\AMD64"
+ ConfigurationType="2"
CharacterSet="0"
>
@@ -271,8 +298,8 @@
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\."
- PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64"
- RuntimeLibrary="0"
+ PreprocessorDefinitions="SHLIBTEST_BUILD_DLL;NDEBUG;WIN32;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -290,8 +317,19 @@
Name="VCPreLinkEventTool"
/>
<Tool
- Name="VCLibrarianTool"
- OutputFile=".\shlibtests.lib"
+ Name="VCLinkerTool"
+ AdditionalOptions="/machine:AMD64"
+ AdditionalDependencies=""
+ OutputFile="$(OutDir)\shlibtest.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories=".;$(BOOST_ROOT)\lib"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ ImportLibrary=".\shlibtest.lib"
+ TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
@@ -336,6 +374,9 @@
RelativePath="BrokerFixture.h">
</File>
<File
+ RelativePath="ClusterFixture.h">
+ </File>
+ <File
RelativePath="ConnectionOptions.h">
</File>
<File
diff --git a/qpid/cpp/src/tests/ssl_test b/qpid/cpp/src/tests/ssl_test
index c7b59b62ef..13965f3a03 100755
--- a/qpid/cpp/src/tests/ssl_test
+++ b/qpid/cpp/src/tests/ssl_test
@@ -39,8 +39,7 @@ create_certs() {
}
start_broker() {
- ../qpidd --daemon --transport ssl --port 0 --ssl-port 0 --no-data-dir --no-module-dir --auth no --config $CONFIG --load-module ../.libs/ssl.so --ssl-cert-db $CERT_DIR --ssl-cert-password-file $CERT_PW_FILE > qpidd.port
- PORT=`cat qpidd.port`
+ PORT=`../qpidd --daemon --transport ssl --port 0 --ssl-port 0 --no-data-dir --no-module-dir --auth no --config $CONFIG --load-module ../.libs/ssl.so --ssl-cert-db $CERT_DIR --ssl-cert-password-file $CERT_PW_FILE`
}
stop_broker() {
diff --git a/qpid/cpp/src/tests/start_cluster b/qpid/cpp/src/tests/start_cluster
index 4f0516500c..053b23da33 100755
--- a/qpid/cpp/src/tests/start_cluster
+++ b/qpid/cpp/src/tests/start_cluster
@@ -28,11 +28,10 @@ with_ais_group() {
echo $* | newgrp ais
}
-test -f cluster.ports && { echo "cluster.ports file already exists" ; exit 1; }
rm -f cluster*.log
SIZE=${1:-1}; shift
CLUSTER=`pwd` # Cluster name=pwd, avoid clashes.
-OPTS="-d --no-module-dir --load-module ../.libs/cluster.so --cluster-name=$CLUSTER --no-data-dir --auth=no $*"
+OPTS="-d --no-module-dir --load-module ../.libs/cluster.so --cluster-name=$CLUSTER --no-data-dir --auth=no $@"
for (( i=0; i<SIZE; ++i )); do
PORT=`with_ais_group ../qpidd -p0 --log-to-file=cluster$i.log $OPTS` || exit 1
diff --git a/qpid/cpp/src/tests/tests.sln b/qpid/cpp/src/tests/tests.sln
index cee1a45292..273e90d1c8 100644
--- a/qpid/cpp/src/tests/tests.sln
+++ b/qpid/cpp/src/tests/tests.sln
@@ -7,38 +7,38 @@ Microsoft Visual Studio Solution File, Format Version 10.00
# this file will be lost the next time it is generated.
#
# MPC Command:
-# C:\ace\MPC\mwc.pl -type vc9 -features boost=1 -static tests.mwc
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client_test", "client_test.vcproj", "{9A95F0E4-FECA-1BAD-2235-047BCDC7409E}"
+# C:\ace\MPC\mwc.pl -type vc9 -features boost=1 tests.mwc
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client_test", "client_test.vcproj", "{9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "consume", "consume.vcproj", "{7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "consume", "consume.vcproj", "{7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echotest", "echotest.vcproj", "{0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echotest", "echotest.vcproj", "{0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "header_test", "header_test.vcproj", "{1B23F05D-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "header_test", "header_test.vcproj", "{1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "latencytest", "latencytest.vcproj", "{4A809018-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "latencytest", "latencytest.vcproj", "{4A809018-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perftest", "perftest.vcproj", "{1F2066BE-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perftest", "perftest.vcproj", "{1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "publish", "publish.vcproj", "{AE773E7F-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "publish", "publish.vcproj", "{AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "receiver", "receiver.vcproj", "{7D314A98-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "receiver", "receiver.vcproj", "{7D314A98-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sender", "sender.vcproj", "{09714CB8-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sender", "sender.vcproj", "{09714CB8-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shlibtest", "shlibtest.vcproj", "{37AB26B9-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shlibtest", "shlibtest.vcproj", "{37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "topic_listener", "topic_listener.vcproj", "{9392D1EE-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "topic_listener", "topic_listener.vcproj", "{9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "topic_publisher", "topic_publisher.vcproj", "{7D66FE10-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "topic_publisher", "topic_publisher.vcproj", "{7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txjob", "txjob.vcproj", "{09034A53-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txjob", "txjob.vcproj", "{09034A53-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txshift", "txshift.vcproj", "{6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txshift", "txshift.vcproj", "{6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txtest", "txtest.vcproj", "{697786BE-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txtest", "txtest.vcproj", "{697786BE-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit_test", "unit_test.vcproj", "{51E5F6B9-FECA-1BAD-2235-047BCDC7409E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit_test", "unit_test.vcproj", "{51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -48,134 +48,134 @@ Global
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {9A95F0E4-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {7F5DE0A1-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {0A5AF6BE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {1B23F05D-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {4A809018-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {1F2066BE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {AE773E7F-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {7D314A98-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {09714CB8-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {37AB26B9-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {9392D1EE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {7D66FE10-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {09034A53-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {697786BE-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.ActiveCfg = Debug|Win32
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Debug|Win32.Build.0 = Debug|Win32
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.ActiveCfg = Debug|x64
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Debug|x64.Build.0 = Debug|x64
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.ActiveCfg = Release|Win32
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Release|Win32.Build.0 = Release|Win32
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Release|x64.ActiveCfg = Release|x64
- {51E5F6B9-FECA-1BAD-2235-047BCDC7409E}.Release|x64.Build.0 = Release|x64
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {9A95F0E4-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {7F5DE0A1-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {0A5AF6BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {1B23F05D-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {4A809018-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {1F2066BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {AE773E7F-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {7D314A98-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {09714CB8-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {37AB26B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {09034A53-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {697786BE-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|Win32.Build.0 = Debug|Win32
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.ActiveCfg = Debug|x64
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Debug|x64.Build.0 = Debug|x64
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.ActiveCfg = Release|Win32
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|Win32.Build.0 = Release|Win32
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.ActiveCfg = Release|x64
+ {51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/qpid/cpp/src/tests/topic_listener.cpp b/qpid/cpp/src/tests/topic_listener.cpp
index 7bdc2c32de..1f0b3f5377 100644
--- a/qpid/cpp/src/tests/topic_listener.cpp
+++ b/qpid/cpp/src/tests/topic_listener.cpp
@@ -37,6 +37,7 @@
#include "qpid/client/MessageListener.h"
#include "qpid/client/Session.h"
#include "qpid/client/SubscriptionManager.h"
+#include "qpid/sys/SystemInfo.h"
#include "qpid/sys/Time.h"
#include "qpid/framing/FieldValue.h"
#include <iostream>
@@ -132,7 +133,7 @@ int main(int argc, char** argv){
if( args.statusqueue.length() > 0 ) {
stringstream msg_str;
- msg_str << "topic_listener: " << (int)getpid();
+ msg_str << "topic_listener: " << qpid::sys::SystemInfo::getProcessId();
session.messageTransfer(arg::content=Message(msg_str.str(), args.statusqueue));
cout << "Ready status put on queue '" << args.statusqueue << "'" << endl;
}
diff --git a/qpid/cpp/src/tests/topic_listener.vcproj b/qpid/cpp/src/tests/topic_listener.vcproj
index eedfe14687..0be31b8348 100644
--- a/qpid/cpp/src/tests/topic_listener.vcproj
+++ b/qpid/cpp/src/tests/topic_listener.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="topic_listener"
- ProjectGUID="{9392D1EE-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{9392D1EE-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="topic_listener"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\topic_listener\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\topic_listener\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\topic_listener.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\topic_listener\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\topic_listener\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\topic_listener.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\topic_listener\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\topic_listener\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\topic_listener.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\topic_listener\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\topic_listener\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\topic_listener.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/topic_publisher.vcproj b/qpid/cpp/src/tests/topic_publisher.vcproj
index a059adb398..016c6d4a38 100644
--- a/qpid/cpp/src/tests/topic_publisher.vcproj
+++ b/qpid/cpp/src/tests/topic_publisher.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="topic_publisher"
- ProjectGUID="{7D66FE10-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{7D66FE10-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="topic_publisher"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\topic_publisher\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\topic_publisher\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\topic_publisher.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\topic_publisher\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\topic_publisher\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\topic_publisher.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\topic_publisher\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\topic_publisher\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\topic_publisher.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\topic_publisher\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\topic_publisher\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\topic_publisher.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/txjob.vcproj b/qpid/cpp/src/tests/txjob.vcproj
index 69bdff2e8d..19fe3fba12 100644
--- a/qpid/cpp/src/tests/txjob.vcproj
+++ b/qpid/cpp/src/tests/txjob.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="txjob"
- ProjectGUID="{09034A53-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{09034A53-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="txjob"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\txjob\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\txjob\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\txjob.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\txjob\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\txjob\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\txjob.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\txjob\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\txjob\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\txjob.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\txjob\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\txjob\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\txjob.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/txshift.cpp b/qpid/cpp/src/tests/txshift.cpp
index 5db08d7a53..dd67710526 100644
--- a/qpid/cpp/src/tests/txshift.cpp
+++ b/qpid/cpp/src/tests/txshift.cpp
@@ -155,6 +155,7 @@ struct Worker : FailoverManager::Command, Runnable
SubscriptionManager subs(session);
transfer.subscribeToControl(subs);
subs.run();
+ session.txCommit();//commit accept of control messages
}
};
@@ -173,8 +174,8 @@ int main(int argc, char** argv)
for (size_t i = 0; i < opts.workers; i++) {
workers.push_back(new Worker(connection, opts.workQueue));
}
- for_each(workers.begin(), workers.end(), boost::bind(&Worker::start, _1));
- for_each(workers.begin(), workers.end(), boost::bind(&Worker::join, _1));
+ std::for_each(workers.begin(), workers.end(), boost::bind(&Worker::start, _1));
+ std::for_each(workers.begin(), workers.end(), boost::bind(&Worker::join, _1));
}
return 0;
diff --git a/qpid/cpp/src/tests/txshift.vcproj b/qpid/cpp/src/tests/txshift.vcproj
index aa7d6ca303..3212881351 100644
--- a/qpid/cpp/src/tests/txshift.vcproj
+++ b/qpid/cpp/src/tests/txshift.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="txshift"
- ProjectGUID="{6E3B2A6B-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{6E3B2A6B-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="txshift"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\txshift\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\txshift\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\txshift.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\txshift\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\txshift\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\txshift.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\txshift\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\txshift\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\txshift.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\txshift\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\txshift\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\txshift.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/txtest.vcproj b/qpid/cpp/src/tests/txtest.vcproj
index a56e820dc0..663291a9d5 100644
--- a/qpid/cpp/src/tests/txtest.vcproj
+++ b/qpid/cpp/src/tests/txtest.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="txtest"
- ProjectGUID="{697786BE-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{697786BE-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="txtest"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\txtest\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\txtest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -55,7 +55,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\txtest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\txtest\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\txtest\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -135,7 +135,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\txtest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\txtest\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\txtest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -218,7 +218,7 @@
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib"
OutputFile="$(OutDir)\txtest.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\txtest\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\txtest\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -299,7 +299,7 @@
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib"
OutputFile="$(OutDir)\txtest.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
diff --git a/qpid/cpp/src/tests/unit_test.h b/qpid/cpp/src/tests/unit_test.h
index df3ebfb1fe..fc542e62ad 100644
--- a/qpid/cpp/src/tests/unit_test.h
+++ b/qpid/cpp/src/tests/unit_test.h
@@ -61,7 +61,14 @@
namespace { struct test_name { void test_method(); }; } \
void test_name::test_method()
-#endif // Workaround for BOOST_AUTO_TEST_SUITE_EXPECTED_FAILURES
+#endif // Workaround for BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES
+
+// Correct syntax for boost > 1.36
+#if (BOOST_VERSION > 103500)
+# define QPID_AUTO_TEST_CASE_EXPECTED_FAILURES(name,n) \
+ BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(name,n) \
+ BOOST_AUTO_TEST_CASE(name)
+#endif // Correct syntax for boost > 1.36
//
// Default definitions for latest version of boost.
diff --git a/qpid/cpp/src/tests/unit_test.vcproj b/qpid/cpp/src/tests/unit_test.vcproj
index ab6d13cd62..8710b617f8 100644
--- a/qpid/cpp/src/tests/unit_test.vcproj
+++ b/qpid/cpp/src/tests/unit_test.vcproj
@@ -3,7 +3,7 @@
ProjectType="Visual C++"
Version="9.00"
Name="unit_test"
- ProjectGUID="{51E5F6B9-FECA-1BAD-2235-047BCDC7409E}"
+ ProjectGUID="{51E5F6B9-FECA-1BAD-2431-8A11DB0D67CE}"
RootNamespace="unit_test"
Keyword="Win32Proj"
SignManifests="true"
@@ -21,8 +21,8 @@
<Configurations>
<Configuration
Name="Debug|Win32"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\unit_test\I386"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\unit_test\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -52,22 +52,22 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
- PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4800"
+ DisableSpecificWarnings="4244;4800;4290;4355"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="_DEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS"
Culture="1033"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
/>
@@ -76,7 +76,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib qpidbrokerd.lib qmfconsoled.lib"
OutputFile="$(OutDir)\unit_test.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -103,8 +103,8 @@
</Configuration>
<Configuration
Name="Release|Win32"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\unit_test\I386"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\unit_test\I386"
ConfigurationType="1"
CharacterSet="0"
@@ -134,19 +134,19 @@
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
- PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
- DisableSpecificWarnings="4244;4800"
+ DisableSpecificWarnings="4244;4800;4290;4355"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS"
Culture="1033"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
/>
@@ -155,7 +155,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib qpidbroker.lib qmfconsole.lib"
OutputFile="$(OutDir)\unit_test.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -184,8 +184,8 @@
</Configuration>
<Configuration
Name="Debug|x64"
- OutputDirectory="Static_Debug"
- IntermediateDirectory="Static_Debug\unit_test\AMD64"
+ OutputDirectory="."
+ IntermediateDirectory="Debug\unit_test\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -215,22 +215,22 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
- PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
+ PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS"
MinimalRebuild="false"
BasicRuntimeChecks="3"
- RuntimeLibrary="1"
+ RuntimeLibrary="3"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
- DisableSpecificWarnings="4244;4800"
+ DisableSpecificWarnings="4244;4800;4290;4355"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_WIN64"
+ PreprocessorDefinitions="_DEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WIN64"
Culture="1033"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
/>
@@ -240,7 +240,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommonsd.lib qpidclientsd.lib qmfconsolesd.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommond.lib qpidclientd.lib qpidbrokerd.lib qmfconsoled.lib"
OutputFile="$(OutDir)\unit_test.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -267,8 +267,8 @@
</Configuration>
<Configuration
Name="Release|x64"
- OutputDirectory="Static_Release"
- IntermediateDirectory="Static_Release\unit_test\AMD64"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release\unit_test\AMD64"
ConfigurationType="1"
CharacterSet="0"
@@ -298,19 +298,19 @@
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
- PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS"
- RuntimeLibrary="0"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_AMD64_;_WIN64;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS"
+ RuntimeLibrary="2"
RuntimeTypeInfo="true"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
- DisableSpecificWarnings="4244;4800"
+ DisableSpecificWarnings="4244;4800;4290;4355"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_WIN64"
+ PreprocessorDefinitions="NDEBUG;NOMINMAX;WIN32_LEAN_AND_MEAN;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_WIN64"
Culture="1033"
AdditionalIncludeDirectories="$(BOOST_ROOT)\include\$(BOOST_VERSION),$(BOOST_ROOT)\.,..,..\gen"
/>
@@ -320,7 +320,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/machine:AMD64"
- AdditionalDependencies="qpidcommons.lib qpidclients.lib qmfconsoles.lib ws2_32.lib rpcrt4.lib"
+ AdditionalDependencies="qpidcommon.lib qpidclient.lib qpidbroker.lib qmfconsole.lib"
OutputFile="$(OutDir)\unit_test.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -361,15 +361,33 @@
RelativePath="Array.cpp">
</File>
<File
+ RelativePath="AsyncCompletion.cpp">
+ </File>
+ <File
RelativePath="AtomicValue.cpp">
</File>
<File
RelativePath="Blob.cpp">
</File>
<File
+ RelativePath="ClientSessionTest.cpp">
+ </File>
+ <File
RelativePath="ConsoleTest.cpp">
</File>
<File
+ RelativePath="DeliveryRecordTest.cpp">
+ </File>
+ <File
+ RelativePath="DtxWorkRecordTest.cpp">
+ </File>
+ <File
+ RelativePath="exception_test.cpp">
+ </File>
+ <File
+ RelativePath="ExchangeTest.cpp">
+ </File>
+ <File
RelativePath="FieldTable.cpp">
</File>
<File
@@ -379,9 +397,15 @@
RelativePath="FramingTest.cpp">
</File>
<File
+ RelativePath="HeadersExchangeTest.cpp">
+ </File>
+ <File
RelativePath="HeaderTest.cpp">
</File>
<File
+ RelativePath="IncompleteMessageList.cpp">
+ </File>
+ <File
RelativePath="InlineAllocator.cpp">
</File>
<File
@@ -394,6 +418,15 @@
RelativePath="ManagementTest.cpp">
</File>
<File
+ RelativePath="MessageBuilderTest.cpp">
+ </File>
+ <File
+ RelativePath="MessageReplayTracker.cpp">
+ </File>
+ <File
+ RelativePath="MessageTest.cpp">
+ </File>
+ <File
RelativePath="ProxyTest.cpp">
</File>
<File
@@ -403,6 +436,15 @@
RelativePath="QueueOptionsTest.cpp">
</File>
<File
+ RelativePath="QueuePolicyTest.cpp">
+ </File>
+ <File
+ RelativePath="QueueRegistryTest.cpp">
+ </File>
+ <File
+ RelativePath="QueueTest.cpp">
+ </File>
+ <File
RelativePath="RangeSet.cpp">
</File>
<File
@@ -430,6 +472,18 @@
RelativePath="StringUtils.cpp">
</File>
<File
+ RelativePath="TimerTest.cpp">
+ </File>
+ <File
+ RelativePath="TopicExchangeTest.cpp">
+ </File>
+ <File
+ RelativePath="TxBufferTest.cpp">
+ </File>
+ <File
+ RelativePath="TxPublishTest.cpp">
+ </File>
+ <File
RelativePath="unit_test.cpp">
</File>
<File