[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