[Libguestfs] [nbdkit PATCH v2 3/3] server: More tests of stdin/out handling
Richard W.M. Jones
rjones at redhat.com
Tue Apr 14 07:55:45 UTC 2020
On Mon, Apr 13, 2020 at 07:29:01PM -0500, Eric Blake wrote:
> Enhance the testsuite to ensure we don't regress with recent changes
> to stdin/out handling. This adds:
> - test-single-sh.sh: prove that 'nbdkit -s sh script' is viable
> - test-stdio.sh: create plugin that checks stdin/out match /dev/null,
> then run it with -s, --run, -f
>
> Signed-off-by: Eric Blake <eblake at redhat.com>
...
> +/* Check whether stdin/out match /dev/null */
> +static bool
> +stdio_check (void)
> +{
> + static int dn = -1;
> + struct stat st1, st2;
> +
> + if (dn == -1) {
> + dn = open ("/dev/null", O_RDONLY);
> + assert (dn > STDERR_FILENO);
> + }
> + if (fstat (dn, &st1) == -1)
> + assert (false);
> +
> + if (fstat (STDIN_FILENO, &st2) == -1)
> + assert (false);
> + if (st1.st_dev != st2.st_dev || st1.st_ino != st2.st_ino)
> + return false;
> +
> + if (fstat (STDOUT_FILENO, &st2) == -1)
> + assert (false);
> + if (st1.st_dev != st2.st_dev || st1.st_ino != st2.st_ino)
> + return false;
> +
> + return true;
> +}
Interesting - I think I would have done a Linux-specific hack
involving /proc/fd, but your way should be better :-)
All looks good, ACK.
Thanks,
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
More information about the Libguestfs
mailing list