SH-3183 Use valgrind on the library.
Using http_texture_load as the test subject, library looks clean. Did some better shutdown in the program itself and it looks better. Libcurl itself is making a lot of noise. Adapted testrunner to run valgrind as well but the memory allocation tester in the tools themselves grossly interferes with Valgrind operations.master
parent
7010459f04
commit
d45b2e7cae
|
|
@ -269,7 +269,10 @@ int main(int argc, char** argv)
|
|||
<< std::endl;
|
||||
|
||||
// Clean up
|
||||
hr->requestStopThread(NULL);
|
||||
ms_sleep(1000);
|
||||
delete hr;
|
||||
LLCore::HttpRequest::destroyService();
|
||||
term_curl();
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import os
|
|||
import sys
|
||||
import time
|
||||
import select
|
||||
import getopt
|
||||
from threading import Thread
|
||||
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
|
||||
from SocketServer import ThreadingMixIn
|
||||
|
|
@ -152,6 +153,13 @@ class Server(ThreadingMixIn, HTTPServer):
|
|||
allow_reuse_address = False
|
||||
|
||||
if __name__ == "__main__":
|
||||
do_valgrind = False
|
||||
path_search = False
|
||||
options, args = getopt.getopt(sys.argv[1:], "V", ["valgrind"])
|
||||
for option, value in options:
|
||||
if option == "-V" or option == "--valgrind":
|
||||
do_valgrind = True
|
||||
|
||||
# Instantiate a Server(TestHTTPRequestHandler) on the first free port
|
||||
# in the specified port range. Doing this inline is better than in a
|
||||
# daemon thread: if it blows up here, we'll get a traceback. If it blew up
|
||||
|
|
@ -159,10 +167,14 @@ if __name__ == "__main__":
|
|||
# subject test program anyway.
|
||||
httpd, port = freeport(xrange(8000, 8020),
|
||||
lambda port: Server(('127.0.0.1', port), TestHTTPRequestHandler))
|
||||
|
||||
# Pass the selected port number to the subject test program via the
|
||||
# environment. We don't want to impose requirements on the test program's
|
||||
# command-line parsing -- and anyway, for C++ integration tests, that's
|
||||
# performed in TUT code rather than our own.
|
||||
os.environ["LL_TEST_PORT"] = str(port)
|
||||
debug("$LL_TEST_PORT = %s", port)
|
||||
sys.exit(run(server=Thread(name="httpd", target=httpd.serve_forever), *sys.argv[1:]))
|
||||
if do_valgrind:
|
||||
args = ["valgrind", "--log-file=./valgrind.log"] + args
|
||||
path_search = True
|
||||
sys.exit(run(server=Thread(name="httpd", target=httpd.serve_forever), use_path=path_search, *args))
|
||||
|
|
|
|||
|
|
@ -168,7 +168,10 @@ def run(*args, **kwds):
|
|||
# executable passed as our first arg,
|
||||
# - [no e] child should inherit this process's environment.
|
||||
debug("Running %s...", " ".join(args))
|
||||
rc = os.spawnv(os.P_WAIT, args[0], args)
|
||||
if kwds.get("use_path", False):
|
||||
rc = os.spawnvp(os.P_WAIT, args[0], args)
|
||||
else:
|
||||
rc = os.spawnv(os.P_WAIT, args[0], args)
|
||||
debug("%s returned %s", args[0], rc)
|
||||
return rc
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue