[rhmessaging-commits] rhmessaging commits: r1958 - in store/trunk/cpp: lib and 3 other directories.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Apr 22 17:10:46 EDT 2008


Author: aconway
Date: 2008-04-22 17:10:46 -0400 (Tue, 22 Apr 2008)
New Revision: 1958

Added:
   store/trunk/cpp/tests/.valgrind.supp
   store/trunk/cpp/tests/.valgrindrc
   store/trunk/cpp/tests/run_test
   store/trunk/cpp/tests/start_broker
   store/trunk/cpp/tests/stop_broker
   store/trunk/cpp/tests/vg_check
Removed:
   store/trunk/cpp/tests/.vg-supp
   store/trunk/cpp/tests/setup
Modified:
   store/trunk/cpp/configure.ac
   store/trunk/cpp/lib/Makefile.am
   store/trunk/cpp/tests/
   store/trunk/cpp/tests/Makefile.am
   store/trunk/cpp/tests/jrnl/
   store/trunk/cpp/tests/jrnl/Makefile.am
   store/trunk/cpp/tests/jrnl/jtt/
   store/trunk/cpp/tests/jrnl/jtt/Makefile.am
   store/trunk/cpp/tests/jrnl/jtt/args.cpp
   store/trunk/cpp/tests/jrnl/jtt/args.hpp
   store/trunk/cpp/tests/jrnl/jtt/test_mgr.cpp
   store/trunk/cpp/tests/jrnl/run-journal-tests
   store/trunk/cpp/tests/persistence.py
   store/trunk/cpp/tests/system_test.sh
Log:

 - Updated valgrind setup from qpid.
 - Enabled valgrind for jrnl and jtt tests.  
 - Use temp directory for qpidd --data-dir in system_test.sh
 - Use transient broker port in system_test.sh


Modified: store/trunk/cpp/configure.ac
===================================================================
--- store/trunk/cpp/configure.ac	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/configure.ac	2008-04-22 21:10:46 UTC (rev 1958)
@@ -173,7 +173,7 @@
 fi
 
 # We use valgrind for the tests.  See if it's available.
-AC_CHECK_PROG([VALGRIND], [valgrind], [yes])
+AC_CHECK_PROG([VALGRIND], [valgrind], [valgrind])
 
 # Also doxygen for documentation...
 AC_CHECK_PROG([do_doxygen], [doxygen], [yes])

Modified: store/trunk/cpp/lib/Makefile.am
===================================================================
--- store/trunk/cpp/lib/Makefile.am	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/lib/Makefile.am	2008-04-22 21:10:46 UTC (rev 1958)
@@ -19,89 +19,88 @@
   BdbMessageStore.cpp				\
   BindingDbt.cpp				\
   BufferValue.cpp				\
-  DataTokenImpl.cpp			\
+  DataTokenImpl.cpp				\
   IdDbt.cpp					\
   IdPairDbt.cpp					\
   IdSequence.cpp				\
   JournalImpl.cpp				\
   PreparedTransaction.cpp			\
   StringDbt.cpp					\
-  BdbMessageStore.h		\
-  BindingDbt.h			\
-  BufferValue.h			\
-  Cursor.h			\
-  DataTokenImpl.h		\
-  IdDbt.h			\
-  IdPairDbt.h			\
-  IdSequence.h			\
-  JournalImpl.h			\
-  PreparedTransaction.h		\
-  StoreException.h		\
-  StringDbt.h			\
-  TxnCtxt.h				\
-  jrnl/arr_cnt.cpp          \
-  jrnl/cvar.cpp             \
-  jrnl/data_tok.cpp			\
-  jrnl/deq_rec.cpp			\
-  jrnl/enq_map.cpp			\
-  jrnl/enq_rec.cpp			\
-  jrnl/jcntl.cpp			\
-  jrnl/jdir.cpp			\
-  jrnl/jerrno.cpp			\
-  jrnl/jexception.cpp			\
-  jrnl/jinf.cpp			\
-  jrnl/jrec.cpp			\
-  jrnl/lfh.cpp			\
-  jrnl/nlfh.cpp			\
-  jrnl/pmgr.cpp			\
-  jrnl/rmgr.cpp			\
-  jrnl/slock.cpp        \
-  jrnl/rrfc.cpp			\
-  jrnl/time_ns.cpp      \
-  jrnl/txn_map.cpp			\
-  jrnl/txn_rec.cpp			\
-  jrnl/wmgr.cpp			\
-  jrnl/wrfc.cpp			\
-  jrnl/aio_cb.hpp			\
-  jrnl/arr_cnt.hpp          \
-  jrnl/cvar.hpp             \
-  jrnl/data_tok.hpp			\
-  jrnl/deq_hdr.hpp			\
-  jrnl/deq_rec.hpp			\
-  jrnl/enq_hdr.hpp			\
-  jrnl/enq_map.hpp			\
-  jrnl/enq_rec.hpp			\
-  jrnl/enums.hpp            \
-  jrnl/file_hdr.hpp			\
-  jrnl/jcfg.hpp			\
-  jrnl/jcntl.hpp			\
-  jrnl/jdir.hpp			\
-  jrnl/jerrno.hpp			\
-  jrnl/jexception.hpp			\
-  jrnl/jinf.hpp			\
-  jrnl/jrec.hpp			\
-  jrnl/lfh.hpp			\
-  jrnl/nlfh.hpp			\
-  jrnl/pmgr.hpp			\
-  jrnl/rcvdat.hpp			\
-  jrnl/rec_hdr.hpp			\
-  jrnl/rec_tail.hpp			\
-  jrnl/rmgr.hpp			\
-  jrnl/rrfc.hpp			\
-  jrnl/slock.hpp        \
-  jrnl/time_ns.hpp      \
-  jrnl/txn_hdr.hpp			\
-  jrnl/txn_map.hpp			\
-  jrnl/txn_rec.hpp			\
-  jrnl/wmgr.hpp			\
-  jrnl/wrfc.hpp			\
-  gen/qpid/management/PackageMrgstore.cpp \
-  gen/qpid/management/PackageMrgstore.h \
-  gen/qpid/management/Journal.cpp \
-  gen/qpid/management/Journal.h \
-  gen/qpid/management/Store.cpp \
-  gen/qpid/management/Store.h \
-  gen/qpid/management/ArgsJournalExpand.h \
+  BdbMessageStore.h				\
+  BindingDbt.h					\
+  BufferValue.h					\
+  Cursor.h					\
+  DataTokenImpl.h				\
+  IdDbt.h					\
+  IdPairDbt.h					\
+  IdSequence.h					\
+  JournalImpl.h					\
+  PreparedTransaction.h				\
+  StoreException.h				\
+  StringDbt.h					\
+  TxnCtxt.h					\
+  jrnl/arr_cnt.cpp				\
+  jrnl/cvar.cpp					\
+  jrnl/data_tok.cpp				\
+  jrnl/deq_rec.cpp				\
+  jrnl/enq_map.cpp				\
+  jrnl/enq_rec.cpp				\
+  jrnl/jcntl.cpp				\
+  jrnl/jdir.cpp					\
+  jrnl/jerrno.cpp				\
+  jrnl/jexception.cpp				\
+  jrnl/jinf.cpp					\
+  jrnl/jrec.cpp					\
+  jrnl/lfh.cpp					\
+  jrnl/nlfh.cpp					\
+  jrnl/pmgr.cpp					\
+  jrnl/rmgr.cpp					\
+  jrnl/slock.cpp				\
+  jrnl/rrfc.cpp					\
+  jrnl/time_ns.cpp				\
+  jrnl/txn_map.cpp				\
+  jrnl/txn_rec.cpp				\
+  jrnl/wmgr.cpp					\
+  jrnl/wrfc.cpp					\
+  jrnl/aio_cb.hpp				\
+  jrnl/arr_cnt.hpp				\
+  jrnl/cvar.hpp					\
+  jrnl/data_tok.hpp				\
+  jrnl/deq_hdr.hpp				\
+  jrnl/deq_rec.hpp				\
+  jrnl/enq_hdr.hpp				\
+  jrnl/enq_map.hpp				\
+  jrnl/enq_rec.hpp				\
+  jrnl/enums.hpp				\
+  jrnl/file_hdr.hpp				\
+  jrnl/jcfg.hpp					\
+  jrnl/jcntl.hpp				\
+  jrnl/jdir.hpp					\
+  jrnl/jerrno.hpp				\
+  jrnl/jexception.hpp				\
+  jrnl/jinf.hpp					\
+  jrnl/jrec.hpp					\
+  jrnl/lfh.hpp					\
+  jrnl/nlfh.hpp					\
+  jrnl/pmgr.hpp					\
+  jrnl/rcvdat.hpp				\
+  jrnl/rec_hdr.hpp				\
+  jrnl/rec_tail.hpp				\
+  jrnl/rmgr.hpp					\
+  jrnl/rrfc.hpp					\
+  jrnl/slock.hpp				\
+  jrnl/txn_hdr.hpp				\
+  jrnl/txn_map.hpp				\
+  jrnl/txn_rec.hpp				\
+  jrnl/wmgr.hpp					\
+  jrnl/wrfc.hpp					\
+  gen/qpid/management/PackageMrgstore.cpp	\
+  gen/qpid/management/PackageMrgstore.h		\
+  gen/qpid/management/Journal.cpp		\
+  gen/qpid/management/Journal.h			\
+  gen/qpid/management/Store.cpp			\
+  gen/qpid/management/Store.h			\
+  gen/qpid/management/ArgsJournalExpand.h	\
   gen/qpid/management/ArgsJournalReconfigure.h
 
 


