1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

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 if HAVE_PYTHON
TESTS += \ TESTS += \
test/rule-syntax-check.py test/rule-syntax-check.py \
hwdb/parse_hwdb.py
if HAVE_SYSV_COMPAT if HAVE_SYSV_COMPAT
TESTS += \ TESTS += \
@ -3924,7 +3925,8 @@ EXTRA_DIST += \
test/udev-test.pl \ test/udev-test.pl \
test/rule-syntax-check.py \ test/rule-syntax-check.py \
test/sysv-generator-test.py \ test/sysv-generator-test.py \
test/mocks/fsck test/mocks/fsck \
hwdb/parse_hwdb.py
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
ata_id_SOURCES = \ 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 -*- */ # -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
# #
# This file is part of systemd. # This file is part of systemd.
@ -17,9 +18,11 @@
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>. # along with systemd; If not, see <http://www.gnu.org/licenses/>.
import sys
import string
import functools import functools
import glob
import string
import sys
import os
try: try:
from pyparsing import (Word, White, Literal, ParserElement, Regex, from pyparsing import (Word, White, Literal, ParserElement, Regex,
@ -29,7 +32,8 @@ try:
stringEnd, pythonStyleComment, stringEnd, pythonStyleComment,
ParseBaseException) ParseBaseException)
except ImportError: except ImportError:
sys.exit('pyparsing is not available') print('pyparsing is not available')
sys.exit(77)
try: try:
from evdev.ecodes import ecodes from evdev.ecodes import ecodes
@ -168,7 +172,9 @@ def print_summary(fname, groups):
)) ))
if __name__ == '__main__': 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) groups = parse(fname)
print_summary(fname, groups) print_summary(fname, groups)
check_match_uniqueness(groups) check_match_uniqueness(groups)