From 35ed1a2438624ee2f7913babd945bf7d7c05556d Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 25 Jan 2021 10:28:31 -0800 Subject: [PATCH] Add t_require_meta_size function Add a function that tests can use to skip when the metadata device isn't large enough. I thought we needed to avoid enospc in a particular test, but it turns out the test's failure was unrelated. So this isn't used for now but it seems nice to keep around. Signed-off-by: Zach Brown --- tests/funcs/require.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/funcs/require.sh b/tests/funcs/require.sh index 17b757cf..2d0f36ae 100644 --- a/tests/funcs/require.sh +++ b/tests/funcs/require.sh @@ -23,3 +23,18 @@ t_require_mounts() { test "$T_NR_MOUNTS" -ge "$req" || \ t_skip "$req mounts required, only have $T_NR_MOUNTS" } + +# +# Require that the meta device be at least the size string argument, as +# parsed by numfmt using single char base 2 suffixes (iec).. 64G, etc. +# +t_require_meta_size() { + local dev="$T_META_DEVICE" + local req_iec="$1" + local req_bytes=$(numfmt --from=iec --to=none $req_iec) + local dev_bytes=$(blockdev --getsize64 $dev) + local dev_iec=$(numfmt --from=auto --to=iec $dev_bytes) + + test "$dev_bytes" -ge "$req_bytes" || \ + t_skip "$dev must be at least $req_iec, is $dev_iec" +}