tests: add memfd_create test variants with different xlat verbosity levels

* tests/memfd_create-Xabbrev.c: New file.
* tests/memfd_create-Xraw.c: Likewise.
* tests/memfd_create-Xverbose.c: Likewise.
* tests/memfd_create.c: Add handling of XLAT_RAW and XLAT_VERBOSE flags.
* tests/pure_executables.list: Add memfd_create-Xabbrev, memfd_create-Xraw,
and memfd_create-Xverbose.
* tests/.gitignore: Likewise.
* tests/gen_tests.in (memfd_create-Xabbrev, memfd_create-Xraw,
memfd_create-Xverbose): New tests.
This commit is contained in:
Дмитрий Левин 2018-11-26 02:04:04 +00:00
parent f11fb909d7
commit 956dc3ed36
7 changed files with 52 additions and 5 deletions

3
tests/.gitignore vendored
View File

@ -217,6 +217,9 @@ madvise
mbind
membarrier
memfd_create
memfd_create-Xabbrev
memfd_create-Xraw
memfd_create-Xverbose
migrate_pages
mincore
mkdir

View File

@ -200,6 +200,9 @@ madvise -a33
mbind
membarrier -a36
memfd_create
memfd_create-Xabbrev -Xabbrev -e trace=memfd_create
memfd_create-Xraw -a30 -Xraw -e trace=memfd_create
memfd_create-Xverbose -Xverbose -e trace=memfd_create
migrate_pages -a33
mincore -a22
mkdir -a20

View File

@ -0,0 +1 @@
#include "memfd_create.c"

View File

@ -0,0 +1,2 @@
#define XLAT_RAW 1
#include "memfd_create.c"

View File

@ -0,0 +1,2 @@
#define XLAT_VERBOSE 1
#include "memfd_create.c"

View File

@ -1,7 +1,7 @@
/*
* Check decoding of memfd_create syscall.
*
* Copyright (c) 2015-2017 Dmitry V. Levin <ldv@altlinux.org>
* Copyright (c) 2015-2018 Dmitry V. Levin <ldv@altlinux.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -71,25 +71,58 @@ main(void)
(int) size - 1, pattern, errstr);
kernel_ulong_t flags = (kernel_ulong_t) 0xfacefeed00000007ULL;
# define flags1_str "MFD_CLOEXEC|MFD_ALLOW_SEALING|MFD_HUGETLB"
k_memfd_create((uintptr_t) pattern, flags);
# if XLAT_VERBOSE
printf("memfd_create(\"%.*s\"..., %s /* %s */) = %s\n",
(int) size - 1, pattern,
"0x7", flags1_str, errstr);
# else
printf("memfd_create(\"%.*s\"..., %s) = %s\n",
(int) size - 1, pattern,
"MFD_CLOEXEC|MFD_ALLOW_SEALING|MFD_HUGETLB",
# if XLAT_RAW
"0x7",
# else
flags1_str,
# endif
errstr);
# endif
pattern[size - 1] = '\0';
flags = 30 << MFD_HUGE_SHIFT;
k_memfd_create((uintptr_t) pattern, flags);
# if XLAT_RAW
printf("memfd_create(\"%s\", %#x) = %s\n",
pattern, (unsigned int) flags, errstr);
# elif XLAT_VERBOSE
printf("memfd_create(\"%s\", %#x /* %s */) = %s\n",
pattern, (unsigned int) flags, "30<<MFD_HUGE_SHIFT", errstr);
# else /* XLAT_ABBREV */
printf("memfd_create(\"%s\", 30<<MFD_HUGE_SHIFT) = %s\n",
pattern, errstr);
# endif
pattern += size - 1;
flags = (kernel_ulong_t) -1ULL;
k_memfd_create(0, flags);
flags = -1U & ~(7 | (MFD_HUGE_MASK << MFD_HUGE_SHIFT));
printf("memfd_create(NULL, MFD_CLOEXEC|MFD_ALLOW_SEALING|MFD_HUGETLB"
"|%#x|%u<<MFD_HUGE_SHIFT) = %s\n",
(unsigned int) flags, MFD_HUGE_MASK, errstr);
# define memfd_create_fmt "%s|%#x|%u<<MFD_HUGE_SHIFT"
printf("memfd_create(NULL, "
# if XLAT_RAW
"0xffffffff) = %s\n",
# else
# if XLAT_VERBOSE
"0xffffffff /* " memfd_create_fmt " */"
# else /* XLAT_ABBREV */
memfd_create_fmt
# endif
") = %s\n",
flags1_str, (unsigned int) flags, MFD_HUGE_MASK,
# endif
errstr);
puts("+++ exited with 0 +++");
return 0;

View File

@ -173,6 +173,9 @@ madvise
mbind
membarrier
memfd_create
memfd_create-Xabbrev
memfd_create-Xraw
memfd_create-Xverbose
migrate_pages
mincore
mkdir