mirror of
https://git.yoctoproject.org/poky
synced 2026-04-17 18:32:12 +02:00
patchtest: simplify, rename modules
- simplify base.py, data.py - move some leftover regex patterns to patterns.py - remove pyparsing path logic, since this is no longer needed - rename PatchTestInput class to PatchtestParser - data.py: rename to patchtest_parser.py - patterns.py: rename to patchtest_patterns.py - move PatchTestDataStore to test_metadata.py since that's the only place it's used - remove unused logger code (From OE-Core rev: 1e971b05b036b0b1eb0bdbd9b26b54d06e74294c) Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
18a65c77c0
commit
4c378fc895
96
meta/lib/patchtest/patchtest_patterns.py
Normal file
96
meta/lib/patchtest/patchtest_patterns.py
Normal file
@@ -0,0 +1,96 @@
|
||||
# common pyparsing variables
|
||||
#
|
||||
# Copyright (C) 2016 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
import pyparsing
|
||||
import re
|
||||
|
||||
# general
|
||||
colon = pyparsing.Literal(":")
|
||||
line_start = pyparsing.LineStart()
|
||||
line_end = pyparsing.LineEnd()
|
||||
lessthan = pyparsing.Literal("<")
|
||||
greaterthan = pyparsing.Literal(">")
|
||||
inappropriate = pyparsing.CaselessLiteral("Inappropriate")
|
||||
submitted = pyparsing.CaselessLiteral("Submitted")
|
||||
|
||||
# word related
|
||||
nestexpr = pyparsing.nestedExpr(opener='[', closer=']')
|
||||
inappropriateinfo = pyparsing.Literal("Inappropriate") + nestexpr
|
||||
submittedinfo = pyparsing.Literal("Submitted") + nestexpr
|
||||
word = pyparsing.Word(pyparsing.alphas)
|
||||
worddot = pyparsing.Word(pyparsing.alphas+".")
|
||||
|
||||
# metadata
|
||||
|
||||
metadata_lic = 'LICENSE'
|
||||
invalid_license = 'PATCHTESTINVALID'
|
||||
metadata_chksum = 'LIC_FILES_CHKSUM'
|
||||
license_var = 'LICENSE'
|
||||
closed = 'CLOSED'
|
||||
lictag_re = pyparsing.AtLineStart("License-Update:")
|
||||
lic_chksum_added = pyparsing.AtLineStart("+" + metadata_chksum)
|
||||
lic_chksum_removed = pyparsing.AtLineStart("-" + metadata_chksum)
|
||||
add_mark = pyparsing.Regex('\\+ ')
|
||||
patch_max_line_length = 200
|
||||
metadata_src_uri = "SRC_URI"
|
||||
metadata_summary = "SUMMARY"
|
||||
cve_check_ignore_var = "CVE_CHECK_IGNORE"
|
||||
cve_status_var = "CVE_STATUS"
|
||||
endcommit_messages_regex = re.compile(
|
||||
r"\(From \w+-\w+ rev:|(?<!\S)Signed-off-by|(?<!\S)---\n"
|
||||
)
|
||||
patchmetadata_regex = re.compile(
|
||||
r"-{3} \S+|\+{3} \S+|@{2} -\d+,\d+ \+\d+,\d+ @{2} \S+"
|
||||
)
|
||||
|
||||
# mbox
|
||||
auh_email = 'auh@yoctoproject.org'
|
||||
|
||||
invalid_submitters = [pyparsing.Regex("^Upgrade Helper.+"),
|
||||
pyparsing.Regex(auh_email),
|
||||
pyparsing.Regex("uh@not\.set"),
|
||||
pyparsing.Regex("\S+@example\.com")]
|
||||
|
||||
mbox_bugzilla = pyparsing.Regex('\[\s?YOCTO.*\]')
|
||||
mbox_bugzilla_validation = pyparsing.Regex('\[(\s?YOCTO\s?#\s?(\d+)\s?,?)+\]')
|
||||
mbox_revert_shortlog_regex = pyparsing.Regex('Revert\s+".*"')
|
||||
mbox_shortlog_maxlength = 90
|
||||
|
||||
# patch
|
||||
|
||||
cve = pyparsing.Regex("CVE\-\d{4}\-\d+")
|
||||
cve_payload_tag = pyparsing.Regex("\+CVE:(\s+CVE\-\d{4}\-\d+)+")
|
||||
upstream_status_regex = pyparsing.AtLineStart("+" + "Upstream-Status")
|
||||
|
||||
# shortlog
|
||||
|
||||
shortlog_target = pyparsing.OneOrMore(pyparsing.Word(pyparsing.printables.replace(':','')))
|
||||
shortlog_summary = pyparsing.OneOrMore(pyparsing.Word(pyparsing.printables))
|
||||
shortlog = line_start + shortlog_target + colon + shortlog_summary + line_end
|
||||
|
||||
# signed-off-bys
|
||||
|
||||
email_pattern = pyparsing.Regex(r"(?P<user>[A-Za-z0-9._%+-]+)@(?P<hostname>[A-Za-z0-9.-]+)\.(?P<domain>[A-Za-z]{2,})")
|
||||
|
||||
signed_off_by_prefix = pyparsing.Literal("Signed-off-by:")
|
||||
signed_off_by_name = pyparsing.Regex('\S+.*(?= <)')
|
||||
signed_off_by_email = lessthan + email_pattern + greaterthan
|
||||
signed_off_by = pyparsing.AtLineStart(signed_off_by_prefix + signed_off_by_name + signed_off_by_email)
|
||||
patch_signed_off_by = pyparsing.AtLineStart("+" + signed_off_by_prefix + signed_off_by_name + signed_off_by_email)
|
||||
|
||||
# upstream-status
|
||||
|
||||
upstream_status_literal_valid_status = ["Pending", "Backport", "Denied", "Inappropriate", "Submitted"]
|
||||
upstream_status_nonliteral_valid_status = ["Pending", "Backport", "Denied", "Inappropriate [reason]", "Submitted [where]"]
|
||||
|
||||
upstream_status_valid_status = pyparsing.Or(
|
||||
[pyparsing.Literal(status) for status in upstream_status_literal_valid_status]
|
||||
)
|
||||
|
||||
upstream_status_prefix = pyparsing.Literal("Upstream-Status")
|
||||
upstream_status = line_start + upstream_status_prefix + colon + upstream_status_valid_status
|
||||
upstream_status_inappropriate_info = line_start + upstream_status_prefix + colon + inappropriateinfo
|
||||
upstream_status_submitted_info = line_start + upstream_status_prefix + colon + submittedinfo
|
||||
Reference in New Issue
Block a user