85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
import os
|
|
|
|
from numpy.distutils.npy_pkg_config import read_config, parse_flags
|
|
from numpy.testing import temppath, assert_
|
|
|
|
simple = """\
|
|
[meta]
|
|
Name = foo
|
|
Description = foo lib
|
|
Version = 0.1
|
|
|
|
[default]
|
|
cflags = -I/usr/include
|
|
libs = -L/usr/lib
|
|
"""
|
|
simple_d = {'cflags': '-I/usr/include', 'libflags': '-L/usr/lib',
|
|
'version': '0.1', 'name': 'foo'}
|
|
|
|
simple_variable = """\
|
|
[meta]
|
|
Name = foo
|
|
Description = foo lib
|
|
Version = 0.1
|
|
|
|
[variables]
|
|
prefix = /foo/bar
|
|
libdir = ${prefix}/lib
|
|
includedir = ${prefix}/include
|
|
|
|
[default]
|
|
cflags = -I${includedir}
|
|
libs = -L${libdir}
|
|
"""
|
|
simple_variable_d = {'cflags': '-I/foo/bar/include', 'libflags': '-L/foo/bar/lib',
|
|
'version': '0.1', 'name': 'foo'}
|
|
|
|
class TestLibraryInfo:
|
|
def test_simple(self):
|
|
with temppath('foo.ini') as path:
|
|
with open(path, 'w') as f:
|
|
f.write(simple)
|
|
pkg = os.path.splitext(path)[0]
|
|
out = read_config(pkg)
|
|
|
|
assert_(out.cflags() == simple_d['cflags'])
|
|
assert_(out.libs() == simple_d['libflags'])
|
|
assert_(out.name == simple_d['name'])
|
|
assert_(out.version == simple_d['version'])
|
|
|
|
def test_simple_variable(self):
|
|
with temppath('foo.ini') as path:
|
|
with open(path, 'w') as f:
|
|
f.write(simple_variable)
|
|
pkg = os.path.splitext(path)[0]
|
|
out = read_config(pkg)
|
|
|
|
assert_(out.cflags() == simple_variable_d['cflags'])
|
|
assert_(out.libs() == simple_variable_d['libflags'])
|
|
assert_(out.name == simple_variable_d['name'])
|
|
assert_(out.version == simple_variable_d['version'])
|
|
out.vars['prefix'] = '/Users/david'
|
|
assert_(out.cflags() == '-I/Users/david/include')
|
|
|
|
class TestParseFlags:
|
|
def test_simple_cflags(self):
|
|
d = parse_flags("-I/usr/include")
|
|
assert_(d['include_dirs'] == ['/usr/include'])
|
|
|
|
d = parse_flags("-I/usr/include -DFOO")
|
|
assert_(d['include_dirs'] == ['/usr/include'])
|
|
assert_(d['macros'] == ['FOO'])
|
|
|
|
d = parse_flags("-I /usr/include -DFOO")
|
|
assert_(d['include_dirs'] == ['/usr/include'])
|
|
assert_(d['macros'] == ['FOO'])
|
|
|
|
def test_simple_lflags(self):
|
|
d = parse_flags("-L/usr/lib -lfoo -L/usr/lib -lbar")
|
|
assert_(d['library_dirs'] == ['/usr/lib', '/usr/lib'])
|
|
assert_(d['libraries'] == ['foo', 'bar'])
|
|
|
|
d = parse_flags("-L /usr/lib -lfoo -L/usr/lib -lbar")
|
|
assert_(d['library_dirs'] == ['/usr/lib', '/usr/lib'])
|
|
assert_(d['libraries'] == ['foo', 'bar'])
|