check also spec files for forbidden control chars
This commit is contained in:
parent
e1576e4fc1
commit
bb3573020b
|
@ -387,6 +387,11 @@ class SpecCheck(AbstractCheck):
|
|||
res = requires_regex.search(line)
|
||||
if res:
|
||||
reqs = Pkg.parse_deps(res.group(1))
|
||||
e = Pkg.has_forbidden_controlchars(reqs)
|
||||
if e:
|
||||
self.output.add_info('E', pkg,
|
||||
'forbidden-controlchar-found',
|
||||
'Requires: %s' % e)
|
||||
for req in unversioned(reqs):
|
||||
if compop_regex.search(req):
|
||||
self.output.add_info('W', pkg,
|
||||
|
@ -396,6 +401,11 @@ class SpecCheck(AbstractCheck):
|
|||
res = provides_regex.search(line)
|
||||
if res:
|
||||
provs = Pkg.parse_deps(res.group(1))
|
||||
e = Pkg.has_forbidden_controlchars(provs)
|
||||
if e:
|
||||
self.output.add_info('E', pkg,
|
||||
'forbidden-controlchar-found',
|
||||
'Provides: %s' % e)
|
||||
for prov in unversioned(provs):
|
||||
if not prov.startswith('/'):
|
||||
self.output.add_info('W', pkg, 'unversioned-explicit-provides',
|
||||
|
@ -408,6 +418,11 @@ class SpecCheck(AbstractCheck):
|
|||
res = obsoletes_regex.search(line)
|
||||
if res:
|
||||
obses = Pkg.parse_deps(res.group(1))
|
||||
e = Pkg.has_forbidden_controlchars(obses)
|
||||
if e:
|
||||
self.output.add_info('E', pkg,
|
||||
'forbidden-controlchar-found',
|
||||
'Obsoletes: %s' % e)
|
||||
for obs in unversioned(obses):
|
||||
if not obs.startswith('/'):
|
||||
self.output.add_info('W', pkg, 'unversioned-explicit-obsoletes',
|
||||
|
@ -420,6 +435,11 @@ class SpecCheck(AbstractCheck):
|
|||
res = conflicts_regex.search(line)
|
||||
if res:
|
||||
confs = Pkg.parse_deps(res.group(1))
|
||||
e = Pkg.has_forbidden_controlchars(confs)
|
||||
if e:
|
||||
self.output.add_info('E', pkg,
|
||||
'forbidden-controlchar-found',
|
||||
'Conflicts: %s' % e)
|
||||
for conf in unversioned(confs):
|
||||
if compop_regex.search(conf):
|
||||
self.output.add_info('W', pkg,
|
||||
|
@ -427,6 +447,11 @@ class SpecCheck(AbstractCheck):
|
|||
conf)
|
||||
|
||||
if current_section == 'changelog':
|
||||
e = Pkg.has_forbidden_controlchars(line)
|
||||
if e:
|
||||
self.output.add_info('E', pkg,
|
||||
'forbidden-controlchar-found',
|
||||
'%%changelog: %s' % e)
|
||||
for match in self.macro_regex.findall(line):
|
||||
res = re.match('%+', match)
|
||||
if len(res.group(0)) % 2:
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
Name: SpecCheck4
|
||||
Version: 0.0.1
|
||||
Release: 0
|
||||
Summary: None here
|
||||
|
||||
Group: Undefined
|
||||
License: GPLv2
|
||||
URL: http://rpmlint.zarb.org/#%{name}
|
||||
Source0: Source0.tar.gz
|
||||
Requires: require
|
||||
Provides: provide
|
||||
Obsoletes: obsolete
|
||||
Conflicts: conflict
|
||||
|
||||
%description
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
%configure
|
||||
%make_build
|
||||
|
||||
%install
|
||||
%make_install
|
||||
|
||||
%post
|
||||
%postun
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc ChangeLog README
|
||||
|
||||
%changelog
|
||||
* Wed Oct 23 14:15:39 UTC 2019 - Frank Schreiner <frank@fs.samaxi.de>
|
||||
- changelog entry ....
|
|
@ -51,3 +51,16 @@ def test_distribution_tags(package, speccheck):
|
|||
assert 'unversioned-explicit-obsoletes versioned-obsoletes' not in out
|
||||
assert 'unversioned-explicit-obsoletes /' not in out
|
||||
assert 'setup-not-quiet' in out
|
||||
|
||||
|
||||
@pytest.mark.parametrize('package', ['spec/SpecCheck4'])
|
||||
def test_forbidden_controlchars_found(package, speccheck):
|
||||
output, test = speccheck
|
||||
pkg = get_tested_spec_package(package)
|
||||
test.check_spec(pkg)
|
||||
out = output.print_results(output.results)
|
||||
assert 'E: forbidden-controlchar-found Requires:' in out
|
||||
assert 'E: forbidden-controlchar-found Provides:' in out
|
||||
assert 'E: forbidden-controlchar-found Obsoletes:' in out
|
||||
assert 'E: forbidden-controlchar-found Conflicts:' in out
|
||||
assert 'E: forbidden-controlchar-found %changelog:' in out
|
||||
|
|
Loading…
Reference in New Issue