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:
committed by
Andrei Vagin
parent
167cfd366e
commit
d7e8746598
@@ -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
46
test/zdtm/lib/file.c
Normal 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;
|
||||
}
|
@@ -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_ */
|
||||
|
@@ -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];
|
||||
|
Reference in New Issue
Block a user