tmp
/
pip-install-ghxuqwgs
/numpy_78e94bf2b6094bf9a1f3d92042f9bf46
/numpy
/linalg
/tests
/test_build.py
| from __future__ import division, absolute_import, print_function | |
| from subprocess import call, PIPE, Popen | |
| import sys | |
| import re | |
| import numpy as np | |
| from numpy.linalg import lapack_lite | |
| from numpy.testing import TestCase, dec | |
| from numpy.compat import asbytes_nested | |
| class FindDependenciesLdd(object): | |
| def __init__(self): | |
| self.cmd = ['ldd'] | |
| try: | |
| p = Popen(self.cmd, stdout=PIPE, stderr=PIPE) | |
| stdout, stderr = p.communicate() | |
| except OSError: | |
| raise RuntimeError("command %s cannot be run" % self.cmd) | |
| def get_dependencies(self, lfile): | |
| p = Popen(self.cmd + [lfile], stdout=PIPE, stderr=PIPE) | |
| stdout, stderr = p.communicate() | |
| if not (p.returncode == 0): | |
| raise RuntimeError("failed dependencies check for %s" % lfile) | |
| return stdout | |
| def grep_dependencies(self, lfile, deps): | |
| stdout = self.get_dependencies(lfile) | |
| rdeps = dict([(dep, re.compile(dep)) for dep in deps]) | |
| founds = [] | |
| for l in stdout.splitlines(): | |
| for k, v in rdeps.items(): | |
| if v.search(l): | |
| founds.append(k) | |
| return founds | |
| class TestF77Mismatch(TestCase): | |
| def test_lapack(self): | |
| f = FindDependenciesLdd() | |
| deps = f.grep_dependencies(lapack_lite.__file__, | |
| asbytes_nested(['libg2c', 'libgfortran'])) | |
| self.assertFalse(len(deps) > 1, | |
| """Both g77 and gfortran runtimes linked in lapack_lite ! This is likely to | |
| cause random crashes and wrong results. See numpy INSTALL.txt for more | |
| information.""") | |