提交 9b9c6528 编写于 作者: P Pavel Hrdina

vircgrouptest: introduce initFakeFS and cleanupFakeFS helpers

We need to configure multiple env variables for each set of tests so
create helper functions to do that.
Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
上级 61ff6021
......@@ -830,10 +830,10 @@ static int testCgroupGetBlkioIoDeviceServiced(const void *args ATTRIBUTE_UNUSED)
# define FAKEROOTDIRTEMPLATE abs_builddir "/fakerootdir-XXXXXX"
static int
mymain(void)
static char *
initFakeFS(const char *mode,
const char *filename)
{
int ret = 0;
char *fakerootdir;
if (VIR_STRDUP_QUIET(fakerootdir, FAKEROOTDIRTEMPLATE) < 0) {
......@@ -848,6 +848,33 @@ mymain(void)
setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, 1);
if (mode)
setenv("VIR_CGROUP_MOCK_MODE", mode, 1);
if (filename)
setenv("VIR_CGROUP_MOCK_FILENAME", filename, 1);
return fakerootdir;
}
static void
cleanupFakeFS(char *fakerootdir)
{
if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
virFileDeleteTree(fakerootdir);
VIR_FREE(fakerootdir);
unsetenv("LIBVIRT_FAKE_ROOT_DIR");
unsetenv("VIR_CGROUP_MOCK_MODE");
unsetenv("VIR_CGROUP_MOCK_FILENAME");
}
static int
mymain(void)
{
int ret = 0;
char *fakerootdir;
# define DETECT_MOUNTS_FULL(file, fail) \
do { \
struct _detectMountsData data = { file, fail }; \
......@@ -871,7 +898,7 @@ mymain(void)
DETECT_MOUNTS_FAIL("no-cgroups");
DETECT_MOUNTS("kubevirt");
setenv("VIR_CGROUP_MOCK_FILENAME", "systemd", 1);
fakerootdir = initFakeFS(NULL, "systemd");
if (virTestRun("New cgroup for self", testCgroupNewForSelf, NULL) < 0)
ret = -1;
......@@ -907,26 +934,23 @@ mymain(void)
if (virTestRun("virCgroupGetPercpuStats works", testCgroupGetPercpuStats, NULL) < 0)
ret = -1;
unsetenv("VIR_CGROUP_MOCK_FILENAME");
cleanupFakeFS(fakerootdir);
setenv("VIR_CGROUP_MOCK_FILENAME", "all-in-one", 1);
fakerootdir = initFakeFS(NULL, "all-in-one");
if (virTestRun("New cgroup for self (allinone)", testCgroupNewForSelfAllInOne, NULL) < 0)
ret = -1;
if (virTestRun("Cgroup available", testCgroupAvailable, (void*)0x1) < 0)
ret = -1;
unsetenv("VIR_CGROUP_MOCK_FILENAME");
cleanupFakeFS(fakerootdir);
setenv("VIR_CGROUP_MOCK_FILENAME", "logind", 1);
fakerootdir = initFakeFS(NULL, "logind");
if (virTestRun("New cgroup for self (logind)", testCgroupNewForSelfLogind, NULL) < 0)
ret = -1;
if (virTestRun("Cgroup available", testCgroupAvailable, (void*)0x0) < 0)
ret = -1;
unsetenv("VIR_CGROUP_MOCK_FILENAME");
cleanupFakeFS(fakerootdir);
if (getenv("LIBVIRT_SKIP_CLEANUP") == NULL)
virFileDeleteTree(fakerootdir);
VIR_FREE(fakerootdir);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册