Skip to content

Commit

Permalink
zdtm: check offset restoration on ELF files
Browse files Browse the repository at this point in the history
Signed-off-by: Michal Clapinski <[email protected]>
  • Loading branch information
mclapinski committed Oct 11, 2023
1 parent ab73a84 commit 419b89f
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/zdtm/lib/lock.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <sys/time.h>
#include <limits.h>
#include <errno.h>
#include <signal.h>
#include "asm/atomic.h"

#define BUG_ON(condition) \
Expand Down
1 change: 1 addition & 0 deletions test/zdtm/static/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ TST_NOFILE := \
sigtrap \
sigtrap01 \
change_mnt_context \
fd_offset \
# jobctl00 \
PKG_CONFIG ?= pkg-config
Expand Down
42 changes: 42 additions & 0 deletions test/zdtm/static/fd_offset.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include <fcntl.h>

#include "zdtmtst.h"
#include "lock.h"

const char *test_doc = "Check that criu properly restores offsets on ELF files";
const char *test_author = "Michal Clapinski <[email protected]>";

void check_offset(int fd)
{
int offset = lseek(fd, 0, SEEK_CUR);
if (offset < 0) {
fail("lseek");
exit(1);
}
if (offset != 0) {
fail("wrong offset; expected: 0, got: %d", offset);
exit(1);
}
}

int main(int argc, char **argv)
{
int fd;

test_init(argc, argv);

fd = open("/proc/self/exe", O_RDONLY);
if (fd < 0) {
fail("open");
exit(1);
}
check_offset(fd);

test_daemon();
test_waitsig();

check_offset(fd);

pass();
return 0;
}

0 comments on commit 419b89f

Please sign in to comment.