#!/usr/bin/env python3 # # Copyright (C) 2019-2020 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import os from sys import exit from stat import S_IXOTH from subprocess import Popen, PIPE success = True for root, dirs, files in os.walk('/usr/libexec/vyos/tests/smoke'): for name in files: test_file = os.path.join(root, name) mode = os.stat(test_file).st_mode if name.startswith("test_") and mode & S_IXOTH: print('Running Testcase: ' + test_file) process = Popen([test_file], stdout=PIPE) (output, err) = process.communicate() exit_code = process.wait() # We do not want an instant fail - other tests should be run, too if exit_code != 0: success = False if success: exit(0) print("ERROR: One or more tests failed!") exit(1)