diff options
author | Jim Meyering <meyering@redhat.com> | 2009-02-02 20:35:14 +0000 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-02-02 20:35:14 +0000 |
commit | d26c3387dff0198904754fc0cedfa069740262d7 (patch) | |
tree | 0a31cceed5a79d749c21eb6a8c8ded4502455ec1 | |
parent | fix more printf("%s", NULL) cases (diff) | |
download | libvirt-d26c3387dff0198904754fc0cedfa069740262d7.tar.gz libvirt-d26c3387dff0198904754fc0cedfa069740262d7.tar.bz2 libvirt-d26c3387dff0198904754fc0cedfa069740262d7.zip |
tests: diagnose more open failures
* tests/qemuxml2argvtest.c: Revert the change,
"tests: diagnose open failure" of 2009-01-30.
* tests/testutils.c (virtTestLoadFile): Diagnose failure here.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | tests/qemuxml2argvtest.c | 4 | ||||
-rw-r--r-- | tests/testutils.c | 17 |
3 files changed, 21 insertions, 7 deletions
@@ -1,3 +1,10 @@ +Mon, 2 Feb 2009 21:33:57 +0100 Jim Meyering <meyering@redhat.com> + + tests: diagnose more open failures + * tests/qemuxml2argvtest.c: Revert the change, + "tests: diagnose open failure" of 2009-01-30. + * tests/testutils.c (virtTestLoadFile): Diagnose failure here. + Mon Feb 2 18:33:19 GMT 2009 John Levon <john.levon@sun.com> * src/libvirt.c: fix more printf("%s", NULL) cases diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 1d7aeb9d7..90b474018 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -36,10 +36,8 @@ static int testCompareXMLToArgvFiles(const char *xml, virDomainDefPtr vmdef = NULL; virDomainObj vm; - if (virtTestLoadFile(cmd, &expectargv, MAX_FILE) < 0) { - fprintf(stderr, "failed to open %s: %s\n", cmd, strerror (errno)); + if (virtTestLoadFile(cmd, &expectargv, MAX_FILE) < 0) goto fail; - } if (!(vmdef = virDomainDefParseFile(NULL, driver.caps, xml, VIR_DOMAIN_XML_INACTIVE))) diff --git a/tests/testutils.c b/tests/testutils.c index e8b07fc60..8d8f82d11 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -1,7 +1,7 @@ /* * testutils.c: basic test utils * - * Copyright (C) 2005-2008 Red Hat, Inc. + * Copyright (C) 2005-2009 Red Hat, Inc. * * See COPYING.LIB for the License of this software * @@ -106,27 +106,36 @@ virtTestRun(const char *title, int nloops, int (*body)(const void *data), const return ret; } -int virtTestLoadFile(const char *name, +/* Read FILE into buffer BUF of length BUFLEN. + Upon any failure, or if FILE appears to contain more than BUFLEN bytes, + diagnose it and return -1, but don't bother trying to preserve errno. + Otherwise, return the number of bytes read (and copied into BUF). */ +int virtTestLoadFile(const char *file, char **buf, int buflen) { - FILE *fp = fopen(name, "r"); + FILE *fp = fopen(file, "r"); struct stat st; - if (!fp) + if (!fp) { + fprintf (stderr, "%s: failed to open: %s\n", file, strerror(errno)); return -1; + } if (fstat(fileno(fp), &st) < 0) { + fprintf (stderr, "%s: failed to fstat: %s\n", file, strerror(errno)); fclose(fp); return -1; } if (st.st_size > (buflen-1)) { + fprintf (stderr, "%s: larger than buffer (> %d)\n", file, buflen-1); fclose(fp); return -1; } if (st.st_size) { if (fread(*buf, st.st_size, 1, fp) != 1) { + fprintf (stderr, "%s: read failed: %s\n", file, strerror(errno)); fclose(fp); return -1; } |