1 Star 0 Fork 1

shitou7630/gpsd

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
valgrind-audit.py 3.04 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/env python3
#
# This file is Copyright 2010 by the GPSD project
# SPDX-License-Identifier: BSD-2-clause
#
# This code runs compatibly under Python 2 and 3.x for x >= 2.
# Preserve this property!
"""
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.
"""
from __future__ import absolute_import, print_function, division
import sys
import 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:
# vim: set expandtab shiftwidth=4
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/shitou7630/gpsd.git
[email protected]:shitou7630/gpsd.git
shitou7630
gpsd
gpsd
master

搜索帮助