2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-28 21:07:43 +00:00
criu/test/compel/handle_binary.c
Dmitry Safonov 6fe6a283e1 compel: add tests for compel
Yet they only test for ELF header, but soon I'll add more of them.
It's build with
  $ make test/compel/handle_binary
and test output is in TAP format:
  $ ./test/compel/handle_binary
  ok 1 - check zero ELF header
  ok 2 - check non-supported ELF header
  ok 3 - check non-relocatable ELF header
  ok 4 - check zero ELF header
  ok 5 - check non-supported ELF header
  ok 6 - check non-relocatable ELF header
(here two runs for x86_64 and x86_32 ELF binaries)
I'm planning to integrate it with Travis, so we will be
sure that compel is properly working (as this tests doesn't need
any ns and may be run on qemu-static).

Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14 21:03:29 +03:00

40 lines
811 B
C

#include <string.h>
#include "uapi/piegen-err.h"
#include "piegen.h"
#include "arch_test_handle_binary.h"
extern int launch_test(void *mem, int expected_ret, const char *test_name);
static void set_elf_hdr_relocatable(Ehdr_t *hdr)
{
hdr->e_type = ET_REL;
hdr->e_version = EV_CURRENT;
}
static int test_prepare_elf_header(void *elf)
{
memset(elf, 0, sizeof(Ehdr_t));
if (launch_test(elf, -E_NOT_ELF, "check zero ELF header"))
return -1;
arch_test_set_elf_hdr_ident(elf);
if (launch_test(elf, -E_NOT_ELF, "check non-supported ELF header"))
return -1;
arch_test_set_elf_hdr_machine(elf);
if (launch_test(elf, -E_NOT_ELF, "check non-relocatable ELF header"))
return -1;
set_elf_hdr_relocatable(elf);
return 0;
}
void __run_tests(void *mem)
{
if (test_prepare_elf_header(mem))
return;
}