Author: shuston
Date: Tue Apr 28 17:56:25 2009
New Revision: 769480

URL: http://svn.apache.org/viewvc?rev=769480&view=rev
Log:
Add tests; revise checks for C++ headers to uuse C++, not C

Modified:
    qpid/trunk/qpid/cpp/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
    qpid/trunk/qpid/cpp/src/tests/Shlib.cpp

Modified: qpid/trunk/qpid/cpp/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/CMakeLists.txt?rev=769480&r1=769479&r2=769480&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/CMakeLists.txt Tue Apr 28 17:56:25 2009
@@ -20,9 +20,12 @@
 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
 set (qpidc_version 0.5)
 
-# enable_testing()
+enable_testing()
 # set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
+# Emulate "make check" behavior of the autoconf world.
+add_custom_target(check COMMAND ${CMAKE_TEST_COMMAND})
+
 add_subdirectory(managementgen)
 # add_subdirectory(etc)
 add_subdirectory(src)

Modified: qpid/trunk/qpid/cpp/src/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/CMakeLists.txt?rev=769480&r1=769479&r2=769480&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/CMakeLists.txt Tue Apr 28 17:56:25 2009
@@ -18,6 +18,7 @@
 #
 
 include(CheckFunctionExists)
+include(CheckIncludeFileCXX)
 include(CheckIncludeFiles)
 include(CheckLibraryExists)
 include(CheckSymbolExists)
@@ -128,19 +129,9 @@
    # The following warnings are deliberately omitted, they warn on valid code.
    # -Wunreachable-code -Wpadded -Winline
    # -Wshadow - warns about boost headers.
-   add_definitions(-Werror
-                   -pedantic
-                   -Wall
-                   -Wextra
-                   -Wno-shadow
-                   -Wpointer-arith
-                   -Wcast-qual
-                   -Wcast-align
-                   -Wno-long-long
-                   -Wvolatile-register-var
-                   -Winvalid-pch
-                   -Wno-system-headers
-                   -Woverloaded-virtual)
+   set (WARNING_FLAGS
+        " -Werror -pedantic -Wall -Wextra -Wno-shadow -Wpointer-arith 
-Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch 
-Wno-system-headers -Woverloaded-virtual")
+   set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}${WARNING_FLAGS})
 endif (ENABLE_WARNINGS AND CMAKE_COMPILER_IS_GNUCXX)
 
 # Expand a bit from the basic Find_Boost; be specific about what's needed.
@@ -200,8 +191,8 @@
 option(QPID_HAS_XML "Build with XML Exchange" ${xml_default})
 if (QPID_HAS_XML)
   CHECK_LIBRARY_EXISTS (xerces-c _init "" HAVE_XERCES)
