On Sun, May 07, 2023 at 11:43:23AM +0100, Richard W.M. Jones wrote: > Also test that the expected environment variable is set when > connecting to nbdkit. > > This test requires nbdkit >= 1.35.2 which added support for -D > nbdkit.environ=1 to dump the environment, and will be skipped with > other versions. > --- > .gitignore | 1 + > tests/Makefile.am | 8 +++ > tests/socket-activation-name.c | 99 ++++++++++++++++++++++++++++++++++ > 3 files changed, 108 insertions(+) > > + /* Check firstly that it defaults to empty string. */ > + r = nbd_get_socket_activation_name (nbd); > + assert (r != NULL); > + assert (strcmp (r, "") == 0); > + free (r); > + > + /* Check we can set it to something and read that back. */ > + assert (nbd_set_socket_activation_name (nbd, "hello") == 0); > + r = nbd_get_socket_activation_name (nbd); > + assert (r != NULL); > + assert (strcmp (r, "hello") == 0); > + free (r); > + > + /* Run external nbdkit and check the LISTEN_FDNAMES environment > + * variable is set. We need to capture the debug output of nbdkit, > + * hence the journey through the shell. > + */ > + unlink (DEBUG_FILE); > + char *cmd[] = { > + "sh", "-c", > + "exec 2> " DEBUG_FILE "\n" > + "exec nbdkit -v -D nbdkit.environ=1 null 1024\n", > + NULL > + }; > + if (nbd_connect_systemd_socket_activation (nbd, cmd) == -1) { > + fprintf (stderr, "%s\n", nbd_get_error ()); > + exit (EXIT_FAILURE); > + }
Should we run this twice, once with a set name (as you did here, to prove LISTEN_FDNAMES=hello makes it through), and again with the default name (to see that LISTEN_FDNAMES=unknown is now populated)? Otherwise, this is a nice addition. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs