From 5a78c0ed852d43f13ffa48f096c0f48367bd1acf Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 2 Jun 2014 14:05:57 -0400 Subject: [PATCH] Add support for socket wrappers if available Signed-off-by: Simo Sorce --- tests/httpd.conf | 1 + tests/tests.py | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/tests/httpd.conf b/tests/httpd.conf index 6b2a4cb..f0c4300 100644 --- a/tests/httpd.conf +++ b/tests/httpd.conf @@ -1,4 +1,5 @@ ServerRoot "${HTTPROOT}" +ServerName localhost Listen ${HTTPADDR}:${HTTPPORT} LoadModule access_compat_module modules/mod_access_compat.so diff --git a/tests/tests.py b/tests/tests.py index cfd63c6..811d31d 100755 --- a/tests/tests.py +++ b/tests/tests.py @@ -39,6 +39,9 @@ def parse_args(): help="Directory in which tests are run") parser.add_argument('--test', default='test1', help="The test to run") + parser.add_argument('--wrappers', default='auto', + choices=['yes', 'no', 'auto'], + help="Run the tests with socket wrappers") return vars(parser.parse_args()) @@ -167,6 +170,28 @@ Alias /sp ${HTTPDIR}/sp with open(httpdir + '/sp/index.html', 'w') as f: f.write(index) + +def try_wrappers(base, wrappers): + if wrappers == 'no': + return {} + + pkgcfg = subprocess.Popen(['pkg-config', '--exists', 'socket_wrapper']) + pkgcfg.wait() + if pkgcfg.returncode != 0: + if wrappers == 'auto': + return {} + else: + raise ValueError('Socket Wrappers not available') + + wrapdir = os.path.join(base, 'wrapdir') + os.mkdir(wrapdir) + + wenv = {'LD_PRELOAD': 'libsocket_wrapper.so', + 'SOCKET_WRAPPER_DIR': wrapdir, + 'SOCKET_WRAPPER_DEFAULT_IFACE': '9'} + + return wenv + if __name__ == '__main__': args = parse_args() @@ -178,7 +203,9 @@ if __name__ == '__main__': options = setup_test(args['path'], args['test']) basedir = options['basedir'] - env={'PYTHONPATH':'./'} + env = try_wrappers(basedir, args['wrappers']) + env['PYTHONPATH'] = './' + srvs = [] try: for h in options['servers'].split(','): -- 2.20.1