hwdb-test: properly print error output from systemd-hwdb update

Because -e was set, we'd exit immediately when systemd-hwdb failed and the
captured error output was never printed. We want to test two things:
that 0 is returned, and that nothing is printed to stderr (to catch
syntax errors in the hwdb).

v2: stop capturing stderr to a variable
v3: capture stderr to a variable and test both error types separately
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2016-11-29 22:41:52 -05:00
parent dc17ee3d6e
commit 8ce2069263

View file

@ -32,11 +32,17 @@ D=$(mktemp --directory)
trap "rm -rf '$D'" EXIT INT QUIT PIPE
mkdir -p "$D/etc/udev"
ln -s "$ROOTDIR/hwdb" "$D/etc/udev/hwdb.d"
err=$("$SYSTEMD_HWDB" update --root "$D" 2>&1 >/dev/null)
err=$("$SYSTEMD_HWDB" update --root "$D" 2>&1 >/dev/null) && rc= || rc=$?
if [ -n "$err" ]; then
echo "$err"
exit 1
exit ${rc:-1}
fi
if [ -n "$rc" ]; then
echo "$SYSTEMD_HWDB returned $rc"
exit $rc
fi
if [ ! -e "$D/etc/udev/hwdb.bin" ]; then
echo "$D/etc/udev/hwdb.bin was not generated"
exit 1