Property changes on: store/trunk/cpp/tests
___________________________________________________________________
Name: svn:ignore
   - .deps
.libs
Makefile
Makefile.in
gen.mk
qpid.log
OrderingTest
SimpleTest
TransactionalTest
TwoPhaseCommitTest
vg-log.bdb.1
vg-log.bdb.2
vg-log.bdb.3
vg-log.bdb.4
vg-log.bdb.5
vg-log.bdb.6
vg-log.bdb.7
vg-log.bdb.8
vg-log.jrnl.1
vg-log.jrnl.2
vg-log.jrnl.3
vg-log.jrnl.4
vg-log.jrnl.5
vg-log.jrnl.6
vg-log.jrnl.7
vg-log.jrnl.8

   + .deps
.libs
Makefile
Makefile.in
gen.mk
qpid.log
OrderingTest
SimpleTest
TransactionalTest
TwoPhaseCommitTest
vg-log.bdb.1
vg-log.bdb.2
vg-log.bdb.3
vg-log.bdb.4
vg-log.bdb.5
vg-log.bdb.6
vg-log.bdb.7
vg-log.bdb.8
vg-log.jrnl.1
vg-log.jrnl.2
vg-log.jrnl.3
vg-log.jrnl.4
vg-log.jrnl.5
vg-log.jrnl.6
vg-log.jrnl.7
vg-log.jrnl.8
qpidd.port


Added: store/trunk/cpp/tests/.valgrind.supp
===================================================================
--- store/trunk/cpp/tests/.valgrind.supp	                        (rev 0)
+++ store/trunk/cpp/tests/.valgrind.supp	2008-04-22 21:10:46 UTC (rev 1958)
@@ -0,0 +1,32 @@
+{
+   Benign error in libcpg.
+   Memcheck:Param
+   socketcall.sendmsg(msg.msg_iov[i])
+   obj:*/libpthread-2.5.so
+   obj:*/libcpg.so.2.0.0
+}
+
+{
+   Uninitialised value problem in _dl_relocate (F7, F8)
+   Memcheck:Cond
+   fun:_dl_relocate_object
+   fun:*dl_*
+}
+
+{
+   False "possibly leaked" in boost program_options - global std::string var.
+   Memcheck:Leak
+   fun:_Znwj
+   fun:_ZNSs4_Rep9_S_createEjjRKSaIcE
+   obj:/usr/lib/libstdc++.so.6.0.8
+   fun:_ZNSsC1EPKcRKSaIcE
+   obj:/usr/lib/libboost_program_options.so.1.33.1
+}
+
+{
+   Bogus epoll_ctl error on i386
+   Memcheck:Param
+   epoll_ctl(event)
+   fun:epoll_ctl
+}
+

Added: store/trunk/cpp/tests/.valgrindrc
===================================================================
--- store/trunk/cpp/tests/.valgrindrc	                        (rev 0)
+++ store/trunk/cpp/tests/.valgrindrc	2008-04-22 21:10:46 UTC (rev 1958)
@@ -0,0 +1,7 @@
+--gen-suppressions=all
+--leak-check=full
+--demangle=yes
+--suppressions=.valgrind.supp
+--num-callers=25
+--trace-children=yes
+

