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 |
