build-sys: hook up the hwdb parser to check

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2016-08-05 15:07:41 -04:00
parent 2abd461344
commit c3f6a561e2
2 changed files with 14 additions and 6 deletions

View File

@ -3872,7 +3872,8 @@ TESTS += \
if HAVE_PYTHON
TESTS += \
test/rule-syntax-check.py
test/rule-syntax-check.py \
hwdb/parse_hwdb.py
if HAVE_SYSV_COMPAT
TESTS += \
@ -3924,7 +3925,8 @@ EXTRA_DIST += \
test/udev-test.pl \
test/rule-syntax-check.py \
test/sysv-generator-test.py \
test/mocks/fsck
test/mocks/fsck \
hwdb/parse_hwdb.py
# ------------------------------------------------------------------------------
ata_id_SOURCES = \

14
hwdb/parse_hwdb.py Normal file → Executable file
View File

@ -1,3 +1,4 @@
#!/usr/bin/python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
#
# This file is part of systemd.
@ -17,9 +18,11 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
import sys
import string
import functools
import glob
import string
import sys
import os
try:
from pyparsing import (Word, White, Literal, ParserElement, Regex,
@ -29,7 +32,8 @@ try:
stringEnd, pythonStyleComment,
ParseBaseException)
except ImportError:
sys.exit('pyparsing is not available')
print('pyparsing is not available')
sys.exit(77)
try:
from evdev.ecodes import ecodes
@ -168,7 +172,9 @@ def print_summary(fname, groups):
))
if __name__ == '__main__':
for fname in sys.argv[1:]:
args = sys.argv[1:] or glob.glob(os.path.dirname(sys.argv[0]) + '/[67]0-*.hwdb')
for fname in args:
groups = parse(fname)
print_summary(fname, groups)
check_match_uniqueness(groups)