Deleted: store/trunk/cpp/tests/.vg-supp
===================================================================
--- store/trunk/cpp/tests/.vg-supp	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/.vg-supp	2008-04-22 21:10:46 UTC (rev 1958)
@@ -1,72 +0,0 @@
-{
-   Benign error in libcpg.
-
-   Memcheck:Param
-   socketcall.sendmsg(msg.msg_iov[i])
-   obj:*/libpthread-2.5.so
-   obj:*/libcpg.so.2.0.0
-}
-
-{
-   Uninitialised value problem in dlopen
-   Memcheck:Cond
-   fun:_dl_relocate_object
-   fun:*dl_*
-   obj:/lib64/ld-2.6.so
-   obj:*
-}
-{
-   False "possibly leaked" in boost program_options - global std::string var.
-   Memcheck:Leak
-   fun:_Znwj
-   fun:_ZNSs4_Rep9_S_createEjjRKSaIcE
-   obj:/usr/lib/libstdc++.so.6.0.8
-   fun:_ZNSsC1EPKcRKSaIcE
-   obj:/usr/lib/libboost_program_options.so.1.33.1
-}
-{
-   TODO: CONFIRM BENIGN - uninit params to epoll_ctl 
-   Memcheck:Param
-   epoll_ctl(event)
-   fun:epoll_ctl
-   fun:_ZN4qpid3sys14DispatchHandle10startWatchEN5boost10shared_ptrINS0_6PollerEEE
-}
-{
-   TODO: CONFIRM BENIGN - uninit params to epoll_ctl 
-   Memcheck:Param
-   epoll_ctl(event)
-   fun:epoll_ctl
-   fun:_ZN4qpid3sys14DispatchHandle17dispatchCallbacksENS0_6Poller9EventTypeE
-}
-{
-  TODO: CONFIRM BENIGN - uninit params to epoll_ctl (on shutdown)
-   Memcheck:Param
-   epoll_ctl(event)
-   fun:epoll_ctl
-   fun:_ZN4qpid3sys16AsynchIOAcceptor8shutdownEv
-}
-{
-  TODO: CONFIRM BENIGN - uninit params to epoll_ctl (on shutdown)
-   Memcheck:Param
-   epoll_ctl(event)
-   fun:epoll_ctl
-   fun:_ZN4qpid3sys14DispatchHandle12rewatchWriteEv
-}
-{
-   TODO: shutdown leak, not critical but better to fix it. Unjoined thread?
-   Memcheck:Leak
-   fun:calloc
-   fun:_dl_allocate_tls
-   fun:pthread_create@@GLIBC_2.1
-   fun:pthread_create at GLIBC_2.0
-   fun:_ZN4qpid3sys16AsynchIOAcceptor3runEPNS0_29ConnectionInputHandlerFactoryE
-}
-
-{
-   For CppUnit we have to suppress dlclose, so ignore leaks from dlopen.
-   Memcheck:Cond
-   fun:_dl_relocate_object
-   fun:*dl_*
-   obj:/lib64/ld-2.6.so
-   obj:*
-}

Modified: store/trunk/cpp/tests/Makefile.am
===================================================================
--- store/trunk/cpp/tests/Makefile.am	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/Makefile.am	2008-04-22 21:10:46 UTC (rev 1958)
@@ -6,7 +6,7 @@
 
 INCLUDES=-I../lib -I../lib/gen
 
-SUBDIRS = jrnl
+SUBDIRS = . jrnl
 
 TESTS =						    \
   clean.sh                      \
@@ -23,7 +23,7 @@
   TwoPhaseCommitTest
 
 UNIT_TEST_SRCS = unit_test.cpp unit_test.h
-UNIT_TEST_LDADD = -lboost_unit_test_framework -lbdbstore -L../lib/.libs 
+UNIT_TEST_LDADD = -lboost_unit_test_framework $(top_builddir)/lib/libbdbstore.la
 
 include gen.mk
 
@@ -44,4 +44,6 @@
   QPID_DIR=$(QPID_DIR)						\
   VALGRIND=$(VALGRIND)						\
   abs_srcdir=$(abs_srcdir)					\
-  LIBBDBSTORE=$(abs_builddir)/../lib/.libs/libbdbstore.so
+  LIBBDBSTORE=$(abs_top_builddir)/lib/.libs/libbdbstore.so      \
+  $(srcdir)/run_test
+


Property changes on: store/trunk/cpp/tests/jrnl
___________________________________________________________________
Name: svn:ignore
   - .deps
.libs
Makefile
Makefile.in
jtest
_ut_enq_map
_ut_arr_cnt
_ut_jdir
_ut_jerrno
_ut_jexception
_ut_jinf
_ut_rec_hdr
_ut_time_ns
_ut_txn_map
_st_basic
_st_basic_txn
_st_read
_st_read_txn

   + .deps
.libs
Makefile
Makefile.in
jtest
_ut_enq_map
_ut_arr_cnt
_ut_jdir
_ut_jerrno
_ut_jexception
_ut_jinf
_ut_rec_hdr
_ut_time_ns
_ut_txn_map
_st_basic
_st_basic_txn
_st_read
_st_read_txn
.valgrind.supp
.valgrindrc


Modified: store/trunk/cpp/tests/jrnl/Makefile.am
===================================================================
--- store/trunk/cpp/tests/jrnl/Makefile.am	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/jrnl/Makefile.am	2008-04-22 21:10:46 UTC (rev 1958)
@@ -25,8 +25,18 @@
 
 INCLUDES=-I../../lib
 
-SUBDIRS = jtt
+SUBDIRS = jtt .
 
+TESTS_ENVIRONMENT =						\
+  VALGRIND=$(VALGRIND)						\
+  $(srcdir)/../run_test
+
+all-local: .valgrindrc .valgrind.supp
+.valgrindrc: $(top_srcdir)/tests/.valgrindrc
+	cp $^ .
+.valgrind.supp: $(top_srcdir)/tests/.valgrind.supp
+	cp $^ .
+
 TESTS = \
   _ut_time_ns \
   _ut_arr_cnt \
@@ -59,7 +69,7 @@
   _st_read_txn
 
 UNIT_TEST_SRCS = ../unit_test.cpp
-UNIT_TEST_LDADD = -lboost_unit_test_framework -lbdbstore -L../../lib/.libs 
+UNIT_TEST_LDADD = -lboost_unit_test_framework ${top_builddir}/lib/libbdbstore.la
 
 _ut_time_ns_SOURCES = _ut_time_ns.cpp $(UNIT_TEST_SRCS)
 _ut_time_ns_LDFLAGS = $(UNIT_TEST_LDADD)


Property changes on: store/trunk/cpp/tests/jrnl/jtt
___________________________________________________________________
Name: svn:ignore
   - jtt
Makefile
Makefile.in
_ut_data_src
_ut_jrnl_init_params
_ut_jrnl_instance
_ut_read_arg
_ut_test_case
_ut_test_case_set
_ut_test_case_result
_ut_test_case_result_agregation
.deps
.libs

   + jtt
