tests: add mkdirat.test

* tests/mkdirat.c: New file.
* tests/mkdirat.test: New test.
* tests/.gitignore: Add mkdirat.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add mkdirat.test.
This commit is contained in:
Fei Jie 2016-04-06 14:18:51 +08:00 committed by Dmitry V. Levin
parent 93faa4cc88
commit c4a30f15ef
4 changed files with 38 additions and 0 deletions

1
tests/.gitignore vendored
View File

@ -73,6 +73,7 @@ lstat64
membarrier
memfd_create
mincore
mkdirat
mknod
mlock2
mmap

View File

@ -122,6 +122,7 @@ check_PROGRAMS = \
membarrier \
memfd_create \
mincore \
mkdirat \
mknod \
mlock2 \
mmap \
@ -317,6 +318,7 @@ DECODER_TESTS = \
membarrier.test \
memfd_create.test \
mincore.test \
mkdirat.test \
mknod.test \
mlock2.test \
mmap.test \

29
tests/mkdirat.c Normal file
View File

@ -0,0 +1,29 @@
#include "tests.h"
#include <sys/syscall.h>
#ifdef __NR_mkdirat
# include <errno.h>
# include <sys/stat.h>
# include <stdio.h>
# include <unistd.h>
int
main(void)
{
static const char sample[] = "mkdirat.sample";
const long fd = (long) 0xdeadbeefffffffff;
int rc = syscall(__NR_mkdirat, fd, sample, 0600);
printf("mkdirat(%d, \"%s\", 0600) = %d %s (%m)\n",
(int) fd, sample, rc,
errno == ENOSYS ? "ENOSYS" : "EBADF");
puts("+++ exited with 0 +++");
return 0;
}
#else
SKIP_MAIN_UNDEFINED("__NR_mkdirat")
#endif

6
tests/mkdirat.test Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
# Check mkdirat syscall decoding.
. "${srcdir=.}/init.sh"
run_strace_match_diff -a36