diff options
Diffstat (limited to 'scripts/lib/compatlayer/cases/bsp.py')
-rw-r--r-- | scripts/lib/compatlayer/cases/bsp.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/lib/compatlayer/cases/bsp.py b/scripts/lib/compatlayer/cases/bsp.py index 90256750af..43efae406f 100644 --- a/scripts/lib/compatlayer/cases/bsp.py +++ b/scripts/lib/compatlayer/cases/bsp.py | |||
@@ -25,6 +25,32 @@ class BSPCompatLayer(OECompatLayerTestCase): | |||
25 | msg="Layer %s modified machine %s -> %s" % \ | 25 | msg="Layer %s modified machine %s -> %s" % \ |
26 | (self.tc.layer['name'], self.td['bbvars']['MACHINE'], machine)) | 26 | (self.tc.layer['name'], self.td['bbvars']['MACHINE'], machine)) |
27 | 27 | ||
28 | |||
29 | def test_machine_world(self): | ||
30 | ''' | ||
31 | "bitbake world" is expected to work regardless which machine is selected. | ||
32 | BSP layers sometimes break that by enabling a recipe for a certain machine | ||
33 | without checking whether that recipe actually can be built in the current | ||
34 | distro configuration (for example, OpenGL might not enabled). | ||
35 | |||
36 | This test iterates over all machines. It would be nicer to instantiate | ||
37 | it once per machine. It merely checks for errors during parse | ||
38 | time. It does not actually attempt to build anything. | ||
39 | ''' | ||
40 | |||
41 | if not self.td['machines']: | ||
42 | self.skipTest('No machines set with --machines.') | ||
43 | msg = [] | ||
44 | for machine in self.td['machines']: | ||
45 | # In contrast to test_machine_signatures() below, errors are fatal here. | ||
46 | try: | ||
47 | get_signatures(self.td['builddir'], failsafe=False, machine=machine) | ||
48 | except RuntimeError as ex: | ||
49 | msg.append(str(ex)) | ||
50 | if msg: | ||
51 | msg.insert(0, 'The following machines broke a world build:') | ||
52 | self.fail('\n'.join(msg)) | ||
53 | |||
28 | def test_machine_signatures(self): | 54 | def test_machine_signatures(self): |
29 | ''' | 55 | ''' |
30 | Selecting a machine may only affect the signature of tasks that are specific | 56 | Selecting a machine may only affect the signature of tasks that are specific |