iotests/common.rc: Add _require_working_luks

That the luks driver is present is little indication on whether it is
actually working.  Without the crypto libraries linked in, it does not
work.  So add this function, which tries to create a luks image to see
whether that actually works.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200625125548.870061-4-mreitz@redhat.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
This commit is contained in:
Max Reitz 2020-06-25 14:55:32 +02:00
parent cbb32e79dd
commit dc4ab02919
1 changed files with 27 additions and 0 deletions

View File

@ -740,6 +740,33 @@ _unsupported_imgopts()
done
}
# Caution: Overwrites $TEST_DIR/t.luks
_require_working_luks()
{
file="$TEST_DIR/t.luks"
output=$(
$QEMU_IMG create -f luks \
--object secret,id=sec0,data=hunter0 \
-o key-secret=sec0 \
-o iter-time=10 \
"$file" \
1M \
2>&1
)
status=$?
IMGFMT='luks' _rm_test_img "$file"
if [ $status != 0 ]; then
reason=$(echo "$output" | grep "$file:" | $SED -e "s#.*$file: *##")
if [ -z "$reason" ]; then
reason="Failed to create a LUKS image"
fi
_notrun "$reason"
fi
}
# this test requires that a specified command (executable) exists
#
_require_command()