-  CHECK_INCLUDE_FILES (xercesc/framework/MemBufInputSource.hpp HAVE_XERCES_H)
-  CHECK_INCLUDE_FILES (xqilla/xqilla-simple.hpp HAVE_XQILLA_H)
+  CHECK_INCLUDE_FILE_CXX (xercesc/framework/MemBufInputSource.hpp 
HAVE_XERCES_H)
+  CHECK_INCLUDE_FILE_CXX (xqilla/xqilla-simple.hpp HAVE_XQILLA_H)
   if (NOT HAVE_XERCES)
     message(FATAL_ERROR "XML Exchange support requested but xerces-c library 
not found")
   endif (NOT HAVE_XERCES)
@@ -644,4 +635,7 @@
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
                ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 
-# add_subdirectory(tests)
+# tests has EXCLUDE_FROM_ALL to avoid building and running tests during
+# "make all". Top-level CMakeLists has a "check" target that runs the tests
+# and all the tests are dependencies of "check" so they'll get built then.
+add_subdirectory(tests EXCLUDE_FROM_ALL)

Modified: qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt?rev=769480&r1=769479&r2=769480&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/src/tests/CMakeLists.txt Tue Apr 28 17:56:25 2009
@@ -1,35 +1,25 @@
-
-########### install files ###############
-
-
-
-
-#original Makefile.am contents follow:
-
-##
-## 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.
-##
 #
-#AM_CXXFLAGS = $(WARNING_CFLAGS) -DBOOST_TEST_DYN_LINK
-#INCLUDES =  -I$(srcdir)/.. -I$(srcdir)/../gen -I$(top_builddir)/src/gen
+# 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.
 #
-#abs_buildd...@abs_builddir@
-#extra_libs = 
+
+add_definitions(-DBOOST_TEST_DYN_LINK)
+include_directories( ${CMAKE_CURRENT_SOURCE_DIR} )
+
 #lib_client = $(abs_builddir)/../libqpidclient.la
 #lib_common = $(abs_builddir)/../libqpidcommon.la
 #lib_broker = $(abs_builddir)/../libqpidbroker.la
@@ -45,157 +35,212 @@
 #EXTRA_DIST=
 #CLEANFILES=
 #
-##
-## Unit test program
-##
-## Unit tests are built as a single program to reduce valgrind overhead
-## when running the tests. If you want to build a subset of the tests do 
-##   rm -f unit_test; make unit_test unit_test_OBJECTS="unit_test.o 
SelectedTest.o"
-## 
 #
+# Unit test program
+#
+# Unit tests are built as a single program to reduce valgrind overhead
+# when running the tests. If you want to build a subset of the tests do 
+#   rm -f unit_test; make unit_test unit_test_OBJECTS="unit_test.o 
SelectedTest.o"
+# 
+set (qpid_test_boost_libs boost_unit_test_framework boost_regex)
 #TESTS+=unit_test
 #check_PROGRAMS+=unit_test
 #unit_test_LDADD=-lboost_unit_test_framework -lboost_regex  \
 #      $(lib_client) $(lib_broker) $(lib_console)
 #
-#unit_test_SOURCES= unit_test.cpp unit_test.h \
-#      BrokerFixture.h SocketProxy.h \
-#      exception_test.cpp \
-#      RefCounted.cpp \
-#      SessionState.cpp Blob.cpp logging.cpp \
-#      AsyncCompletion.cpp \
-#      Url.cpp Uuid.cpp \
-#      Shlib.cpp FieldValue.cpp FieldTable.cpp Array.cpp \
-#      QueueOptionsTest.cpp \
-#      InlineAllocator.cpp \
-#      InlineVector.cpp \
-#      ClientSessionTest.cpp \
-#      SequenceSet.cpp \
-#      StringUtils.cpp \
-#      IncompleteMessageList.cpp \
-#      RangeSet.cpp \
-#      AtomicValue.cpp \
-#      QueueTest.cpp \
-#      AccumulatedAckTest.cpp \
-#      DtxWorkRecordTest.cpp \
-#      DeliveryRecordTest.cpp \
-#      ExchangeTest.cpp \
-#      HeadersExchangeTest.cpp \
-#      MessageTest.cpp \
-#      QueueRegistryTest.cpp \
-#      QueuePolicyTest.cpp \
-#      FramingTest.cpp \
-#      HeaderTest.cpp \
-#      SequenceNumberTest.cpp \
-#      TimerTest.cpp \
-#      TopicExchangeTest.cpp \
-#      TxBufferTest.cpp \
-#      TxPublishTest.cpp \
-#      MessageBuilderTest.cpp \
-#      ConnectionOptions.h \
-#      ForkedBroker.h \
-#      ManagementTest.cpp \
-#      MessageReplayTracker.cpp \
-#      ConsoleTest.cpp
-#
-#if HAVE_XML
-#unit_test_SOURCES+= XmlClientSessionTest.cpp
-#endif
-#
-#
-## Disabled till we move to amqp_0_10 codec.
-##     amqp_0_10/serialize.cpp allSegmentTypes.h \
-##     amqp_0_10/ProxyTemplate.cpp \
-##     amqp_0_10/apply.cpp \
-##     amqp_0_10/Map.cpp \
-##     amqp_0_10/handlers.cpp 
-#
-#
-#check_LTLIBRARIES += libshlibtest.la
+set(unit_tests_to_build
+    unit_test
+    exception_test
+    RefCounted
+    SessionState
+    logging
+    AsyncCompletion
+    Url
+    Uuid
+    Shlib
+    FieldValue
+    FieldTable
+    Array
+    QueueOptionsTest
+    InlineAllocator
+    InlineVector
+    ClientSessionTest
+    SequenceSet
+    StringUtils
+    IncompleteMessageList
+    RangeSet
+    AtomicValue
+    QueueTest
+    AccumulatedAckTest
+    DtxWorkRecordTest
+    DeliveryRecordTest
+    ExchangeTest
+    HeadersExchangeTest
+    MessageTest
+    QueueRegistryTest
+    QueuePolicyTest
+    FramingTest
+    HeaderTest
+    SequenceNumberTest
+    TimerTest
+    TopicExchangeTest
+    TxBufferTest
+    TxPublishTest
+    MessageBuilderTest
+    ManagementTest
+    MessageReplayTracker
+    ConsoleTest
+    QueueEvents
+    ProxyTest
+    RetryList
+    RateFlowcontrolTest
+    FrameDecoder
+    ReplicationTest
+    ClientMessageTest
+    PollableCondition
+    CACHE STRING "Which unit tests to build"
+   )
+if (QPID_HAS_XML)
+  set(unit_tests_to_build ${unit_tests_to_build} XmlClientSessionTest)
+endif (QPID_HAS_XML)
+mark_as_advanced(unit_tests_to_build)
+
+#message(DEBUG "unit_tests_to_build: ${unit_tests_to_build}")
+#string (REPLACE ";" ".cpp;"
+#        unit_test_SOURCES
+#        ${unit_tests_to_build})
+
+# Disabled till we move to amqp_0_10 codec.
+#      amqp_0_10/serialize.cpp allSegmentTypes.h \
+#      amqp_0_10/ProxyTemplate.cpp \
+#      amqp_0_10/apply.cpp \
+#      amqp_0_10/Map.cpp \
+#      amqp_0_10/handlers.cpp 
+
+add_executable (unit_test ${unit_tests_to_build})
+target_link_libraries (unit_test
+                       ${qpid_test_boost_libs}
+                       qpidclient qpidbroker qmfconsole)
+add_test (unit_test unit_test)
+add_dependencies (check unit_test)
+
+add_library (shlibtest MODULE shlibtest.cpp)
 #libshlibtest_la_LDFLAGS = -module -rpath $(abs_builddir)
-#libshlibtest_la_SOURCES = shlibtest.cpp
-#
+
 #include cluster.mk
 #if SSL
 #include ssl.mk
 #endif
+
 #
-##
-## Other test programs
-##
-#check_PROGRAMS+=perftest
-#perftest_SOURCES=perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h
-#perftest_LDADD=$(lib_client) 
+# Other test programs
 #
-#check_PROGRAMS+=txtest
+add_executable (perftest perftest.cpp)
+target_link_libraries (perftest qpidclient)
+#perftest_SOURCES=perftest.cpp test_tools.h TestOptions.h ConnectionOptions.h
+add_test (perftest perftest)
+add_dependencies (check perftest)
+
+add_executable (txtest txtest.cpp)
+target_link_libraries (txtest qpidclient)
 #txtest_SOURCES=txtest.cpp  TestOptions.h ConnectionOptions.h
-#txtest_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=latencytest
+add_test (txtest txtest)
+add_dependencies (check txtest)
+
+add_executable (latencytest latencytest.cpp)
+target_link_libraries (latencytest qpidclient)
 #latencytest_SOURCES=latencytest.cpp TestOptions.h ConnectionOptions.h
-#latencytest_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=echotest
+add_test (latencytest latencytest)
+add_dependencies (check latencytest)
+
+add_executable (echotest echotest.cpp)
+target_link_libraries (echotest qpidclient)
 #echotest_SOURCES=echotest.cpp TestOptions.h ConnectionOptions.h
-#echotest_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=client_test
+add_test (echotest echotest)
+add_dependencies (check echotest)
+
+add_executable (client_test client_test.cpp)
+target_link_libraries (client_test qpidclient)
 #client_test_SOURCES=client_test.cpp TestOptions.h ConnectionOptions.h
-#client_test_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=topic_listener
+add_test (client_test client_test)
+add_dependencies (check client_test)
+
+add_executable (topic_listener topic_listener.cpp)
+target_link_libraries (topic_listener qpidclient)
 #topic_listener_SOURCES=topic_listener.cpp TestOptions.h ConnectionOptions.h
-#topic_listener_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=topic_publisher
+add_test (topic_listener topic_listener)
+add_dependencies (check topic_listener)
+
+add_executable (topic_publisher topic_publisher.cpp)
+target_link_libraries (topic_publisher qpidclient)
 #topic_publisher_SOURCES=topic_publisher.cpp TestOptions.h ConnectionOptions.h
-#topic_publisher_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=publish
+add_test (topic_publisher topic_publisher)
+add_dependencies (check topic_publisher)
+
+add_executable (publish publish.cpp)
+target_link_libraries (publish qpidclient)
 #publish_SOURCES=publish.cpp TestOptions.h ConnectionOptions.h
-#publish_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=consume
+add_test (publish publish)
+add_dependencies (check publish)
+
+add_executable (consume consume.cpp)
+target_link_libraries (consume qpidclient)
 #consume_SOURCES=consume.cpp  TestOptions.h ConnectionOptions.h
-#consume_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=header_test
+add_test (consume consume)
+add_dependencies (check consume)
+
+add_executable (header_test header_test.cpp)
+target_link_libraries (header_test qpidclient)
 #header_test_SOURCES=header_test.cpp TestOptions.h ConnectionOptions.h
-#header_test_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=failover_soak
+add_test (header_test header_test)
+add_dependencies (check header_test)
+
+add_executable (failover_soak failover_soak.cpp ForkedBroker.cpp)
+target_link_libraries (failover_soak qpidclient)
 #failover_soak_SOURCES=failover_soak.cpp  ForkedBroker.h
-#failover_soak_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=declare_queues
-#declare_queues_SOURCES=declare_queues.cpp  
-#declare_queues_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=replaying_sender
-#replaying_sender_SOURCES=replaying_sender.cpp  
-#replaying_sender_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=resuming_receiver
-#resuming_receiver_SOURCES=resuming_receiver.cpp  
-#resuming_receiver_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=txshift
+add_test (failover_soak failover_soak)
+add_dependencies (check failover_soak)
+
+add_executable (declare_queues declare_queues.cpp)
+target_link_libraries (declare_queues qpidclient)
+add_test (declare_queues declare_queues)
+add_dependencies (check declare_queues)
+
+add_executable (replaying_sender replaying_sender.cpp)
+target_link_libraries (replaying_sender qpidclient)
+add_test (replaying_sender replaying_sender)
+add_dependencies (check replaying_sender)
+
+add_executable (resuming_receiver resuming_receiver.cpp)
+target_link_libraries (resuming_receiver qpidclient)
+add_test (resuming_receiver resuming_receiver)
+add_dependencies (check resuming_receiver)
+
+add_executable (txshift txshift.cpp)
+target_link_libraries (txshift qpidclient)
 #txshift_SOURCES=txshift.cpp  TestOptions.h ConnectionOptions.h
-#txshift_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=txjob
+add_test (txshift txshift)
+add_dependencies (check txshift)
+
+add_executable (txjob txjob.cpp)
+target_link_libraries (txjob qpidclient)
 #txjob_SOURCES=txjob.cpp  TestOptions.h ConnectionOptions.h
-#txjob_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=receiver
+add_test (txjob txjob)
+add_dependencies (check txjob)
+
+add_executable (receiver receiver.cpp)
+target_link_libraries (receiver qpidclient)
 #receiver_SOURCES=receiver.cpp  TestOptions.h ConnectionOptions.h
-#receiver_LDADD=$(lib_client) 
-#
-#check_PROGRAMS+=sender
+add_test (receiver receiver)
+add_dependencies (check receiver)
+
+add_executable (sender sender.cpp)
+target_link_libraries (sender qpidclient)
 #sender_SOURCES=sender.cpp  TestOptions.h ConnectionOptions.h
-#sender_LDADD=$(lib_client) 
-#
-#
+add_test (sender sender)
+add_dependencies (check sender)
+
+
 #TESTS_ENVIRONMENT = VALGRIND=$(VALGRIND) srcdir=$(srcdir) QPID_DATA_DIR= 
BOOST_TEST_SHOW_PROGRESS=yes $(srcdir)/run_test 
 #
 #system_tests = client_test quick_perftest quick_topictest run_header_test 
quick_txtest
@@ -220,11 +265,10 @@
 #  TestMessageStore.h                                                  \
 #  TxMocks.h                                                           \
 #  start_cluster stop_cluster restart_cluster
-#
-#check_LTLIBRARIES += libdlclose_noop.la
+
+add_library (dlclose_noop MODULE dlclose_noop.c)
 #libdlclose_noop_la_LDFLAGS = -module -rpath $(abs_builddir)
-#libdlclose_noop_la_SOURCES = dlclose_noop.c
-#
+
 #CLEANFILES+=valgrind.out *.log *.vglog* dummy_test $(unit_wrappers)
 #
 ## FIXME aconway 2008-05-23: Disabled interop_runner because it uses

Modified: qpid/trunk/qpid/cpp/src/tests/Shlib.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Shlib.cpp?rev=769480&r1=769479&r2=769480&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/Shlib.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/Shlib.cpp Tue Apr 28 17:56:25 2009
@@ -24,13 +24,37 @@
 
 #include "unit_test.h"
 
+#ifndef WIN32
+#  include <sys/stat.h>
+#endif
+
 QPID_AUTO_TEST_SUITE(ShlibTestSuite)
 
 using namespace qpid::sys;
 typedef void (*CallMe)(int*);
 
+// Figure out the correct combination of tokens to use for a loadable
+// library.
+namespace {
+  const char *assemble_name (const char *base)
+  {
+    static char full_name[1024];
+#   if defined (WIN32)
+    sprintf (full_name, "%s.dll", base);
+#   else
+    // If we're in a libtool environment, use that; else look here.
+    struct stat s;
+    if (stat(".libs", &s) == 0)
+        sprintf (full_name, ".libs/lib%s.so", base);
+    else
+        sprintf (full_name, "./lib%s.so", base);
+#   endif /* WIN32 */
+    return full_name;
+  }
+}
+
 QPID_AUTO_TEST_CASE(testShlib) {
-    Shlib sh(".libs/libshlibtest.so");
+    Shlib sh(assemble_name("shlibtest"));
     // Double cast to avoid ISO warning.
     CallMe callMe=sh.getSymbol<CallMe>("callMe");
     BOOST_REQUIRE(callMe != 0);
@@ -48,7 +72,7 @@
 QPID_AUTO_TEST_CASE(testAutoShlib) {
     int unloaded = 0;
     {
-        AutoShlib sh(".libs/libshlibtest.so");
+        AutoShlib sh(assemble_name("shlibtest"));
         CallMe callMe=sh.getSymbol<CallMe>("callMe");
         BOOST_REQUIRE(callMe != 0);
         callMe(&unloaded);



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to