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
|
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 ?= pkg-config
|
||||||
pkg-config-check = $(shell sh -c '$(PKG_CONFIG) $(1) && echo y')
|
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));
|
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_ */
|
#endif /* _VIMITESU_H_ */
|
||||||
|
@@ -19,26 +19,6 @@ char *dirname;
|
|||||||
TEST_OPTION(dirname, string, "cgroup directory name", 1);
|
TEST_OPTION(dirname, string, "cgroup directory name", 1);
|
||||||
static const char *cgname = "zdtmtst";
|
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)
|
int mount_and_add(const char *controller, const char *path, const char *prop, const char *value)
|
||||||
{
|
{
|
||||||
char aux[1024], paux[1024], subdir[1024];
|
char aux[1024], paux[1024], subdir[1024];
|
||||||
|
Reference in New Issue
Block a user