mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

This adds SPDX license headers in place of the wide assortment of things currently in our script headers. We default to GPL-2.0-only except for the oeqa code where it was clearly submitted and marked as MIT on the most part or some scripts which had the "or later" GPL versioning. The patch also drops other obsolete bits of file headers where they were encoountered such as editor modelines, obsolete maintainer information or the phrase "All rights reserved" which is now obsolete and not required in copyright headers (in this case its actually confusing for licensing as all rights were not reserved). More work is needed for OE-Core but this takes care of the bulk of the scripts and meta/lib directories. The top level LICENSE files are tweaked to match the new structure and the SPDX naming. (From OE-Core rev: f8c9c511b5f1b7dbd45b77f345cb6c048ae6763e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
61 lines
2.6 KiB
Python
61 lines
2.6 KiB
Python
# Copyright (C) 2017 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
import glob
|
|
import os
|
|
import unittest
|
|
from checklayer import get_signatures, LayerType, check_command, get_depgraph, compare_signatures
|
|
from checklayer.case import OECheckLayerTestCase
|
|
|
|
class CommonCheckLayer(OECheckLayerTestCase):
|
|
def test_readme(self):
|
|
# The top-level README file may have a suffix (like README.rst or README.txt).
|
|
readme_files = glob.glob(os.path.join(self.tc.layer['path'], 'README*'))
|
|
self.assertTrue(len(readme_files) > 0,
|
|
msg="Layer doesn't contains README file.")
|
|
|
|
# There might be more than one file matching the file pattern above
|
|
# (for example, README.rst and README-COPYING.rst). The one with the shortest
|
|
# name is considered the "main" one.
|
|
readme_file = sorted(readme_files)[0]
|
|
data = ''
|
|
with open(readme_file, 'r') as f:
|
|
data = f.read()
|
|
self.assertTrue(data,
|
|
msg="Layer contains a README file but it is empty.")
|
|
|
|
def test_parse(self):
|
|
check_command('Layer %s failed to parse.' % self.tc.layer['name'],
|
|
'bitbake -p')
|
|
|
|
def test_show_environment(self):
|
|
check_command('Layer %s failed to show environment.' % self.tc.layer['name'],
|
|
'bitbake -e')
|
|
|
|
def test_world(self):
|
|
'''
|
|
"bitbake world" is expected to work. test_signatures does not cover that
|
|
because it is more lenient and ignores recipes in a world build that
|
|
are not actually buildable, so here we fail when "bitbake -S none world"
|
|
fails.
|
|
'''
|
|
get_signatures(self.td['builddir'], failsafe=False)
|
|
|
|
def test_signatures(self):
|
|
if self.tc.layer['type'] == LayerType.SOFTWARE and \
|
|
not self.tc.test_software_layer_signatures:
|
|
raise unittest.SkipTest("Not testing for signature changes in a software layer %s." \
|
|
% self.tc.layer['name'])
|
|
|
|
curr_sigs, _ = get_signatures(self.td['builddir'], failsafe=True)
|
|
msg = compare_signatures(self.td['sigs'], curr_sigs)
|
|
if msg is not None:
|
|
self.fail('Adding layer %s changed signatures.\n%s' % (self.tc.layer['name'], msg))
|
|
|
|
def test_layerseries_compat(self):
|
|
for collection_name, collection_data in self.tc.layer['collections'].items():
|
|
self.assertTrue(collection_data['compat'], "Collection %s from layer %s does not set compatible oe-core versions via LAYERSERIES_COMPAT_collection." \
|
|
% (collection_name, self.tc.layer['name']))
|