Skip to content
Snippets Groups Projects
Commit 1fd7f9f6 authored by Simon McVittie's avatar Simon McVittie
Browse files

container-runtime: Don't fail testing if libgbm.so.1 is incomplete


We currently use Debian 10 and Steam Runtime 2 to smoke-test runtimes,
but those have an older version of libgbm.so.1 than the one that will
"naturally" be assumed by `steamwebhelper` when compiled on
Steam Runtime 3 'sniper'.

We unconditionally take libgbm.so.1 from the host system because it must
be kept in lockstep with the rest of Mesa, so any time we are checking
the ABI of libgbm.so.1 in detail, we will need to be prepared to ignore
certain missing symbols. In practice, `steamwebhelper` does not use this
specific symbol, so it's OK.

Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
parent 19a5bfd9
No related branches found
No related tags found
1 merge request!779container-runtime: Don't fail testing if libgbm.so.1 is incomplete
Pipeline #114419 passed
...@@ -560,19 +560,7 @@ class TestPressureVessel(unittest.TestCase): ...@@ -560,19 +560,7 @@ class TestPressureVessel(unittest.TestCase):
self.assertIn(multiarch, parsed['architectures']) self.assertIn(multiarch, parsed['architectures'])
arch_info = parsed['architectures'][multiarch] arch_info = parsed['architectures'][multiarch]
library_issues = set()
with self.catch(
'per-architecture information',
diagnostic=arch_info,
arch=arch,
):
self.assertTrue(arch_info['can-run'])
self.assertEqual([], arch_info['library-issues-summary'])
# Graphics driver support depends on the host system, so we
# don't assert that everything is fine, only that we have
# the information.
self.assertIn('graphics-details', arch_info)
self.assertIn('glx/gl', arch_info['graphics-details'])
for soname, details in arch_info['library-details'].items(): for soname, details in arch_info['library-details'].items():
with self.catch( with self.catch(
...@@ -582,15 +570,42 @@ class TestPressureVessel(unittest.TestCase): ...@@ -582,15 +570,42 @@ class TestPressureVessel(unittest.TestCase):
soname=soname, soname=soname,
): ):
self.assertIn('path', details) self.assertIn('path', details)
self.assertEqual( missing_symbols = details.get('missing-symbols', [])
[], issues = details.get('issues', [])
details.get('missing-symbols', []),
) if soname == 'libgbm.so.1':
# We still test on Steam Runtime 2 and Debian 10,
# which have a sufficiently old Mesa version that
# they do not have all the symbols we expect to find
# in libgbm.so.1.
library_issues |= set(issues)
issues = list(set(issues) - set(['missing-symbols']))
missing_symbols = list(
set(missing_symbols) - set(['gbm_format_get_name'])
)
self.assertEqual([], missing_symbols)
self.assertEqual( self.assertEqual(
[], [],
details.get('misversioned-symbols', []), details.get('misversioned-symbols', []),
) )
self.assertEqual([], details.get('issues', [])) self.assertEqual([], issues)
with self.catch(
'per-architecture information',
diagnostic=arch_info,
arch=arch,
):
self.assertTrue(arch_info['can-run'])
self.assertEqual(
library_issues,
set(arch_info['library-issues-summary']),
)
# Graphics driver support depends on the host system, so we
# don't assert that everything is fine, only that we have
# the information.
self.assertIn('graphics-details', arch_info)
self.assertIn('glx/gl', arch_info['graphics-details'])
# Locale support depends on the host system, so we don't assert # Locale support depends on the host system, so we don't assert
# that everything is fine, only that we have the information. # that everything is fine, only that we have the information.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment