From: Fei Jie Date: Tue, 26 Apr 2016 08:03:09 +0000 (+0800) Subject: tests: add mknodat.test X-Git-Tag: v4.12~281 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=63be9e318c6bb37c661a45de7166ebc599af3095;p=strace tests: add mknodat.test * tests/mknodat.c: New file. * tests/mknodat.test: New test. * tests/.gitignore: Add mknodat. * tests/Makefile.am (check_PROGRAMS): Likewise. (DECODER_TESTS): Add mknodat.test. --- diff --git a/tests/.gitignore b/tests/.gitignore index 72a2e1d4..6f056a29 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -108,6 +108,7 @@ mincore mkdir mkdirat mknod +mknodat mlock2 mlockall mmap diff --git a/tests/Makefile.am b/tests/Makefile.am index 1baf45b0..e3ffc1c5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -160,6 +160,7 @@ check_PROGRAMS = \ mkdir \ mkdirat \ mknod \ + mknodat \ mlock2 \ mlockall \ mmap \ @@ -420,6 +421,7 @@ DECODER_TESTS = \ mkdir.test \ mkdirat.test \ mknod.test \ + mknodat.test \ mlock2.test \ mlockall.test \ mmap.test \ diff --git a/tests/mknodat.c b/tests/mknodat.c new file mode 100644 index 00000000..2cdc47cf --- /dev/null +++ b/tests/mknodat.c @@ -0,0 +1,41 @@ +#include "tests.h" +#include + +#ifdef __NR_mknodat + +# include +# include +# include + +# ifdef MAJOR_IN_SYSMACROS +# include +# endif +# ifdef MAJOR_IN_MKDEV +# include +# endif + +int +main(void) +{ + static const char sample[] = "mknokat_sample"; + const long int fd = (long int) 0xdeadbeefffffffff; + long rc = syscall(__NR_mknodat, fd, sample, S_IFREG|0600, 0); + printf("mknodat(%d, \"%s\", S_IFREG|0600) = %ld %s (%m)\n", + (int) fd, sample, rc, errno2name()); + + const unsigned long dev = + (unsigned long) 0xdeadbeef00000000 | makedev(1, 7); + + rc = syscall(__NR_mknodat, fd, sample, S_IFCHR | 0400, dev); + printf("mknodat(%d, \"%s\", S_IFCHR|0400, makedev(1, 7)) = %ld %s (%m)\n", + (int) fd, sample, rc, errno2name()); + + puts("+++ exited with 0 +++"); + return 0; +} + +#else + +SKIP_MAIN_UNDEFINED("__NR_mknodat") + +#endif diff --git a/tests/mknodat.test b/tests/mknodat.test new file mode 100755 index 00000000..edf0498b --- /dev/null +++ b/tests/mknodat.test @@ -0,0 +1,6 @@ +#!/bin/sh + +# Check mknodat syscall decoding. + +. "${srcdir=.}/init.sh" +run_strace_match_diff