[libvirt] [PATCH] avoid calling exit with a constant; use EXIT_* instead

Jim Meyering jim at meyering.net
Tue Dec 15 08:47:05 UTC 2009


Without this, and with updated gnulib, "make syntax-check"
would fail, complaining about exit(1), exit(0), exit(77).
It's no big deal, but slightly better for readability to use
EXIT_SUCCESS, EXIT_FAILURE, and the new, made-up/defined EXIT_AM_SKIP.
The only semantic change was to convert the "exit(2)" and "exit(3)"
in tests/conftest.c to "exit(EXIT_FAILURE);".  That seems ok, since
the sole invoker of that test program cares only about success/failure,
and not about the precise exit code.

>From 8dba638f597b50f295f3f9b5628002f39b16d776 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Tue, 15 Dec 2009 09:43:29 +0100
Subject: [PATCH] avoid calling exit with a constant; use EXIT_* instead

This appeases a new gnulib-provided "syntax-check".
* daemon/libvirtd.c (main): Use EXIT_FAILURE, not 1.
* proxy/libvirt_proxy.c (main): Likewise, and EXIT_SUCCESS, not 0.
* tests/conftest.c (main): Likewise.
* tests/reconnect.c (main): Likewise.
* tests/testutils.h (EXIT_AM_SKIP): Define.
* tests/nodeinfotest.c (mymain): Use EXIT_AM_SKIP, not 77.
* tests/qemuargv2xmltest.c: Likewise.
* tests/qemuxml2xmltest.c: Likewise.
* tests/virshtest.c (mymain): Likewise.
---
 daemon/libvirtd.c        |    2 +-
 proxy/libvirt_proxy.c    |   10 +++++-----
 tests/conftest.c         |   10 +++++-----
 tests/nodeinfotest.c     |    2 +-
 tests/qemuargv2xmltest.c |    2 +-
 tests/qemuxml2xmltest.c  |    2 +-
 tests/reconnect.c        |   10 +++++-----
 tests/testutils.h        |    4 +++-
 tests/virshtest.c        |    2 +-
 9 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index de6fc27..281a46a 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -3036,7 +3036,7 @@ int main(int argc, char **argv) {
         default:
             fprintf (stderr, "libvirtd: internal error: unknown flag: %c\n",
                      c);
-            exit (1);
+            exit (EXIT_FAILURE);
         }
     }

diff --git a/proxy/libvirt_proxy.c b/proxy/libvirt_proxy.c
index e5298fd..375966c 100644
--- a/proxy/libvirt_proxy.c
+++ b/proxy/libvirt_proxy.c
@@ -816,14 +816,14 @@ int main(int argc, char **argv) {
              persist = 1;
          } else {
              usage(argv[0]);
-             exit(1);
+             exit(EXIT_FAILURE);
          }
     }


     if (geteuid() != 0) {
         fprintf(stderr, "%s must be run as root or suid\n", argv[0]);
-        /* exit(1); */
+        /* exit(EXIT_FAILURE); */
     }

     /*
@@ -838,19 +838,19 @@ int main(int argc, char **argv) {
      * failure.
      */
     if (proxyListenUnixSocket(PROXY_SOCKET_PATH) < 0)
-        exit(0);
+        exit(EXIT_SUCCESS);
     if (proxyInitXen() == 0)
         proxyMainLoop();
     sleep(1);
     proxyCloseUnixSocket();
-    exit(0);
+    exit(EXIT_SUCCESS);
 }

 #else /* WITHOUT_XEN */

 int main(void) {
     fprintf(stderr, "libvirt was compiled without Xen support\n");
-    exit(1);
+    exit(EXIT_FAILURE);
 }

 #endif /* WITH_XEN */
