]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | # SPDX-License-Identifier: LGPL-2.1+ | |
3 | # | |
4 | # Call built systemd-hwdb update on our hwdb files to ensure that they parse | |
5 | # without error | |
6 | # | |
7 | # (C) 2016 Canonical Ltd. | |
8 | # Author: Martin Pitt <martin.pitt@ubuntu.com> | |
9 | ||
10 | set -e | |
11 | ||
12 | export SYSTEMD_LOG_LEVEL=info | |
13 | ROOTDIR=$(dirname $(dirname $(readlink -f $0))) | |
14 | SYSTEMD_HWDB=./systemd-hwdb | |
15 | ||
16 | if [ ! -x "$SYSTEMD_HWDB" ]; then | |
17 | echo "$SYSTEMD_HWDB does not exist, please build first" | |
18 | exit 1 | |
19 | fi | |
20 | ||
21 | D=$(mktemp --directory) | |
22 | trap "rm -rf '$D'" EXIT INT QUIT PIPE | |
23 | mkdir -p "$D/etc/udev" | |
24 | ln -s "$ROOTDIR/hwdb" "$D/etc/udev/hwdb.d" | |
25 | ||
26 | # Test "good" properties" — no warnings or errors allowed | |
27 | err=$("$SYSTEMD_HWDB" update --root "$D" 2>&1 >/dev/null) && rc= || rc=$? | |
28 | if [ -n "$err" ]; then | |
29 | echo "$err" | |
30 | exit ${rc:-1} | |
31 | fi | |
32 | if [ -n "$rc" ]; then | |
33 | echo "$SYSTEMD_HWDB returned $rc" | |
34 | exit $rc | |
35 | fi | |
36 | ||
37 | if [ ! -e "$D/etc/udev/hwdb.bin" ]; then | |
38 | echo "$D/etc/udev/hwdb.bin was not generated" | |
39 | exit 1 | |
40 | fi | |
41 | ||
42 | # Test "bad" properties" — warnings required, errors not allowed | |
43 | rm -f "$D/etc/udev/hwdb.bin" "$D/etc/udev/hwdb.d" | |
44 | ||
45 | ln -s "$ROOTDIR/test/hwdb" "$D/etc/udev/hwdb.d" | |
46 | err=$("$SYSTEMD_HWDB" update --root "$D" 2>&1 >/dev/null) && rc= || rc=$? | |
47 | if [ -n "$rc" ]; then | |
48 | echo "$SYSTEMD_HWDB returned $rc" | |
49 | exit $rc | |
50 | fi | |
51 | if [ -n "$err" ]; then | |
52 | echo "Expected warnings" | |
53 | echo "$err" | |
54 | else | |
55 | echo "$SYSTEMD_HWDB unexpectedly printed no warnings" | |
56 | exit 1 | |
57 | fi | |
58 | ||
59 | if [ ! -e "$D/etc/udev/hwdb.bin" ]; then | |
60 | echo "$D/etc/udev/hwdb.bin was not generated" | |
61 | exit 1 | |
62 | fi |