Commit 7c9e7cfc authored by Veronika Kabatova's avatar Veronika Kabatova Committed by Andrei Vagin

Modify and add test for configuration file functionality

Creating a test for verifying configuration parsing feature. The
test is created by reusing already present inotify_irmap test.

Because of addition of default configuration files, --no-default-config
option is added to zdtm.py to not break the test suite on systems with
these files present.
Signed-off-by: 's avatarVeronika Kabatova <vkabatov@redhat.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 5f3853e0
...@@ -51,7 +51,7 @@ clean_root: ...@@ -51,7 +51,7 @@ clean_root:
.PHONY: clean_root .PHONY: clean_root
clean: clean_root clean: clean_root
$(RM) zdtm_ct zdtm-tst-list umount2 $(RM) zdtm_ct zdtm-tst-list umount2 zdtm_test_config.conf
$(Q) $(RM) *.log $(Q) $(RM) *.log
$(Q) $(RM) -r ./dump/ $(Q) $(RM) -r ./dump/
$(Q) $(MAKE) -C zdtm cleandep clean cleanout $(Q) $(MAKE) -C zdtm cleandep clean cleanout
......
...@@ -738,8 +738,8 @@ class criu_cli: ...@@ -738,8 +738,8 @@ class criu_cli:
print("Forcing %s fault" % fault) print("Forcing %s fault" % fault)
env['CRIU_FAULT'] = fault env['CRIU_FAULT'] = fault
cr = subprocess.Popen(strace + [criu_bin, action] + args, env = env, cr = subprocess.Popen(strace + [criu_bin, action, "--no-default-config"] + args,
close_fds = False, preexec_fn = preexec) env = env, close_fds = False, preexec_fn = preexec)
if nowait: if nowait:
return cr return cr
return cr.wait() return cr.wait()
...@@ -1130,8 +1130,8 @@ class criu: ...@@ -1130,8 +1130,8 @@ class criu:
@staticmethod @staticmethod
def check(feature): def check(feature):
return criu_cli.run("check", ["-v0", "--feature", feature], return criu_cli.run("check", ["--no-default-config", "-v0",
opts['criu_bin']) == 0 "--feature", feature], opts['criu_bin']) == 0
@staticmethod @staticmethod
def available(): def available():
......
...@@ -204,6 +204,7 @@ TST_NOFILE := \ ...@@ -204,6 +204,7 @@ TST_NOFILE := \
netns_sub \ netns_sub \
netns_sub_veth \ netns_sub_veth \
unlink_multiple_largefiles \ unlink_multiple_largefiles \
config_inotify_irmap \
# jobctl00 \ # jobctl00 \
ifneq ($(SRCARCH),arm) ifneq ($(SRCARCH),arm)
......
#include <unistd.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <sys/inotify.h>
#include <unistd.h>
#include <stdlib.h>
#include "zdtmtst.h"
/*
* This test reuses inotify_irmap test for testing configuration files
* functionality. For parts not related to configuration files, please
* refer to the original test case and it's author.
*/
const char *test_doc = "Default configuration files usage";
const char *test_author = "Veronika Kabatova <vkabatov@redhat.com>";
#define TDIR "/etc"
char test_files[2][128] = {TDIR"/zdtm-test", TDIR"/zdtm-test1",};
#define CONFIG_PATH "../../zdtm_test_config.conf"
#define BUFF_SIZE ((sizeof(struct inotify_event) + PATH_MAX))
int main (int argc, char *argv[])
{
char buf[BUFF_SIZE];
int fd, wd, i;
test_init(argc, argv);
for (i = 0; i < 2; i++) {
unlink(test_files[i]);
if (creat(test_files[i], 0600) < 0) {
pr_perror("Can't make test file");
exit(1);
}
}
fd = inotify_init1(IN_NONBLOCK);
if (fd < 0) {
pr_perror("inotify_init failed");
goto err;
}
for (i = 0; i < 2; i++) {
wd = inotify_add_watch(fd, test_files[i], IN_OPEN);
if (wd < 0) {
pr_perror("inotify_add_watch failed");
goto err;
}
}
FILE *configfile = fopen(CONFIG_PATH, "w");
if (configfile == NULL) {
pr_perror("Unable to create configuration file %s", CONFIG_PATH);
goto err;
}
fprintf(configfile, "force-irmap\t\nirmap-scan-path /zdtm/static\n");
fclose(configfile);
test_daemon();
test_waitsig();
for (i = 0; i < 2; i++) {
memset(buf, 0, sizeof(buf));
wd = open(test_files[i], O_RDONLY);
if (read(fd, buf, sizeof(buf)) <= 0) {
fail("No events in queue");
unlink(CONFIG_PATH);
goto err;
}
}
close(wd);
close(fd);
for (i = 0; i < 2; i++)
unlink(test_files[i]);
unlink(CONFIG_PATH);
pass();
return 0;
err:
for (i = 0; i < 2; i++)
unlink(test_files[i]);
return 1;
}
(lambda confpath:
{'flags': 'suid', 'opts': '--config %s' % (confpath)
}) (os.path.abspath('./zdtm_test_config.conf'))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment