[Libguestfs] [PATCH nbdkit] tests/test-truncate4.sh: Rewrite to use nbdsh.
Eric Blake
eblake at redhat.com
Wed May 20 13:25:43 UTC 2020
On 5/20/20 7:50 AM, Richard W.M. Jones wrote:
> The old test relied on issuing an asynchronous command to a qemu-io
> subprocess, requiring a sleep to ensure that the command had been
> carried out. ‘sleep 1’ was not long enough on s390x as you can see
> from this partial trace:
Nice analysis.
> Here are still connecting to nbdkit from "connection A", long after
> the sleep has finished and the truncate has been done.
>
> Instead of increasing the sleep and hoping for the best, I chose to
> rewrite the test to use nbdsh. This allows us to control both
> connections from a single process, making the test predicatable and
> easier to understand.
Indeed. nbdsh is making a lot of tests easier to write, and it is now
just a question of revisiting the older tests that predated it.
> ---
> tests/test-truncate4.sh | 90 ++++++++++++++++++++++++++---------------
> 1 file changed, 58 insertions(+), 32 deletions(-)
>
> diff --git a/tests/test-truncate4.sh b/tests/test-truncate4.sh
> index e4be626b..c5dc608c 100755
> --- a/tests/test-truncate4.sh
> +++ b/tests/test-truncate4.sh
> -requires qemu-io --version
> +requires nbdsh --version
> +requires truncate --help
We probably don't need truncate...
> +
> +if ! dd --help | grep fullblock; then
> + echo "$0: requires GNU dd with the iflag=fullblock option"
> + exit 77
> +fi
>
> sock=`mktemp -u`
> -files="truncate4.out truncate4.pid $sock truncate4.data"
> +data=truncate4.data
> +files="truncate4.pid $sock $data"
> rm -f $files
> cleanup_fn rm -f $files
>
> -# Initial file contents: 1k of pattern 1
> -truncate -s 1024 truncate4.data
> -qemu-io -c 'w -P 1 0 1024' -f raw truncate4.data
> +truncate -s 0 $data
...true, the old code used it (without requiring it!), but in the new
code, you could get away with ': > $data' instead of having to invoke
truncate. Then where the old code resized the file with truncate
between connections A and B, the new code is using python.
The conversion itself looks correct to me. ACK.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list