Tests can skip by exiting with 99; fix eigen test failure

This allows (and changes the current examples) to exit with status 99 to
skip a test instead of outputting a special string ("NumPy missing").

This also fixes the eigen test, which currently fails when eigen
headers are available but NumPy is not, to skip instead of failing when
NumPy isn't available.
This commit is contained in:
Jason Rhinelander 2016-07-08 17:44:12 -04:00
parent 5ba89c340c
commit 7de9f6c72d
4 changed files with 19 additions and 11 deletions

View File

@ -11,7 +11,11 @@ from example import sparse_r, sparse_c
from example import sparse_passthrough_r, sparse_passthrough_c
from example import double_row, double_col
from example import double_mat_cm, double_mat_rm
import numpy as np
try:
import numpy as np
except ImportError:
# NumPy missing: skip test
exit(99)
ref = np.array(
[[0, 3, 0, 0, 0, 11],

View File

@ -7,8 +7,8 @@ import example
try:
import numpy as np
except ImportError:
print('NumPy missing')
exit(0)
# NumPy missing: skip test
exit(99)
from example import vectorized_func
from example import vectorized_func2

View File

@ -8,8 +8,8 @@ from example import Matrix
try:
import numpy as np
except ImportError:
print('NumPy missing')
exit(0)
# NumPy missing: skip test
exit(99)
m = Matrix(5, 5)

View File

@ -52,16 +52,20 @@ if len(sys.argv) == 3 and sys.argv[1] == '--relaxed':
relaxed = True
name = sys.argv[1]
output_bytes = subprocess.check_output([sys.executable, name + ".py"],
try:
output_bytes = subprocess.check_output([sys.executable, name + ".py"],
stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
if e.returncode == 99:
print('Test "%s" could not be run.' % name)
exit(0)
else:
raise
output = sanitize(output_bytes.decode('utf-8'))
reference = sanitize(open(name + '.ref', 'r').read())
if 'NumPy missing' in output:
print('Test "%s" could not be run.' % name)
exit(0)
elif output == reference:
if output == reference:
print('Test "%s" succeeded.' % name)
exit(0)
else: