Tests: move "make test" on macOS and Linux to Python script

This commit is contained in:
Brecht Van Lommel 2019-08-30 14:20:29 +02:00
parent e218d8c24b
commit 464e545c72
4 changed files with 50 additions and 14 deletions

@ -375,7 +375,7 @@ package_archive: .FORCE
# Tests
#
test: .FORCE
cd $(BUILD_DIR) ; ctest . --output-on-failure
python3 ./build_files/utils/make_test.py "$(BUILD_DIR)"
# run pep8 check check on scripts we distribute.
test_pep8: .FORCE

30
build_files/utils/make_test.py Executable file

@ -0,0 +1,30 @@
#!/usr/bin/env python3
#
# "make test" for all platforms, running automated tests.
import argparse
import os
import shutil
import sys
from make_utils import call
# Parse arguments
def parse_arguments():
parser = argparse.ArgumentParser()
parser.add_argument("--ctest-command", default="ctest")
parser.add_argument("build_directory")
return parser.parse_args()
args = parse_arguments()
ctest_command = args.ctest_command
build_dir = args.build_directory
if shutil.which(ctest_command) is None:
sys.stderr.write("ctest not found, can't run tests\n")
sys.exit(1)
# Run tests
os.chdir(build_dir)
call([ctest_command, ".", "--output-on-failure"])

@ -13,6 +13,8 @@ import shutil
import subprocess
import sys
from make_utils import call
# Parse arguments
def parse_arguments():
@ -35,19 +37,6 @@ if shutil.which(svn_command) is None:
sys.stderr.write("svn not found, can't update libraries\n")
sys.exit(1)
# Utility functions
def call(cmd):
print(" ".join(cmd))
# Flush to ensure correct order output on Windows.
sys.stdout.flush()
sys.stderr.flush()
retcode = subprocess.call(cmd)
if retcode != 0:
sys.exit(retcode)
def print_stage(text):
print("")
print(text)

17
build_files/utils/make_utils.py Executable file

@ -0,0 +1,17 @@
#!/usr/bin/env python3
#
# Utility functions for make update and make tests.
import subprocess
import sys
def call(cmd):
print(" ".join(cmd))
# Flush to ensure correct order output on Windows.
sys.stdout.flush()
sys.stderr.flush()
retcode = subprocess.call(cmd)
if retcode != 0:
sys.exit(retcode)