diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-08-19 01:35:19 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-08-19 01:35:19 -0400 |
commit | 52e6637cc94261b2bc32c81e493e8b0b0742756f (patch) | |
tree | 881b4409f35901630ea9e7448e76ed7b3088449f /valgrind-audit.py.in | |
parent | 6c19639b6f8c0e465ae1df5138f0948f1fe8d839 (diff) | |
download | gpsd-52e6637cc94261b2bc32c81e493e8b0b0742756f.tar.gz |
Update the release procedure. Re-enable valgrind.
Diffstat (limited to 'valgrind-audit.py.in')
-rw-r--r-- | valgrind-audit.py.in | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/valgrind-audit.py.in b/valgrind-audit.py.in new file mode 100644 index 00000000..3f76e813 --- /dev/null +++ b/valgrind-audit.py.in @@ -0,0 +1,101 @@ +#!@PYTHON@ +# +# This is a valgrind torture test for the gpsd daemon. +# It's not really expected to spot anything as long as we aren't using +# malloc and friends in the daemon. +# +# This file is Copyright (c) 2010 by the GPSD project +# BSD terms apply: see the file COPYING in the distribution root for details. +# +import sys, gps.fake + +debuglevel=1 + +invocation="valgrind --tool=memcheck --gen-suppressions=yes --leak-check=yes --suppressions=valgrind-suppressions" +test = gps.fake.TestSession(prefix=invocation, options="-D %d" % debuglevel) +test.progress = sys.stderr.write + +try: + test.spawn() + print "\n*** Test #1: Normal single-client-session behavior." + print "**** Add a GPS.\n" + gps1 = test.gps_add("test/daemon/bu303-moving.log") + + print "\n**** Add and remove a client.\n" + c1 = test.client_add("w\n") + test.gather(3) + test.client_remove(c1) + + print "\n**** Remove the GPS." + test.gps_remove(gps1) + print "*** Test #1 complete.\n" + test.wait(3) + + ###################################################################### + + print "\n*** Test #2: Successive non-overlapping client sessions." + print "**** Add a GPS.\n" + gps1 = test.gps_add("test/daemon/bu303-climbing.log") + + print "\n**** Add and remove first client.\n" + c1 = test.client_add("w\n") + test.gather(3) + test.client_remove(c1) + test.wait(3) + + print "\n**** Add and remove second client.\n" + c2 = test.client_add("w\n") + test.gather(3) + test.client_remove(c2) + test.wait(3) + + print "\n**** Remove the GPS." + test.gps_remove(gps1) + print "*** Test #2 complete.\n" + test.wait(3) + + ###################################################################### + + print "\n*** Test #3: Overlapping client sessions." + print "**** Add a GPS.\n" + gps1 = test.gps_add("test/daemon/bu303-climbing.log") + + print "\n**** Add first client.\n" + c1 = test.client_add("w\n") + test.gather(2) + print "\n**** Add second client.\n" + c2 = test.client_add("w\n") + test.gather(3) + print "\n**** Remove first client.\n" + test.client_remove(c1) + test.gather(2) + print "\n**** Remove second client.\n" + test.client_remove(c2) + + print "\n**** Remove the GPS." + test.gps_remove(gps1) + print "*** Test #3 complete.\n" + + ###################################################################### + + print "\n*** Test #4: GPS removed while client still active." + print "**** Add a GPS.\n" + gps1 = test.gps_add("test/daemon/bu303-moving.log") + + print "\n**** Add a client.\n" + c1 = test.client_add("w\n") + test.gather(3) + print "\n**** Remove the GPS." + test.gps_remove(gps1) + test.wait(3) + print "\n**** Remove the client.\n" + test.client_remove(c1) + + print "*** Test #4 complete.\n" +finally: + test.cleanup(); + +# The following sets edit modes for GNU EMACS +# Local Variables: +# mode:python +# End: |