mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-29 17:33:09 +00:00
261e7581b1
New files go into these directories: gnulib/lib gnulib/m4 gnulib/tests * bootstrap: A wrapper around gnulib-tool. * configure.in: Invoke gl_EARLY and gl_INIT, being careful to put gl_EARLY before any macro that uses AC_COMPILE_IFELSE. (AC_OUTPUT): Add lib/Makefile and gl-tests/Makefile. Remove m4/Makefile. * Makefile.am (SUBDIRS): Add gnulib/lib and remove m4. Add gnulib/tests early enough that those tests run before any libvirt unit tests. * m4/Makefile.am: Remove file. Not needed. * src/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib. (LDADDS, libvirt_la_LIBADD): Add ../gnulib/lib/libgnu.la. * src/nodeinfo.c: Include "physmem.h". * qemud/qemud.c, src/remote_internal.c: Include "getaddrinfo.h". (MEMINFO_PATH, linuxNodeInfoMemPopulate): Remove definitions. (virNodeInfoPopulate): Use physmem_total, not linuxNodeInfoMemPopulate. * tests/Makefile.am (INCLUDES): Add -I$(top_srcdir)/gnulib/lib -I../gnulib/lib. (LDADDS): Add ../gnulib/lib/libgnu.la. * qemud/Makefile.am (libvirtd_LDADD): Add ../gnulib/lib/libgnu.la. * tests/nodeinfotest.c (linuxTestCompareFiles): No longer read total memory from a file. Update expected output not to include "Memory: NNNN" * tests/nodeinfodata/linux-nodeinfo-1.txt: * tests/nodeinfodata/linux-nodeinfo-2.txt: * tests/nodeinfodata/linux-nodeinfo-3.txt: * tests/nodeinfodata/linux-nodeinfo-4.txt: * tests/nodeinfodata/linux-nodeinfo-5.txt: * tests/nodeinfodata/linux-nodeinfo-6.txt: * src/test.c [WITH_TEST]: Remove definition of _GNU_SOURCE that would conflict with the one now in "config.h". * autogen.sh: Add -I gnulib/m4. * src/conf.c, src/sexpr.c: Don't define _GNU_SOURCE. Instead, include "config.h". * qemud/qemud.c: Remove definition of _GNU_SOURCE. * src/openvz_driver.c: Likewise. * src/qemu_driver.c: Likewise. * src/remote_internal.c: Likewise. * configure.in: Use AC_CONFIG_AUX_DIR(build-aux), so that a bunch of gettextize-generated files go into build-aux/, rather than in the top-level directory. * .cvsignore: Adjust. * build-aux/.cvsignore: New file. Author: Jim Meyering <meyering@redhat.com>
112 lines
2.6 KiB
C
112 lines
2.6 KiB
C
#include "config.h"
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "testutils.h"
|
|
#include "internal.h"
|
|
#include "nodeinfo.h"
|
|
|
|
static char *progname;
|
|
static char *abs_top_srcdir;
|
|
|
|
#define MAX_FILE 4096
|
|
|
|
#ifdef __linux__
|
|
|
|
extern int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo, virNodeInfoPtr nodeinfo);
|
|
|
|
static int linuxTestCompareFiles(const char *cpuinfofile, const char *outputfile) {
|
|
char actualData[MAX_FILE];
|
|
char expectData[MAX_FILE];
|
|
char *expect = &expectData[0];
|
|
virNodeInfo nodeinfo;
|
|
FILE *cpuinfo;
|
|
|
|
if (virtTestLoadFile(outputfile, &expect, MAX_FILE) < 0)
|
|
return -1;
|
|
|
|
cpuinfo = fopen(cpuinfofile, "r");
|
|
if (!cpuinfo)
|
|
return -1;
|
|
if (linuxNodeInfoCPUPopulate(NULL, cpuinfo, &nodeinfo) < 0) {
|
|
fclose(cpuinfo);
|
|
return -1;
|
|
}
|
|
fclose(cpuinfo);
|
|
|
|
snprintf(actualData, MAX_FILE,
|
|
"CPUs: %u, MHz: %u, Nodes: %u, Sockets: %u, Cores: %u, Threads: %u\n",
|
|
nodeinfo.cpus, nodeinfo.mhz, nodeinfo.nodes, nodeinfo.sockets,
|
|
nodeinfo.cores, nodeinfo.threads);
|
|
|
|
if (STRNEQ(actualData, expectData)) {
|
|
if (getenv("DEBUG_TESTS")) {
|
|
printf("Expect %d '%s'\n", (int)strlen(expectData), expectData);
|
|
printf("Actual %d '%s'\n", (int)strlen(actualData), actualData);
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
static int linuxTestNodeInfo(const void *data) {
|
|
char cpuinfo[PATH_MAX];
|
|
char output[PATH_MAX];
|
|
snprintf(cpuinfo, PATH_MAX, "%s/tests/nodeinfodata/linux-%s.cpuinfo",
|
|
abs_top_srcdir, (const char*)data);
|
|
snprintf(output, PATH_MAX, "%s/tests/nodeinfodata/linux-%s.txt",
|
|
abs_top_srcdir, (const char*)data);
|
|
return linuxTestCompareFiles(cpuinfo, output);
|
|
}
|
|
#endif
|
|
|
|
|
|
int
|
|
main(int argc, char **argv)
|
|
{
|
|
int ret = 0;
|
|
#ifdef __linux__
|
|
int i;
|
|
const char *nodeData[] = {
|
|
"nodeinfo-1",
|
|
"nodeinfo-2",
|
|
"nodeinfo-3",
|
|
"nodeinfo-4",
|
|
"nodeinfo-5",
|
|
"nodeinfo-6",
|
|
};
|
|
|
|
abs_top_srcdir = getenv("abs_top_srcdir");
|
|
if (!abs_top_srcdir)
|
|
return EXIT_FAILURE;
|
|
|
|
progname = argv[0];
|
|
|
|
if (argc > 1) {
|
|
fprintf(stderr, "Usage: %s\n", progname);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
virInitialize();
|
|
|
|
for (i = 0 ; i < (sizeof(nodeData)/sizeof(nodeData[0])) ; i++)
|
|
if (virtTestRun(nodeData[i], 1, linuxTestNodeInfo, nodeData[i]) != 0)
|
|
ret = -1;
|
|
#endif
|
|
|
|
exit(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
|
|
}
|
|
|
|
/*
|
|
* Local variables:
|
|
* indent-tabs-mode: nil
|
|
* c-indent-level: 4
|
|
* c-basic-offset: 4
|
|
* tab-width: 4
|
|
* End:
|
|
*/
|