|
|
@ -292,88 +292,54 @@ class LinuxlikeTests(unittest.TestCase): |
|
|
|
return line.split('[')[1].split(']')[0] |
|
|
|
return line.split('[')[1].split(']')[0] |
|
|
|
raise RuntimeError('Readelf gave no SONAME.') |
|
|
|
raise RuntimeError('Readelf gave no SONAME.') |
|
|
|
|
|
|
|
|
|
|
|
def test_soname(self): |
|
|
|
def _test_soname_impl(self, libpath, install): |
|
|
|
testdir = os.path.join(self.unit_test_dir, '1 soname') |
|
|
|
testdir = os.path.join(self.unit_test_dir, '1 soname') |
|
|
|
self.init(testdir) |
|
|
|
self.init(testdir) |
|
|
|
self.build() |
|
|
|
self.build() |
|
|
|
|
|
|
|
if install: |
|
|
|
|
|
|
|
self.install() |
|
|
|
|
|
|
|
|
|
|
|
# File without aliases set. |
|
|
|
# File without aliases set. |
|
|
|
nover = os.path.join(self.builddir, 'libnover.so') |
|
|
|
nover = os.path.join(libpath, 'libnover.so') |
|
|
|
self.assertTrue(os.path.exists(nover)) |
|
|
|
self.assertTrue(os.path.exists(nover)) |
|
|
|
self.assertFalse(os.path.islink(nover)) |
|
|
|
self.assertFalse(os.path.islink(nover)) |
|
|
|
self.assertEqual(self.get_soname(nover), 'libnover.so') |
|
|
|
self.assertEqual(self.get_soname(nover), 'libnover.so') |
|
|
|
self.assertEqual(len(glob(nover[:-3] + '*')), 1) |
|
|
|
self.assertEqual(len(glob(nover[:-3] + '*')), 1) |
|
|
|
|
|
|
|
|
|
|
|
# File with version set |
|
|
|
# File with version set |
|
|
|
verset = os.path.join(self.builddir, 'libverset.so') |
|
|
|
verset = os.path.join(libpath, 'libverset.so') |
|
|
|
self.assertTrue(os.path.exists(verset + '.4.5.6')) |
|
|
|
self.assertTrue(os.path.exists(verset + '.4.5.6')) |
|
|
|
self.assertEqual(os.readlink(verset), 'libverset.so.4') |
|
|
|
self.assertEqual(os.readlink(verset), 'libverset.so.4') |
|
|
|
self.assertEqual(self.get_soname(verset), 'libverset.so.4') |
|
|
|
self.assertEqual(self.get_soname(verset), 'libverset.so.4') |
|
|
|
self.assertEqual(len(glob(verset[:-3] + '*')), 3) |
|
|
|
self.assertEqual(len(glob(verset[:-3] + '*')), 3) |
|
|
|
|
|
|
|
|
|
|
|
# File with soversion set |
|
|
|
# File with soversion set |
|
|
|
soverset = os.path.join(self.builddir, 'libsoverset.so') |
|
|
|
soverset = os.path.join(libpath, 'libsoverset.so') |
|
|
|
self.assertTrue(os.path.exists(soverset + '.1.2.3')) |
|
|
|
self.assertTrue(os.path.exists(soverset + '.1.2.3')) |
|
|
|
self.assertEqual(os.readlink(soverset), 'libsoverset.so.1.2.3') |
|
|
|
self.assertEqual(os.readlink(soverset), 'libsoverset.so.1.2.3') |
|
|
|
self.assertEqual(self.get_soname(soverset), 'libsoverset.so.1.2.3') |
|
|
|
self.assertEqual(self.get_soname(soverset), 'libsoverset.so.1.2.3') |
|
|
|
self.assertEqual(len(glob(soverset[:-3] + '*')), 2) |
|
|
|
self.assertEqual(len(glob(soverset[:-3] + '*')), 2) |
|
|
|
|
|
|
|
|
|
|
|
# File with version and soversion set to same values |
|
|
|
# File with version and soversion set to same values |
|
|
|
settosame = os.path.join(self.builddir, 'libsettosame.so') |
|
|
|
settosame = os.path.join(libpath, 'libsettosame.so') |
|
|
|
self.assertTrue(os.path.exists(settosame + '.7.8.9')) |
|
|
|
self.assertTrue(os.path.exists(settosame + '.7.8.9')) |
|
|
|
self.assertEqual(os.readlink(settosame), 'libsettosame.so.7.8.9') |
|
|
|
self.assertEqual(os.readlink(settosame), 'libsettosame.so.7.8.9') |
|
|
|
self.assertEqual(self.get_soname(settosame), 'libsettosame.so.7.8.9') |
|
|
|
self.assertEqual(self.get_soname(settosame), 'libsettosame.so.7.8.9') |
|
|
|
self.assertEqual(len(glob(settosame[:-3] + '*')), 2) |
|
|
|
self.assertEqual(len(glob(settosame[:-3] + '*')), 2) |
|
|
|
|
|
|
|
|
|
|
|
# File with version and soversion set to different values |
|
|
|
# File with version and soversion set to different values |
|
|
|
bothset = os.path.join(self.builddir, 'libbothset.so') |
|
|
|
bothset = os.path.join(libpath, 'libbothset.so') |
|
|
|
self.assertTrue(os.path.exists(bothset + '.1.2.3')) |
|
|
|
self.assertTrue(os.path.exists(bothset + '.1.2.3')) |
|
|
|
self.assertEqual(os.readlink(bothset), 'libbothset.so.1.2.3') |
|
|
|
self.assertEqual(os.readlink(bothset), 'libbothset.so.1.2.3') |
|
|
|
self.assertEqual(os.readlink(bothset + '.1.2.3'), 'libbothset.so.4.5.6') |
|
|
|
self.assertEqual(os.readlink(bothset + '.1.2.3'), 'libbothset.so.4.5.6') |
|
|
|
self.assertEqual(self.get_soname(bothset), 'libbothset.so.1.2.3') |
|
|
|
self.assertEqual(self.get_soname(bothset), 'libbothset.so.1.2.3') |
|
|
|
self.assertEqual(len(glob(bothset[:-3] + '*')), 3) |
|
|
|
self.assertEqual(len(glob(bothset[:-3] + '*')), 3) |
|
|
|
|
|
|
|
|
|
|
|
def test_installed_soname(self): |
|
|
|
def test_soname(self): |
|
|
|
testdir = os.path.join(self.unit_test_dir, '1 soname') |
|
|
|
self._test_soname_impl(self.builddir, False) |
|
|
|
self.init(testdir) |
|
|
|
|
|
|
|
self.build() |
|
|
|
|
|
|
|
self.install() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# File without aliases set. |
|
|
|
|
|
|
|
nover = self.installdir + os.path.join(self.libdir, 'libnover.so') |
|
|
|
|
|
|
|
self.assertTrue(os.path.exists(nover)) |
|
|
|
|
|
|
|
self.assertFalse(os.path.islink(nover)) |
|
|
|
|
|
|
|
self.assertEqual(self.get_soname(nover), 'libnover.so') |
|
|
|
|
|
|
|
self.assertEqual(len(glob(nover[:-3] + '*')), 1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# File with version set |
|
|
|
|
|
|
|
verset = self.installdir + os.path.join(self.libdir, 'libverset.so') |
|
|
|
|
|
|
|
self.assertTrue(os.path.exists(verset + '.4.5.6')) |
|
|
|
|
|
|
|
self.assertEqual(os.readlink(verset), 'libverset.so.4') |
|
|
|
|
|
|
|
self.assertEqual(self.get_soname(verset), 'libverset.so.4') |
|
|
|
|
|
|
|
self.assertEqual(len(glob(verset[:-3] + '*')), 3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# File with soversion set |
|
|
|
|
|
|
|
soverset = self.installdir + os.path.join(self.libdir, 'libsoverset.so') |
|
|
|
|
|
|
|
self.assertTrue(os.path.exists(soverset + '.1.2.3')) |
|
|
|
|
|
|
|
self.assertEqual(os.readlink(soverset), 'libsoverset.so.1.2.3') |
|
|
|
|
|
|
|
self.assertEqual(self.get_soname(soverset), 'libsoverset.so.1.2.3') |
|
|
|
|
|
|
|
self.assertEqual(len(glob(soverset[:-3] + '*')), 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# File with version and soversion set to same values |
|
|
|
|
|
|
|
settosame = self.installdir + os.path.join(self.libdir, 'libsettosame.so') |
|
|
|
|
|
|
|
self.assertTrue(os.path.exists(settosame + '.7.8.9')) |
|
|
|
|
|
|
|
self.assertEqual(os.readlink(settosame), 'libsettosame.so.7.8.9') |
|
|
|
|
|
|
|
self.assertEqual(self.get_soname(settosame), 'libsettosame.so.7.8.9') |
|
|
|
|
|
|
|
self.assertEqual(len(glob(settosame[:-3] + '*')), 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# File with version and soversion set to different values |
|
|
|
def test_installed_soname(self): |
|
|
|
bothset = self.installdir + os.path.join(self.libdir, 'libbothset.so') |
|
|
|
self._test_soname_impl(self.installdir + self.libdir, True) |
|
|
|
self.assertTrue(os.path.exists(bothset + '.1.2.3')) |
|
|
|
|
|
|
|
self.assertEqual(os.readlink(bothset), 'libbothset.so.1.2.3') |
|
|
|
|
|
|
|
self.assertEqual(os.readlink(bothset + '.1.2.3'), 'libbothset.so.4.5.6') |
|
|
|
|
|
|
|
self.assertEqual(self.get_soname(bothset), 'libbothset.so.1.2.3') |
|
|
|
|
|
|
|
self.assertEqual(len(glob(bothset[:-3] + '*')), 3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_compiler_check_flags_order(self): |
|
|
|
def test_compiler_check_flags_order(self): |
|
|
|
''' |
|
|
|
''' |
|
|
|