2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 06:15:24 +00:00

zdtm: Add write_value/read_value helpers into zdtm library

Add write_value/read_value helpers to write/read buffer to/from files into zdmt
library.

Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com>
This commit is contained in:
Bui Quang Minh
2022-09-13 21:42:48 +07:00
committed by Andrei Vagin
parent 167cfd366e
commit d7e8746598
4 changed files with 50 additions and 21 deletions

View File

@@ -4,7 +4,7 @@ CFLAGS += $(USERCFLAGS)
LIB := libzdtmtst.a
LIBSRC := datagen.c msg.c parseargs.c test.c streamutil.c lock.c ns.c tcp.c unix.c fs.c sysctl.c mem.c
LIBSRC := datagen.c msg.c parseargs.c test.c streamutil.c lock.c ns.c tcp.c unix.c fs.c sysctl.c mem.c file.c
PKG_CONFIG ?= pkg-config
pkg-config-check = $(shell sh -c '$(PKG_CONFIG) $(1) && echo y')

46
test/zdtm/lib/file.c Normal file
View File

@@ -0,0 +1,46 @@
#include <fcntl.h>
#include <unistd.h>
#include "zdtmtst.h"
int write_value(const char *path, const char *value)
{
int fd, l;
fd = open(path, O_WRONLY);
if (fd < 0) {
pr_perror("open %s", path);
return -1;
}
l = write(fd, value, strlen(value));
if (l < 0) {
pr_perror("failed to write %s to %s", value, path);
close(fd);
return -1;
}
close(fd);
return 0;
}
int read_value(const char *path, char *value, int size)
{
int fd, ret;
fd = open(path, O_RDONLY);
if (fd < 0) {
pr_perror("open %s", path);
return -1;
}
ret = read(fd, (void *)value, size);
if (ret < 0) {
pr_perror("read %s", path);
close(fd);
return -1;
}
value[ret] = '\0';
close(fd);
return 0;
}

View File

@@ -216,4 +216,7 @@ static inline void cleanup_closep(void *p)
TEMP_FAILURE_RETRY(close(*pp));
}
extern int write_value(const char *path, const char *value);
extern int read_value(const char *path, char *value, int size);
#endif /* _VIMITESU_H_ */

View File

@@ -19,26 +19,6 @@ char *dirname;
TEST_OPTION(dirname, string, "cgroup directory name", 1);
static const char *cgname = "zdtmtst";
int write_value(const char *path, const char *value)
{
int fd, l;
fd = open(path, O_WRONLY);
if (fd < 0) {
pr_perror("open %s", path);
return -1;
}
l = write(fd, value, strlen(value));
close(fd);
if (l < 0) {
pr_perror("failed to write %s to %s", value, path);
return -1;
}
return 0;
}
int mount_and_add(const char *controller, const char *path, const char *prop, const char *value)
{
char aux[1024], paux[1024], subdir[1024];