diff options
Diffstat (limited to 'poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py')
-rw-r--r-- | poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py b/poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py new file mode 100644 index 0000000000..4855d6daf7 --- /dev/null +++ b/poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py @@ -0,0 +1,43 @@ +# Checks related to the patch's signed-off-by lines +# +# Copyright (C) 2016 Intel Corporation +# +# SPDX-License-Identifier: GPL-2.0 + +import base +import parse_signed_off_by +import re + +class PatchSignedOffBy(base.Base): + + @classmethod + def setUpClassLocal(cls): + cls.newpatches = [] + # get just those relevant patches: new software patches + for patch in cls.patchset: + if patch.path.endswith('.patch') and patch.is_added_file: + cls.newpatches.append(patch) + + cls.mark = str(parse_signed_off_by.signed_off_by_mark).strip('"') + + # match PatchSignedOffBy.mark with '+' preceding it + cls.prog = parse_signed_off_by.patch_signed_off_by + + def setUp(self): + if self.unidiff_parse_error: + self.skip('Parse error %s' % self.unidiff_parse_error) + + def test_signed_off_by_presence(self): + if not PatchSignedOffBy.newpatches: + self.skip("There are no new software patches, no reason to test %s presence" % PatchSignedOffBy.mark) + + for newpatch in PatchSignedOffBy.newpatches: + payload = newpatch.__str__() + for line in payload.splitlines(): + if self.patchmetadata_regex.match(line): + continue + if PatchSignedOffBy.prog.search_string(payload): + break + else: + self.fail('A patch file has been added, but does not have a Signed-off-by tag', + 'Sign off the added patch file (%s)' % newpatch.path) |