Pillow/winbuild/test.py

46 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
import glob
import os
import subprocess
import sys
from config import VIRT_BASE, X64_EXT, pythons
def test_one(params):
python, architecture = params
try:
print("Running: %s, %s" % params)
command = [
r"{}\{}{}\Scripts\python.exe".format(VIRT_BASE, python, architecture),
"test-installed.py",
"--processes=-0",
"--process-timeout=30",
]
command.extend(glob.glob("Tests/test*.py"))
proc = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
(trace, stderr) = proc.communicate()
status = proc.returncode
print("Done with {}, {} -- {}".format(python, architecture, status))
return (python, architecture, status, trace)
except Exception as msg:
print("Error with {}, {}: {}".format(python, architecture, msg))
return (python, architecture, -1, str(msg))
if __name__ == "__main__":
os.chdir("..")
matrix = [
(python, architecture) for python in pythons for architecture in ("", X64_EXT)
]
results = map(test_one, matrix)
for (python, architecture, status, trace) in results:
print("{}{}: {}".format(python, architecture, status and "ERR" or "PASS"))
res = all(status for (python, architecture, status, trace) in results)
sys.exit(res)