Makefile
Makefile.in
_ut_data_src
_ut_jrnl_init_params
_ut_jrnl_instance
_ut_read_arg
_ut_test_case
_ut_test_case_set
_ut_test_case_result
_ut_test_case_result_agregation
.deps
.libs
.valgrind.supp
.valgrindrc


Modified: store/trunk/cpp/tests/jrnl/jtt/Makefile.am
===================================================================
--- store/trunk/cpp/tests/jrnl/jtt/Makefile.am	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/jrnl/jtt/Makefile.am	2008-04-22 21:10:46 UTC (rev 1958)
@@ -19,13 +19,20 @@
 #
 # The GNU Lesser General Public License is available in the file COPYING.
 
+AM_CXXFLAGS = -I${top_srcdir}/lib -Wall -Werror -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -pedantic -pthread -DBOOST_TEST_DYN_LINK
 
-LIBDIR = ../../../lib
-LIBOBJDIR = ${LIBDIR}/.libs
-JRNLDIR = ${LIBDIR}/jrnl
+LINK_BDB = ${top_builddir}/lib/libbdbstore.la
 
-AM_CXXFLAGS = -I${LIBDIR} -Wall -Werror -Wextra -Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Wno-system-headers -pedantic -pthread -DBOOST_TEST_DYN_LINK
+TESTS_ENVIRONMENT =						\
+  VALGRIND=$(VALGRIND)						\
+  $(srcdir)/../../run_test
 
+all-local: .valgrindrc .valgrind.supp
+.valgrindrc: $(top_srcdir)/tests/.valgrindrc
+	cp $^ .
+.valgrind.supp: $(top_srcdir)/tests/.valgrind.supp
+	cp $^ .
+
 TESTS = \
     _ut_data_src \
     _ut_jrnl_init_params \
@@ -68,106 +75,56 @@
     test_case_result_agregation.hpp \
     test_case_set.hpp \
     test_mgr.hpp
-jtt_LDADD = \
-    ${LIBOBJDIR}/arr_cnt.o \
-    ${LIBOBJDIR}/data_tok.o \
-    ${LIBOBJDIR}/deq_rec.o \
-    ${LIBOBJDIR}/enq_map.o \
-    ${LIBOBJDIR}/enq_rec.o \
-    ${LIBOBJDIR}/jcntl.o \
-    ${LIBOBJDIR}/jdir.o \
-    ${LIBOBJDIR}/jerrno.o \
-    ${LIBOBJDIR}/jexception.o \
-    ${LIBOBJDIR}/jinf.o \
-    ${LIBOBJDIR}/jrec.o \
-    ${LIBOBJDIR}/lfh.o \
-    ${LIBOBJDIR}/nlfh.o \
-    ${LIBOBJDIR}/pmgr.o \
-    ${LIBOBJDIR}/rmgr.o \
-    ${LIBOBJDIR}/rrfc.o \
-    ${LIBOBJDIR}/time_ns.o \
-    ${LIBOBJDIR}/txn_map.o \
-    ${LIBOBJDIR}/txn_rec.o \
-    ${LIBOBJDIR}/wmgr.o \
-    ${LIBOBJDIR}/wrfc.o
-jtt_LDFLAGS = -laio -lrt -lboost_program_options
 
-_ut_data_src_SOURCES = _ut_data_src.cpp ../../unit_test.cpp
-_ut_data_src_LDFLAGS = -lboost_unit_test_framework -lrt
-_ut_data_src_LDADD = data_src.o \
-    ${LIBOBJDIR}/jerrno.o \
-    ${LIBOBJDIR}/jexception.o
+jtt_LDADD = -laio -lrt -lboost_program_options $(LINK_BDB)
 
-_ut_jrnl_init_params_SOURCES = _ut_jrnl_init_params.cpp ../../unit_test.cpp
-_ut_jrnl_init_params_LDFLAGS =  -lboost_unit_test_framework -lrt
-_ut_jrnl_init_params_LDADD = jrnl_init_params.o
+_ut_data_src_SOURCES = _ut_data_src.cpp data_src.cpp ../../unit_test.cpp
+_ut_data_src_LDADD = -lboost_unit_test_framework -lrt $(LINK_BDB)
 
-_ut_read_arg_SOURCES = _ut_read_arg.cpp ../../unit_test.cpp
-_ut_read_arg_LDFLAGS =  -lboost_unit_test_framework -lrt -lboost_program_options
-_ut_read_arg_LDADD = read_arg.o
+_ut_jrnl_init_params_SOURCES = _ut_jrnl_init_params.cpp ../../unit_test.cpp jrnl_init_params.cpp
+_ut_jrnl_init_params_LDADD =  -lboost_unit_test_framework -lrt $(LINK_BDB)
 
-_ut_jrnl_instance_SOURCES = _ut_jrnl_instance.cpp ../../unit_test.cpp
-_ut_jrnl_instance_LDFLAGS =  -lboost_unit_test_framework -laio -lrt -lboost_program_options
-_ut_jrnl_instance_LDADD = \
-    args.o \
-    data_src.o \
-    jrnl_init_params.o \
-    jrnl_instance.o \
-    read_arg.o \
-    test_case.o \
-    test_case_result.o \
-    test_case_result_agregation.o \
-    ${LIBOBJDIR}/arr_cnt.o \
-    ${LIBOBJDIR}/data_tok.o \
-    ${LIBOBJDIR}/deq_rec.o \
-    ${LIBOBJDIR}/enq_map.o \
-    ${LIBOBJDIR}/enq_rec.o \
-    ${LIBOBJDIR}/jcntl.o \
-    ${LIBOBJDIR}/jdir.o \
-    ${LIBOBJDIR}/jerrno.o \
-    ${LIBOBJDIR}/jexception.o \
-    ${LIBOBJDIR}/jinf.o \
-    ${LIBOBJDIR}/jrec.o \
-    ${LIBOBJDIR}/lfh.o \
-    ${LIBOBJDIR}/nlfh.o \
-    ${LIBOBJDIR}/pmgr.o \
-    ${LIBOBJDIR}/rmgr.o \
-    ${LIBOBJDIR}/rrfc.o \
-    ${LIBOBJDIR}/time_ns.o \
-    ${LIBOBJDIR}/txn_map.o \
-    ${LIBOBJDIR}/txn_rec.o \
-    ${LIBOBJDIR}/wmgr.o \
-    ${LIBOBJDIR}/wrfc.o
+_ut_read_arg_SOURCES = _ut_read_arg.cpp ../../unit_test.cpp \
+    args.cpp \
+    data_src.cpp \
+    jrnl_init_params.cpp \
+    jrnl_instance.cpp \
+    read_arg.cpp \
+    test_case.cpp \
+    test_case_result.cpp \
+    test_case_result_agregation.cpp 
+_ut_read_arg_LDADD =  -lboost_unit_test_framework -lrt -lboost_program_options $(LINK_BDB)
 
