diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2017-08-16 14:19:17 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-16 14:19:17 -0500 |
commit | 26c79664d2edd48e1777cc4b31ecb952e2ec30d5 (patch) | |
tree | 0dfe2a03d716fbd8116d3d02150dc453bf741a26 /numpy/testing/nose_tools/noseclasses.py | |
parent | 663094532de48e131793faaa0ba06eb7c051ab47 (diff) | |
parent | 3deb8fa4f4d25e434c86188593f95dfc2fed041c (diff) | |
download | numpy-26c79664d2edd48e1777cc4b31ecb952e2ec30d5.tar.gz |
Merge pull request #9574 from pv/fpflag
BUG: deal with broken hypot() for MSVC on win32
Diffstat (limited to 'numpy/testing/nose_tools/noseclasses.py')
-rw-r--r-- | numpy/testing/nose_tools/noseclasses.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/numpy/testing/nose_tools/noseclasses.py b/numpy/testing/nose_tools/noseclasses.py index 2f5d05004..9756b9b45 100644 --- a/numpy/testing/nose_tools/noseclasses.py +++ b/numpy/testing/nose_tools/noseclasses.py @@ -7,6 +7,7 @@ from __future__ import division, absolute_import, print_function import os +import sys import doctest import inspect @@ -317,6 +318,31 @@ class KnownFailurePlugin(ErrorClassPlugin): KnownFailure = KnownFailurePlugin # backwards compat +class FPUModeCheckPlugin(Plugin): + """ + Plugin that checks the FPU mode before and after each test, + raising failures if the test changed the mode. + """ + + def prepareTestCase(self, test): + from numpy.core.multiarray_tests import get_fpu_mode + + def run(result): + old_mode = get_fpu_mode() + test.test(result) + new_mode = get_fpu_mode() + + if old_mode != new_mode: + try: + raise AssertionError( + "FPU mode changed from {0:#x} to {1:#x} during the " + "test".format(old_mode, new_mode)) + except AssertionError: + result.addFailure(test, sys.exc_info()) + + return run + + # Class allows us to save the results of the tests in runTests - see runTests # method docstring for details class NumpyTestProgram(nose.core.TestProgram): |