update TODO
[systemd.io.git] / test / hwdb-test.sh
blob89a5c7ed4e12022c2a205a2c6b7ba951ce077f1f
1 #!/bin/sh
2 # SPDX-License-Identifier: LGPL-2.1-or-later
4 # Call built systemd-hwdb update on our hwdb files to ensure that they parse
5 # without error
7 # (C) 2016 Canonical Ltd.
8 # Author: Martin Pitt <martin.pitt@ubuntu.com>
10 set -e
12 export SYSTEMD_LOG_LEVEL=info
13 export SYSTEMD_HWDB_UPDATE_BYPASS=0
14 ROOTDIR="$(dirname "$(dirname "$(readlink -f "$0")")")"
15 SYSTEMD_HWDB="${1:?}"
17 if [ ! -x "$SYSTEMD_HWDB" ]; then
18 echo "$SYSTEMD_HWDB is not executable" >&2
19 exit 1
22 D="$(mktemp --tmpdir --directory "hwdb-test.XXXXXXXXXX")"
23 # shellcheck disable=SC2064
24 trap "rm -rf '$D'" EXIT INT QUIT PIPE
25 mkdir -p "$D/etc/udev"
26 cp -a "$ROOTDIR/hwdb.d" "$D/etc/udev/hwdb.d"
28 # Test "good" properties" — no warnings or errors allowed
29 err=$("$SYSTEMD_HWDB" update --root "$D" 2>&1 >/dev/null) && rc= || rc=$?
30 if [ -n "$err" ]; then
31 echo "$err"
32 exit "${rc:-1}"
34 if [ -n "$rc" ]; then
35 echo "$SYSTEMD_HWDB returned $rc"
36 exit "$rc"
39 if [ ! -e "$D/etc/udev/hwdb.bin" ]; then
40 echo "$D/etc/udev/hwdb.bin was not generated"
41 exit 1
44 # Test "bad" properties" — warnings required, errors not allowed
45 rm -rf "$D/etc/udev/hwdb.bin" "$D/etc/udev/hwdb.d"
47 cp -a "$ROOTDIR/test/hwdb.d" "$D/etc/udev/hwdb.d"
48 err=$("$SYSTEMD_HWDB" update --root "$D" 2>&1 >/dev/null) && rc= || rc=$?
49 if [ -n "$rc" ]; then
50 echo "$SYSTEMD_HWDB returned $rc"
51 exit "$rc"
53 if [ -n "$err" ]; then
54 echo "Expected warnings"
55 echo "$err"
56 else
57 echo "$SYSTEMD_HWDB unexpectedly printed no warnings"
58 exit 1
61 if [ ! -e "$D/etc/udev/hwdb.bin" ]; then
62 echo "$D/etc/udev/hwdb.bin was not generated"
63 exit 1