mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00

Various tweaks to make the test suite cleaner and more efficient: - Replace use of "re" module with "pyparsing" in tests (but not base.py) - Make test_mbox_cve only check for CVE tags in the commit if the added patch has them - Make test_mbox_cve SKIP instead of PASS if there's no CVE tag - Simplify the bugzilla tag checking test now that pyparsing is used - Modify the selftest script to correctly parse the new result output (From OE-Core rev: 7a187c2475aa762e2bc830950f608143f2535a72) Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
64 lines
3.6 KiB
Python
64 lines
3.6 KiB
Python
# Check if the series was intended for other project (not OE-Core)
|
|
#
|
|
# Copyright (C) 2017 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
import subprocess
|
|
import collections
|
|
import base
|
|
import pyparsing
|
|
from data import PatchTestInput
|
|
|
|
class MailingList(base.Base):
|
|
|
|
# base paths of main yocto project sub-projects
|
|
paths = {
|
|
'oe-core': ['meta-selftest', 'meta-skeleton', 'meta', 'scripts'],
|
|
'bitbake': ['bitbake'],
|
|
'documentation': ['documentation'],
|
|
'poky': ['meta-poky','meta-yocto-bsp'],
|
|
'oe': ['meta-gpe', 'meta-gnome', 'meta-efl', 'meta-networking', 'meta-multimedia','meta-initramfs', 'meta-ruby', 'contrib', 'meta-xfce', 'meta-filesystems', 'meta-perl', 'meta-webserver', 'meta-systemd', 'meta-oe', 'meta-python']
|
|
}
|
|
|
|
# scripts folder is a mix of oe-core and poky, most is oe-core code except:
|
|
poky_scripts = ['scripts/yocto-bsp', 'scripts/yocto-kernel', 'scripts/yocto-layer', 'scripts/lib/bsp']
|
|
|
|
Project = collections.namedtuple('Project', ['name', 'listemail', 'gitrepo', 'paths'])
|
|
|
|
bitbake = Project(name='Bitbake', listemail='bitbake-devel@lists.openembedded.org', gitrepo='http://git.openembedded.org/bitbake/', paths=paths['bitbake'])
|
|
doc = Project(name='Documentantion', listemail='yocto@yoctoproject.org', gitrepo='http://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/', paths=paths['documentation'])
|
|
poky = Project(name='Poky', listemail='poky@yoctoproject.org', gitrepo='http://git.yoctoproject.org/cgit/cgit.cgi/poky/', paths=paths['poky'])
|
|
oe = Project(name='oe', listemail='openembedded-devel@lists.openembedded.org', gitrepo='http://git.openembedded.org/meta-openembedded/', paths=paths['oe'])
|
|
|
|
|
|
def test_target_mailing_list(self):
|
|
"""In case of merge failure, check for other targeted projects"""
|
|
if PatchTestInput.repo.ismerged:
|
|
self.skip('Series merged, no reason to check other mailing lists')
|
|
|
|
# a meta project may be indicted in the message subject, if this is the case, just fail
|
|
# TODO: there may be other project with no-meta prefix, we also need to detect these
|
|
project_regex = pyparsing.Regex("\[(?P<project>meta-.+)\]")
|
|
for commit in MailingList.commits:
|
|
match = project_regex.search_string(commit.subject)
|
|
if match:
|
|
self.fail('Series sent to the wrong mailing list. Check the project\'s README (%s) and send the patch to the indicated list' % match.group('project'),
|
|
commit=commit)
|
|
|
|
for patch in self.patchset:
|
|
folders = patch.path.split('/')
|
|
base_path = folders[0]
|
|
for project in [self.bitbake, self.doc, self.oe, self.poky]:
|
|
if base_path in project.paths:
|
|
self.fail('Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists. Send the series again to the correct mailing list (ML)',
|
|
data=[('Suggested ML', '%s [%s]' % (project.listemail, project.gitrepo)),
|
|
('Patch\'s path:', patch.path)])
|
|
|
|
# check for poky's scripts code
|
|
if base_path.startswith('scripts'):
|
|
for poky_file in self.poky_scripts:
|
|
if patch.path.startswith(poky_file):
|
|
self.fail('Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists. Send the series again to the correct mailing list (ML)',
|
|
data=[('Suggested ML', '%s [%s]' % (self.poky.listemail, self.poky.gitrepo)),('Patch\'s path:', patch.path)])
|