]> git.ipfire.org Git - thirdparty/systemd.git/blob - test/hwdb-test.sh
network: make all failures in route configuration fatal
[thirdparty/systemd.git] / test / hwdb-test.sh
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