summaryrefslogtreecommitdiff
path: root/cpp/README-dev
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-01-23 15:12:27 +0000
committerGordon Sim <gsim@apache.org>2007-01-23 15:12:27 +0000
commitb076114507d5c838ecf3d10f1f2dbea78a35f139 (patch)
tree5c0207d771622cf4c4f26a29ab1433eaed131df4 /cpp/README-dev
parent25a3107550f93fc45002ddd2f6c173893877c649 (diff)
downloadqpid-python-b076114507d5c838ecf3d10f1f2dbea78a35f139.tar.gz
Patch from Jim Meyering (jim@meyering.net) submitted on dev list.
Instrument all tests so that they are run via valgrind: check for both errors and leaks. * configure.ac: Add new configure options: --enable-valgrind and --disable-valgrind. For now, the latter is the default. * README-dev: Document (and recommend) --enable-valgrind. * tests/.vg-supp: Add many more, from Gordon Sim for FC5. * configure.ac: Check for valgrind. * tests/Makefile.am (TESTS_ENVIRONMENT): Export VALGRIND. * tests/setup: New file. * tests/run-unit-tests: Use new "setup" file. Invoke DllPlugInTester via $vg (aka valgrind). Refer to the source directory using $pwd, since we're now running from a temporary subdirectory. * tests/run-python-tests: Remove traps. That is now done by "setup". [VERBOSE]: Print qpidd --version. Invoke qpidd via $vg and its absolute name. Add a kludgey "sleep 3", because it can take a while for libtool to start valgrind to start qpidd, in the background. Ideally, the python script would simply sleep-0.3-and-retry for a couple seconds, upon failure of the initial connection attempt. * tests/.vg-supp: New file, exempting known leaks on Debian/unstable. Some of these leaks appear to be legitimate. * tests/Makefile.am (EXTRA_DIST): Add .vg-supp and setup. * qpid-autotools-install (usage): Add a missing backslash. Fix "make distcheck" failure. * docs/api/Makefile.am (EXTRA_DIST): Add user.doxygen git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@499049 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/README-dev')
-rw-r--r--cpp/README-dev25
1 files changed, 21 insertions, 4 deletions
diff --git a/cpp/README-dev b/cpp/README-dev
index 577eca452b..108e1f4b1f 100644
--- a/cpp/README-dev
+++ b/cpp/README-dev
@@ -6,7 +6,7 @@ sudo cp /usr/share/aclocal/pkg.m4 `aclocal --print-ac-dir`
== Prerequisites ==
If you have taken the sources from SVN you will need the following
-packages (or later)
+packages (or later)
We prefer to avoid spending time accommodating older versions of these
packages, so please make sure that you have the latest stable version.
@@ -15,7 +15,7 @@ packages, so please make sure that you have the latest stable version.
* GNU make <http://www.gnu.org/software/make/>
* autoconf <http://www.gnu.org/software/autoconf/>
* automake <http://www.gnu.org/software/automake/>
- * cppunit <http://cppunit.sourceforge.net>
+ * cppunit <http://cppunit.sourceforge.net>
* help2man <http://www.gnu.org/software/help2man/>
* libtool <http://www.gnu.org/software/libtool/>
* pkgconfig <http://pkgconfig.freedesktop.org/wiki/> (aka pkg-config)
@@ -105,14 +105,31 @@ for the most common development tasks will be scripted and/or
simplified and this README will be updated accordingly.
Before building a fresh checkout do:
- ./bootstrap
- ./configure
+
+ ./bootstrap
+ ./configure
This generates config, makefiles and the like - check the script for
details. You only need to do this once, "make" will keep everything up
to date thereafter (including re-generating configuration & Makefiles
if the automake templates change etc.)
+If you are developing code yourself, or if you want to help
+us keep the code as tight and robust as possible, consider enabling
+the use of valgrind. If you configure like this:
+
+ ./configure --enable-valgrind
+
+that will arrange (assuming you have valgrind installed) for "make check"
+to run tests via valgrind. That makes the tests run more slowly, but
+helps detect certain types of bugs, as well as memory leaks. If you run
+"make check" and valgrind detects a leak that is not listed as being
+"ignorable-for-now", the test script in question will fail. However,
+recording whether a leak is ignorable is not easy, when the stack
+signature, libraries, compiler, O/S, architecture, etc., may all vary,
+so if you see a new leak, try to figure out if it's one you can fix
+before adding it to the list.
+
To build and test everything:
make
make check