1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
#!/usr/bin/env python
#
# This is a valgrind torture test for the daemon.
#
import sys, gpsfake
debuglevel=1
invocation="valgrind --tool=memcheck --gen-suppressions=yes --leak-check=yes --suppressions=valgrind-suppressions"
test = gpsfake.TestSession(prefix=invocation, options="-D %d" % debuglevel)
test.progress = sys.stderr.write
try:
print "\n*** Test #1: Normal single-client-session behavior."
print "**** Add a GPS.\n"
gps1 = test.gps_add("test/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/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/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/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"
test.cleanup();
finally:
test.killall();
|