-_ut_test_case_SOURCES = _ut_test_case.cpp ../../unit_test.cpp
-_ut_test_case_LDFLAGS = -lboost_unit_test_framework -lrt
-_ut_test_case_LDADD = test_case.o test_case_result.o test_case_result_agregation.o \
-    ${LIBOBJDIR}/time_ns.o
+_ut_jrnl_instance_SOURCES = _ut_jrnl_instance.cpp ../../unit_test.cpp \
+    args.cpp \
+    data_src.cpp \
+    jrnl_init_params.cpp \
+    jrnl_instance.cpp \
+    read_arg.cpp \
+    test_case.cpp \
+    test_case_result.cpp \
+    test_case_result_agregation.cpp
 
+_ut_jrnl_instance_LDADD =  -lboost_unit_test_framework -laio -lrt -lboost_program_options $(LINK_BDB)
 
-_ut_test_case_result_SOURCES = _ut_test_case_result.cpp ../../unit_test.cpp
-_ut_test_case_result_LDFLAGS = -lboost_unit_test_framework -lrt
-_ut_test_case_result_LDADD = test_case_result.o \
-    ${LIBOBJDIR}/jerrno.o \
-    ${LIBOBJDIR}/jexception.o \
-    ${LIBOBJDIR}/time_ns.o
+_ut_test_case_SOURCES = _ut_test_case.cpp ../../unit_test.cpp test_case.cpp test_case_result.cpp test_case_result_agregation.cpp 
+_ut_test_case_LDADD = -lboost_unit_test_framework -lrt $(LINK_BDB)
 
-_ut_test_case_result_agregation_SOURCES = _ut_test_case_result_agregation.cpp ../../unit_test.cpp
-_ut_test_case_result_agregation_LDFLAGS = -lboost_unit_test_framework -lrt
-_ut_test_case_result_agregation_LDADD = test_case_result.o test_case_result_agregation.o \
-    ${LIBOBJDIR}/jerrno.o \
-    ${LIBOBJDIR}/jexception.o \
-    ${LIBOBJDIR}/time_ns.o
 
-_ut_test_case_set_SOURCES = _ut_test_case_set.cpp ../../unit_test.cpp
-_ut_test_case_set_LDFLAGS = -lboost_unit_test_framework -lrt
-_ut_test_case_set_LDADD = \
-    test_case.o \
-    test_case_set.o \
-    test_case_result.o \
-    test_case_result_agregation.o \
-    ${LIBOBJDIR}/time_ns.o
+_ut_test_case_result_SOURCES = _ut_test_case_result.cpp ../../unit_test.cpp test_case_result.cpp
+_ut_test_case_result_LDADD = -lboost_unit_test_framework -lrt $(LINK_BDB)
 
+_ut_test_case_result_agregation_SOURCES = _ut_test_case_result_agregation.cpp ../../unit_test.cpp test_case_result.cpp test_case_result_agregation.cpp 
+_ut_test_case_result_agregation_LDADD = -lboost_unit_test_framework -lrt $(LINK_BDB)
+
+_ut_test_case_set_SOURCES = _ut_test_case_set.cpp ../../unit_test.cpp \
+    test_case.cpp \
+    test_case_set.cpp \
+    test_case_result.cpp \
+    test_case_result_agregation.cpp 
+
+_ut_test_case_set_LDADD = -lboost_unit_test_framework -lrt $(LINK_BDB)
+
 EXTRA_DIST = \
     jfile_chk.py \
     jtt.csv \

