From faf2e40cab713d65f9e114363fc5666659ea1e51 Mon Sep 17 00:00:00 2001 From: Robbie Harwood Date: Oct 02 2018 15:05:54 +0000 Subject: Check for test-relevant executables early in suite This prevents, for instance, mysterious failures when valgrind isn't installed. Signed-off-by: Robbie Harwood --- diff --git a/tests/runtests.py b/tests/runtests.py index 7af24cf..4150543 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -4,12 +4,21 @@ import argparse import importlib import signal +import subprocess import sys import traceback import testlib from testlib import * +def check_exec(name): + env = {'PATH': '/sbin:/bin:/usr/sbin:/usr/bin'} + ret = subprocess.call(["which", name], stdout=subprocess.DEVNULL, env=env) + if ret != 0: + print(f"Executable '{name}' not found in {env['PATH']}", + file=sys.stderr) + exit(1) + def parse_args(): parser = argparse.ArgumentParser(description='GSS-Proxy Tests Environment') parser.add_argument('--path', default='%s/testdir' % os.getcwd(), @@ -40,6 +49,11 @@ def parse_args(): def runtests_main(testfiles): args = parse_args() + for e in ["bash", "pkg-config", "zcat", "kinit", "krb5kdc", "kdb5_util", + "kadmin.local", "kdb5_ldap_util", "slapd", "slapadd", + "ldapmodify", "valgrind"]: + check_exec(e) + testdir = args['path'] if os.path.exists(testdir): shutil.rmtree(testdir)