diff --git a/tests/conftest.c b/tests/conftest.c
index d265de2..a7977bb 100644
--- a/tests/conftest.c
+++ b/tests/conftest.c
@@ -15,23 +15,23 @@ int main(int argc, char **argv) {

     if (argc != 2) {
         fprintf(stderr, "Usage: %s conf_file\n", argv[0]);
-        exit(1);
+        exit(EXIT_FAILURE);
     }

     conf = virConfReadFile(argv[1], 0);
     if (conf == NULL) {
         fprintf(stderr, "Failed to process %s\n", argv[1]);
-        exit(2);
+        exit(EXIT_FAILURE);
     }
     ret = virConfWriteMem(&buffer[0], &len, conf);
     if (ret < 0) {
         fprintf(stderr, "Failed to serialize %s back\n", argv[1]);
-        exit(3);
+        exit(EXIT_FAILURE);
     }
     virConfFree(conf);
     if (fwrite(buffer, 1, len, stdout) != len) {
         fprintf(stderr, "Write failed: %s\n", strerror (errno));
-        exit(1);
+        exit(EXIT_FAILURE);
     }
-    exit(0);
+    exit(EXIT_SUCCESS);
 }
diff --git a/tests/nodeinfotest.c b/tests/nodeinfotest.c
index 608a056..4cb248a 100644
--- a/tests/nodeinfotest.c
+++ b/tests/nodeinfotest.c
@@ -15,7 +15,7 @@
 static int
 mymain(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
 {
-    exit (77); /* means 'test skipped' for automake */
+    exit (EXIT_AM_SKIP);
 }

 #else
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index 5602df0..7f62bac 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -232,6 +232,6 @@ VIRT_TEST_MAIN(mymain)

 #else

-int main (void) { return (77); /* means 'test skipped' for automake */ }
+int main (void) { return (EXIT_AM_SKIP); }

 #endif /* WITH_QEMU */
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 793900c..e5900a2 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -146,6 +146,6 @@ VIRT_TEST_MAIN(mymain)

 #else

-int main (void) { exit (77); /* means 'test skipped' to automake */ }
+int main (void) { exit (EXIT_AM_SKIP); }

 #endif /* WITH_QEMU */
diff --git a/tests/reconnect.c b/tests/reconnect.c
index 33af2cc..63877fc 100644
--- a/tests/reconnect.c
+++ b/tests/reconnect.c
@@ -24,12 +24,12 @@ int main(void) {
     }
     if (conn == NULL) {
         fprintf(stderr, "First virConnectOpen() failed\n");
-        exit(1);
+        exit(EXIT_FAILURE);
     }
     dom = virDomainLookupByID(conn, id);
     if (dom == NULL) {
         fprintf(stderr, "First lookup for domain %d failed\n", id);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
     virDomainFree(dom);
     virConnectClose(conn);
@@ -39,16 +39,16 @@ int main(void) {
         conn = virConnectOpen(NULL);
     if (conn == NULL) {
         fprintf(stderr, "Second virConnectOpen() failed\n");
-        exit(1);
+        exit(EXIT_FAILURE);
     }
     dom = virDomainLookupByID(conn, id);
     if (dom == NULL) {
         fprintf(stderr, "Second lookup for domain %d failed\n", id);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
     virDomainFree(dom);
     virConnectClose(conn);
     printf("OK\n");
-    exit(0);
+    exit(EXIT_SUCCESS);

 }
diff --git a/tests/testutils.h b/tests/testutils.h
index aef1179..e5d5750 100644
--- a/tests/testutils.h
+++ b/tests/testutils.h
@@ -1,7 +1,7 @@
 /*
  * utils.c: test utils
  *
- * Copyright (C) 2005, 2008 Red Hat, Inc.
+ * Copyright (C) 2005, 2008-2009 Red Hat, Inc.
  *
  * See COPYING.LIB for the License of this software
  *
@@ -13,6 +13,8 @@

 #include <stdio.h>

+#define EXIT_AM_SKIP 77 /* tell Automake we're skipping a test */
+
 double virtTestCountAverage(double *items,
                             int nitems);

diff --git a/tests/virshtest.c b/tests/virshtest.c
index ef760e2..ad3e2fc 100644
--- a/tests/virshtest.c
+++ b/tests/virshtest.c
@@ -231,7 +231,7 @@ mymain(int argc, char **argv)
         abs_srcdir = getcwd(cwd, sizeof(cwd));

 #ifdef WIN32
-    exit (77); /* means 'test skipped' for automake */
+    exit (EXIT_AM_SKIP);
 #endif

     snprintf(buffer, PATH_MAX-1, "test://%s/../examples/xml/test/testnode.xml", abs_srcdir);
--
1.6.6.rc2.275.g51e2d




More information about the libvir-list mailing list