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 <[email protected]> ... > +/* 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/ _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