Modified: store/trunk/cpp/tests/jrnl/jtt/args.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/jtt/args.cpp	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/jrnl/jtt/args.cpp	2008-04-22 21:10:46 UTC (rev 1958)
@@ -50,44 +50,45 @@
     seed(0)
 {
     _options_descr.add_options()
-            ("csv-file,c",
-                    po::value<std::string>(&test_case_csv_file_name)->default_value("jtt.csv"),
-                    "CSV file containing test cases.")
-            ("format-chk", po::value<bool>(&format_chk)->zero_tokens(),
-                    "Check the format of each journal file.")
-            ("help,h", "This help message.")
-            ("keep-jrnls", po::value<bool>(&keep_jrnls)->zero_tokens(),
-                    "Keep all test journals.")
-            ("lld-rd-num", po::value<unsigned>(&lld_rd_num)->default_value(10),
-                    "Number of consecutive messages to read after only dequeueing <lld-skip-num> "
-                    "messages during lazy-loading. Ignored if read-mode is not set to LAZYLOAD.")
-            ("lld-skip-num", po::value<unsigned>(&lld_skip_num)->default_value(100),
-                    "Number of consecutive messages to dequeue only (without reading) prior to "
-                    "reading <lld-rd-num> messages. Ignored if read-mode is not set to LAZYLOAD.")
-            ("num-jrnls", po::value<unsigned>(&num_jrnls)->default_value(1),
-                    "Number of simultaneous journal instances to test.")
-            ("pause", po::value<unsigned>(&pause_secs)->default_value(0),
-                    "Pause in seconds between test cases (allows disk to catch up).")
-            ("randomize", po::value<bool>(&randomize)->zero_tokens(),
-                    "Randomize the order of the test case execution.")
-            ("read-mode", po::value<read_arg>(&read_mode)->default_value(read_arg::NONE),
-                    read_arg::descr().c_str())
-            ("read-prob", po::value<unsigned>(&read_prob)->default_value(50),
-                    "Read probability (percent) for each message when read-mode is set to RANDOM.")
-            ("recover-mode", po::value<bool>(&recover_mode)->zero_tokens(),
-                    "Recover journal from the previous test for each test case.")
-            ("repeat", po::value<bool>(&repeat_flag)->zero_tokens(),
-                    "Repeat all test cases in CSV file indefinitely.")
-            ("reuse-instance", po::value<bool>(&reuse_instance)->zero_tokens(),
-                    "Reuse journal instance for all test cases.")
-            ("seed", po::value<unsigned>(&seed)->default_value(0),
-                    "Seed for use in random number generator.");
+        ("csv-file,c",
+         po::value<std::string>(&test_case_csv_file_name)->default_value("jtt.csv"),
+         "CSV file containing test cases.")
+        ("format-chk", po::value<bool>(&format_chk)->zero_tokens(),
+         "Check the format of each journal file.")
+        ("help,h", "This help message.")
+        ("keep-jrnls", po::value<bool>(&keep_jrnls)->zero_tokens(),
+         "Keep all test journals.")
+        ("lld-rd-num", po::value<unsigned>(&lld_rd_num)->default_value(10),
+         "Number of consecutive messages to read after only dequeueing <lld-skip-num> "
+         "messages during lazy-loading. Ignored if read-mode is not set to LAZYLOAD.")
+        ("lld-skip-num", po::value<unsigned>(&lld_skip_num)->default_value(100),
+         "Number of consecutive messages to dequeue only (without reading) prior to "
+         "reading <lld-rd-num> messages. Ignored if read-mode is not set to LAZYLOAD.")
+        ("num-jrnls", po::value<unsigned>(&num_jrnls)->default_value(1),
+         "Number of simultaneous journal instances to test.")
+        ("pause", po::value<unsigned>(&pause_secs)->default_value(0),
+         "Pause in seconds between test cases (allows disk to catch up).")
+        ("randomize", po::value<bool>(&randomize)->zero_tokens(),
+         "Randomize the order of the test case execution.")
+        ("read-mode", po::value<read_arg>(&read_mode)->default_value(read_arg::NONE),
+         read_arg::descr().c_str())
+        ("read-prob", po::value<unsigned>(&read_prob)->default_value(50),
+         "Read probability (percent) for each message when read-mode is set to RANDOM.")
+        ("recover-mode", po::value<bool>(&recover_mode)->zero_tokens(),
+         "Recover journal from the previous test for each test case.")
+        ("repeat", po::value<bool>(&repeat_flag)->zero_tokens(),
+         "Repeat all test cases in CSV file indefinitely.")
+        ("reuse-instance", po::value<bool>(&reuse_instance)->zero_tokens(),
+         "Reuse journal instance for all test cases.")
+        ("seed", po::value<unsigned>(&seed)->default_value(0),
+         "Seed for use in random number generator.")
+        ("path", po::value<std::string>(&jtt_path));
+    
 }
 
 bool
 args::parse(int argc, char** argv) // return true if error, false if ok
 {
-    get_jtt_path(argv[0]);
     try
     {
         po::store(po::parse_command_line(argc, argv, _options_descr), _vmap);
@@ -137,20 +138,6 @@
     return false;
 }
 
-void
-args::get_jtt_path(const char* argv0)
-{
-    std::string s(argv0);
-    std::size_t pos = s.rfind("/jtt");
-    assert(pos != std::string::npos);
-    if (pos > 1)
-    {
-        std::size_t start = s.substr(0, 2).compare("./") == 0 ? 2 : 0;
-        std::size_t len = s.size() - start - 3;
-        jtt_path = s.substr(start, len);
-    }
-}
-
 bool
 args::usage() const
 {

Modified: store/trunk/cpp/tests/jrnl/jtt/args.hpp
===================================================================
--- store/trunk/cpp/tests/jrnl/jtt/args.hpp	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/jrnl/jtt/args.hpp	2008-04-22 21:10:46 UTC (rev 1958)
@@ -56,7 +56,6 @@
 
         args(std::string opt_title);
         bool parse(int argc, char** argv); // return true if error, false if ok
-        void get_jtt_path(const char* argv0);
         bool usage() const; // return true
         void print_args() const;
         void print_flags() const;

Modified: store/trunk/cpp/tests/jrnl/jtt/test_mgr.cpp
===================================================================
--- store/trunk/cpp/tests/jrnl/jtt/test_mgr.cpp	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/jrnl/jtt/test_mgr.cpp	2008-04-22 21:10:46 UTC (rev 1958)
@@ -101,7 +101,9 @@
                 for (ji_list_citr jii=_ji_list.begin(); jii!=_ji_list.end(); jii++)
                 {
                     jrnl_init_params::shared_ptr jpp = (*jii)->params();
-                    std::string path = _args.jtt_path.size() ? _args.jtt_path : "./";
+                    std::string path = _args.jtt_path;
+                    if (path.empty()) path = ".";
+                    if (path[path.size()-1] != '/') path += "/";
                     std::ostringstream oss;
                     oss << path << "jfile_chk.py -q";
                     oss << " -d " << jpp->jdir();

Modified: store/trunk/cpp/tests/jrnl/run-journal-tests
===================================================================
--- store/trunk/cpp/tests/jrnl/run-journal-tests	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/jrnl/run-journal-tests	2008-04-22 21:10:46 UTC (rev 1958)
@@ -1,7 +1,5 @@
 #!/bin/sh
 
-. ../setup
-
 fail=0
 num_jrnls=1
 
@@ -9,19 +7,19 @@
 echo
 echo "===== Mode 1: New journal instance, no recover ====="
 rm -rf /tmp/test_0*
-$pwd/jtt/jtt --csv $pwd/jtt/jtt.csv --format-chk --num-jrnls $num_jrnls || fail = 1
+jtt/jtt --path jtt --csv jtt/jtt.csv --format-chk --num-jrnls $num_jrnls || fail=1
 echo
 echo "===== Mode 2: Re-use journal instance, no recover ====="
 rm -rf /tmp/test_0*
-$pwd/jtt/jtt --csv $pwd/jtt/jtt.csv --reuse-instance --format-chk --num-jrnls $num_jrnls || fail = 1
+jtt/jtt --path jtt --csv jtt/jtt.csv --reuse-instance --format-chk --num-jrnls $num_jrnls || fail=1
 echo
 echo "===== Mode 3: New journal instance, recover previous test journal ====="
 rm -rf /tmp/test_0*
-$pwd/jtt/jtt --csv $pwd/jtt/jtt.csv --recover-mode --format-chk --num-jrnls $num_jrnls || fail = 1
+jtt/jtt --path jtt --csv jtt/jtt.csv --recover-mode --format-chk --num-jrnls $num_jrnls || fail=1
 echo
 echo "===== Mode 4: Re-use journal instance, recover previous test journal ====="
 rm -rf /tmp/test_0*
-$pwd/jtt/jtt --csv $pwd/jtt/jtt.csv --reuse-instance --recover-mode --format-chk --num-jrnls $num_jrnls || fail = 1
+jtt/jtt --path jtt --csv jtt/jtt.csv --reuse-instance --recover-mode --format-chk --num-jrnls $num_jrnls || fail=1
 echo
 
 exit $fail

Modified: store/trunk/cpp/tests/persistence.py
===================================================================
--- store/trunk/cpp/tests/persistence.py	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/persistence.py	2008-04-22 21:10:46 UTC (rev 1958)
@@ -420,16 +420,6 @@
         self.channel = self.client.channel(1)
         self.channel.session_open()
 
-    def connect_with_retry(self, retry):
-        for r in range(1, retry + 1):
-            try:
-                self.connect()
-                return
-            except socket.error, e:
-                print "Failed to connect[%s], retrying (%s of %s)..." % (e, r, retry)
-                sleep(1)
-        self.connect()
-
     def run(self, args=sys.argv[1:]):
         try:
             opts, extra = getopt(args, "r:s:e:b:p:h", ["retry=", "spec=", "errata=", "broker=", "phase=", "help"])
@@ -447,10 +437,8 @@
 
         if not phase: self._die("please specify the phase to run")    
         phase = "phase%d" % phase
+        self.connect()
 
-        if retry > 0: self.connect_with_retry(retry)
-        else: self.connect()
-
         try:
             getattr(self, phase)()
             print phase, "succeeded"

Added: store/trunk/cpp/tests/run_test
===================================================================
--- store/trunk/cpp/tests/run_test	                        (rev 0)
+++ store/trunk/cpp/tests/run_test	2008-04-22 21:10:46 UTC (rev 1958)
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# Set up environment and run a test executable or script.
+#
+# Output nothing if test passes, show the output if it fails and
+# leave output in <test>.log for examination.  
+#
+# If qpidd.port exists run test with QPID_PORT=`cat qpidd.port`
+# 
+# If $VALGRIND if is set run under valgrind. If there are valgrind
+# erros show valgrind output, also leave it in <test>.valgrind for
+# examination.
+#
+
+source `dirname $0`/vg_check
+
+# Export variables from makefile.
+export VALGRIND srcdir
+
+# Export QPID_PORT if qpidd.port exists.
+test -f qpidd.port && export QPID_PORT=`cat qpidd.port`
+
+# Avoid silly libtool error messages if these are not defined
+test -z "$LC_ALL" && export LC_ALL=
+test -z "$LC_CTYPE" && export LC_CTYPE=
+test -z "$LC_COLLATE" && export LC_COLLATE=
+test -z "$LC_MESSAGES" && export LC_MESSAGES=
+
+VG_LOG="$1.vglog"
+rm -f $VG_LOG
+
+if grep -l "^# Generated by .*libtool" "$1" >/dev/null 2>&1; then
+    # This is a libtool "executable". Valgrind it if VALGRIND specified.
+    test -n "$VALGRIND" && VALGRIND="$VALGRIND --log-file-exactly=$VG_LOG --"
+    # Hide output unless there's an error.
+    libtool --mode=execute $VALGRIND "$@" 2>&1 || ERROR=$?
+    test -n "$VALGRIND" && vg_check
+else
+    # This is a non-libtool shell script, just execute it.
+    export VALGRIND srcdir
+    exec "$@"
+fi
+
+if test -z "$ERROR"; then
+    # Clean up logs if there was no error.
+    rm -f $VG_LOG 
+    exit 0
+else
+    exit $ERROR
+fi


Property changes on: store/trunk/cpp/tests/run_test
___________________________________________________________________
Name: svn:executable
   + *

Deleted: store/trunk/cpp/tests/setup
===================================================================
--- store/trunk/cpp/tests/setup	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/setup	2008-04-22 21:10:46 UTC (rev 1958)
@@ -1,74 +0,0 @@
-# -*- sh -*-
-
-test "$VERBOSE" = yes && set -x
-
-pwd=`pwd`
-t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
-pid=0
-test -z "$TEST_DEBUG" &&
-trap 's=$?;test $pid = 0||kill -2 $pid;cd "$pwd" && rm -rf $t0 && exit $s' 0
-test -z "$TEST_DEBUG" && trap '(exit $?); exit $?' 1 2 13 15
-
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-
-gen_supp=--gen-suppressions=all
-# This option makes valgrind significantly slower.
-full_leak_check=--leak-check=full
-
-vg_options="
-  --suppressions=$abs_srcdir/.vg-supp
-  --num-callers=25
-  --demangle=yes
-  --track-fds=yes
-  $full_leak_check
-  $gen_supp
-  "
-# configure tests for the existence of valgrind.
-# If it's not available, then make $vg and vg_check no-ops.
-if test x$VALGRIND = x; then
-  vg=
-else
-  vg="libtool --mode=execute valgrind `echo $vg_options` --"
-fi
-
-vg_leak_check()
-{
-  local file=$1
-  local fail
-  # If we detect a leak, dump all output to stderr.
-  grep -E '^==[0-9]+== +definitely lost: [^0]' $file \
-      && { fail=1; cat $file 1>&2;
-           echo "found memory leaks (see log file, $file); see above" 1>&2; }
-  test "$fail" = ''
-}
-
-
-# Ensure 1) that there is an ERROR SUMMARY line, and
-# 2) that the number of errors is 0.
-# An offending line looks like this:
-# ==29302== ERROR SUMMARY: 4 errors from 2 contexts (suppressed: 16 from 5)
-vg_error_check()
-{
-  local file=$1
-  local fail
-  # If we detect a leak, dump all output to stderr.
-  grep -E '^==[0-9]+== ERROR SUMMARY:' $file > /dev/null \
-      || { fail=1; cat $file 1>&2;
-           echo "no valgrind ERROR SUMMARY line in $file" 1>&2; }
-  if test "$fail" = ''; then
-    grep -E '^==[0-9]+== ERROR SUMMARY: [^0] ' $file \
-      && { fail=1; cat $file 1>&2;
-	   echo "valgrind reported errors in $file; see above" 1>&2; }
-  fi
-  test "$fail" = ''
-}
-
-vg_check()
-{
-  local file=$1
-  if test x$VALGRIND != x; then
-    vg_error_check $file && vg_leak_check $file
-  fi
-}

Added: store/trunk/cpp/tests/start_broker
===================================================================
--- store/trunk/cpp/tests/start_broker	                        (rev 0)
+++ store/trunk/cpp/tests/start_broker	2008-04-22 21:10:46 UTC (rev 1958)
@@ -0,0 +1,5 @@
+#!/bin/sh
+QPIDD=$QPID_DIR/cpp/src/qpidd
+rm -f qpidd.vglog qpidd.log
+test -n "$VALGRIND" && VALGRIND="$VALGRIND --log-file-exactly=qpidd.vglog --"
+exec libtool --mode=execute $VALGRIND $QPIDD --daemon --port=0 --log-output qpidd.log "$@" > qpidd.port


Property changes on: store/trunk/cpp/tests/start_broker
___________________________________________________________________
Name: svn:executable
   + *

Added: store/trunk/cpp/tests/stop_broker
===================================================================
--- store/trunk/cpp/tests/stop_broker	                        (rev 0)
+++ store/trunk/cpp/tests/stop_broker	2008-04-22 21:10:46 UTC (rev 1958)
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Stop the broker, check for errors.
+# 
+export QPID_PORT=`cat qpidd.port`
+QPIDD=$QPID_DIR/cpp/src/qpidd
+rm -f qpidd.port
+
+$QPIDD --quit || ERROR=$?
+
+# Check qpidd.log.
+grep -a 'warning\|error\|critical' qpidd.log && {
+    echo "WARNING: Suspicious broker log entries in qpidd.log, above."
+}
+
+# Check valgrind log.
+if test -n "$VALGRIND"; then
+    source `dirname $0`/vg_check
+    vg_check qpidd.vglog
+fi
+
+exit $ERROR


Property changes on: store/trunk/cpp/tests/stop_broker
___________________________________________________________________
Name: svn:executable
   + *

Modified: store/trunk/cpp/tests/system_test.sh
===================================================================
--- store/trunk/cpp/tests/system_test.sh	2008-04-22 19:08:30 UTC (rev 1957)
+++ store/trunk/cpp/tests/system_test.sh	2008-04-22 21:10:46 UTC (rev 1958)
@@ -21,74 +21,33 @@
 #
 # The GNU Lesser General Public License is available in the file COPYING.
 
-if ! test -d "$QPID_DIR" ; then 
-    echo "WARNING: QPID_DIR is not set skipping system tests."
-    echo "To enable system tests run ./configure --with-qpid-checkout."
-    exit
-fi
+error() { echo $*; exit 1; }
 
-WORKING_DIR=/tmp
-QPIDD=$QPID_DIR/cpp/src/qpidd
-     
-if test "$VERBOSE" = yes; then
-  set -x
-  $QPIDD --version
-fi
-
-. $abs_srcdir/setup
-
 # Make sure $QPID_DIR contains what we need.
+test -d "$QPID_DIR" || error "WARNING: QPID_DIR is not set skipping system tests."
 xml_spec=$QPID_DIR/specs/amqp.0-10-preview.xml
-test -f $xml_spec || {
-    echo "$xml_spec or $spec_errata or $dtx_preview not found: invalid \$QPID_DIR ?"; exit 1; }
-
-export DB_HOME=dbdata
+test -f $xml_spec || error "$xml_spec or $spec_errata or $dtx_preview not found: invalid \$QPID_DIR ?"
 export PYTHONPATH=$QPID_DIR/python
-# Set up working dir for test
-if [ -d ${WORKING_DIR}/rhm ]; then
-    rm -rf ${WORKING_DIR}/rhm/*
-else
-    mkdir -p ${WORKING_DIR}/rhm
-fi
-mkdir -p $DB_HOME || framework_failure=1
 
-if test $framework_failure = 1; then
-  echo "$0: failure in testing framework" 1>&2
-  (exit 1); exit 1
-fi
+# Create a temporary directory for store data.
+export TMPDIR=`mktemp -d` || error "Can't create temporary directory."
+echo "Using directory $TMPDIR"
 
 fail=0
 
-let sync=0
-JRNLFLAGS=''
-while ((sync <= 1)); do
-    echo
-    if ((sync == 1)); then
-        JRNLFLAGS="--store-directory ${WORKING_DIR} --store-async yes --store-force yes"
-        mode='jrnl'
-        echo 'Journal (AIO) persistence...'
-    else
-        JRNLFLAGS="--store-directory ${WORKING_DIR} --store-async no --store-force yes"
-        mode='bdb'
-        echo 'BDB persistence...'
-    fi
+# Run the tests with a given set of flags
+run_tests() {
     for p in `seq 1 8`; do
-        log="$abs_srcdir/vg-log.$mode.$p"
-        #echo "$vg $QPIDD --data dir "" --load-module $LIBBDBSTORE --auth no $JRNLFLAGS"
-        $vg $QPIDD --data-dir "" --load-module $LIBBDBSTORE --auth no $JRNLFLAGS >> "$abs_srcdir/qpid.log" 2> $log & pid=$!
-        sleep 5
-
-        echo phase $p...
-        pwd
-        python "$abs_srcdir/persistence.py" -s "$xml_spec" -p $p -r 3 || fail=1
-        sleep 1
-        kill -SIGINT $pid || { echo process already died; cat qpid.log ; fail=1; }
-        wait $pid || { echo "$vg $QPIDD returned with exit code $?."; fail=1; }
-
-        vg_check $log || fail=1
+	$abs_srcdir/start_broker "$@" --load-module=$LIBBDBSTORE --data-dir=$TMPDIR  --auth=no  --store-force=yes || return 1
+	python "$abs_srcdir/persistence.py" -s "$xml_spec" -b localhost:`cat qpidd.port` -p $p -r 3 || fail=1; 
+	$abs_srcdir/stop_broker
     done
-    ((sync++))
-done
-pid=0
+}
 
-(exit $fail); exit $fail
+echo 'Journal (AIO) persistence...'
+run_tests --store-async yes
+echo 'BDB persistence...'
+run_tests --store-async no
+
+test "$fail" = 0 && rm -rf $WORKING_DIR
+exit $fail

Added: store/trunk/cpp/tests/vg_check
===================================================================
--- store/trunk/cpp/tests/vg_check	                        (rev 0)
+++ store/trunk/cpp/tests/vg_check	2008-04-22 21:10:46 UTC (rev 1958)
@@ -0,0 +1,23 @@
+# Check for valgrind errors. Sourced by test scripts.
+
+vg_failed() {
+    cat $VG_LOG 1>&2
+    echo $* 1>&2
+    exit 1
+}
+
+vg_check()
+{
+    test -z "$1" || VG_LOG=$1
+    test -f $VG_LOG || vg_failed Valgrind log file $VG_LOG missing.
+    # Ensure there is an ERROR SUMMARY line.
+    grep -E '^==[0-9]+== ERROR SUMMARY:' $VG_LOG > /dev/null || \
+	vg_failed "No valgrind ERROR SUMMARY line in $$vg_failed."
+    # Ensure that the number of errors is 0.
+    grep -E '^==[0-9]+== ERROR SUMMARY: [^0]' $VG_LOG > /dev/null && \
+	vg_failed "Valgrind reported errors in $vg_out; see above." 
+    # Check for leaks.
+    grep -E '^==[0-9]+== +.* lost: [^0]' $VG_LOG && \
+	vg_failed "Found memory leaks (see log file, $VG_LOG); see above."
+    true
+}




More information about the rhmessaging-commits mailing list