[libvirt] [PATCH] tests: don't assume "localhost" only resolves to 1/2 IPs
Michal Privoznik
mprivozn at redhat.com
Mon Jul 15 16:07:26 UTC 2019
On 7/15/19 5:58 PM, Daniel P. Berrangé wrote:
> On Debian derived distros "localhost" can resolve to the normal
> "127.0.0.1" and "::1", but it can also resolve to "127.0.1.1"
>
> Rewrite the code so that it doesn't assume a fixed number of IPs.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
> tests/virsystemdtest.c | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/tests/virsystemdtest.c b/tests/virsystemdtest.c
> index cd031914ab..dd87caeebf 100644
> --- a/tests/virsystemdtest.c
> +++ b/tests/virsystemdtest.c
> @@ -548,22 +548,21 @@ testActivation(bool useNames)
> size_t nsockIP;
> int ret = -1;
> size_t i;
> - const char *names2 = "demo-unix.socket:demo-ip.socket";
> - const char *names3 = "demo-unix.socket:demo-ip.socket:demo-ip.socket";
> char nfdstr[INT_BUFSIZE_BOUND(size_t)];
> char pidstr[INT_BUFSIZE_BOUND(pid_t)];
> virSystemdActivationMap map[2];
> int *fds = NULL;
> size_t nfds = 0;
> VIR_AUTOPTR(virSystemdActivation) act = NULL;
> + virBuffer names = VIR_BUFFER_INITIALIZER;
VIR_AUTOCLEAN(virBuffer) names = VIR_BUFFER_INITIALIZER;
> +
> + virBufferAddLit(&names, "demo-unix.socket");
>
> if (testActivationCreateFDs(&sockUNIX, &sockIP, &nsockIP) < 0)
> return -1;
>
> - if (nsockIP != 1 && nsockIP != 2) {
> - fprintf(stderr, "Got %zu IP sockets but expected only 1 or 2\n", nsockIP);
> - goto cleanup;
> - }
> + for (i = 0; i < nsockIP; i++)
> + virBufferAddLit(&names, ":demo-ip.socket");
>
> snprintf(nfdstr, sizeof(nfdstr), "%zu", 1 + nsockIP);
> snprintf(pidstr, sizeof(pidstr), "%lld", (long long)getpid());
> @@ -571,8 +570,11 @@ testActivation(bool useNames)
> setenv("LISTEN_FDS", nfdstr, 1);
> setenv("LISTEN_PID", pidstr, 1);
>
> + if (virBufferError(&names))
> + goto cleanup;
> +
> if (useNames)
> - setenv("LISTEN_FDNAMES", nsockIP == 1 ? names2 : names3, 1);
> + setenv("LISTEN_FDNAMES", virBufferCurrentContent(&names), 1);
> else
> unsetenv("LISTEN_FDNAMES");
>
> @@ -627,6 +629,7 @@ testActivation(bool useNames)
>
> ret = 0;
> cleanup:
> + virBufferFreeAndReset(&names);
And drop this line.
> virObjectUnref(sockUNIX);
> for (i = 0; i < nsockIP; i++)
> virObjectUnref(sockIP[i]);
>
Reviewed-by: Michal Privoznik <mprivozn at redhat.com>
Michal
More information about the libvir-list
mailing list