| Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 1 | from oeqa.runtime.case import OERuntimeTestCase | 
 | 2 | from oeqa.core.decorator.depends import OETestDepends | 
 | 3 | from oeqa.core.decorator.oeid import OETestID | 
 | 4 | from oeqa.core.decorator.data import skipIfNotInDataVar | 
 | 5 | from oeqa.runtime.decorator.package import OEHasPackage | 
 | 6 |  | 
 | 7 | class MultilibTest(OERuntimeTestCase): | 
 | 8 |  | 
 | 9 |     def archtest(self, binary, arch): | 
 | 10 |         """ | 
 | 11 |         Check that ``binary`` has the ELF class ``arch`` (e.g. ELF32/ELF64). | 
 | 12 |         """ | 
 | 13 |  | 
 | 14 |         status, output = self.target.run('readelf -h %s' % binary) | 
 | 15 |         self.assertEqual(status, 0, 'Failed to readelf %s' % binary) | 
 | 16 |  | 
 | 17 |         l = [l.split()[1] for l in output.split('\n') if "Class:" in l] | 
 | 18 |         if l: | 
 | 19 |             theclass = l[0] | 
 | 20 |         else: | 
 | 21 |             self.fail('Cannot parse readelf. Output:\n%s' % output) | 
 | 22 |  | 
 | 23 |         msg = "%s isn't %s (is %s)" % (binary, arch, theclass) | 
 | 24 |         self.assertEqual(theclass, arch, msg=msg) | 
 | 25 |  | 
 | 26 |     @OETestID(1593) | 
 | 27 |     @skipIfNotInDataVar('MULTILIBS', 'multilib:lib32', | 
 | 28 |                         "This isn't a multilib:lib32 image") | 
 | 29 |     @OETestDepends(['ssh.SSHTest.test_ssh']) | 
 | 30 |     def test_check_multilib_libc(self): | 
 | 31 |         """ | 
 | 32 |         Check that a multilib image has both 32-bit and 64-bit libc in. | 
 | 33 |         """ | 
 | 34 |         self.archtest("/lib/libc.so.6", "ELF32") | 
 | 35 |         self.archtest("/lib64/libc.so.6", "ELF64") | 
 | 36 |  | 
 | 37 |     @OETestID(279) | 
 | 38 |     @OETestDepends(['multilib.MultilibTest.test_check_multilib_libc']) | 
 | 39 |     @OEHasPackage(['lib32-connman']) | 
 | 40 |     def test_file_connman(self): | 
 | 41 |         self.archtest("/usr/sbin/connmand", "ELF32") |