summaryrefslogtreecommitdiffstats
path: root/tests/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tests.py')
-rwxr-xr-xtests/tests.py29
1 files changed, 28 insertions, 1 deletions
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(','):