]> granicus.if.org Git - strace/commitdiff
tests: add mlock.test
authorFei Jie <feij.fnst@cn.fujitsu.com>
Wed, 27 Apr 2016 08:54:19 +0000 (16:54 +0800)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 27 Apr 2016 11:11:12 +0000 (11:11 +0000)
* tests/mlock.c: New file.
* tests/mlock.test: New test.
* tests/.gitignore: Add mlock.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add mlock.test.

tests/.gitignore
tests/Makefile.am
tests/mlock.c [new file with mode: 0644]
tests/mlock.test [new file with mode: 0755]

index 2d9c4ab8af0e1387d1a9a2a43282dca40a5525c0..11cc508317dbe2f6a2fbd2a83d731a5b5f085ff5 100644 (file)
@@ -110,6 +110,7 @@ mkdir
 mkdirat
 mknod
 mknodat
+mlock
 mlock2
 mlockall
 mmap
index af667ee9d70ed4996db13681f05b82ba0613683d..495f4ce1dbac1438e9f49dbbbf2795b79e4ea653 100644 (file)
@@ -162,6 +162,7 @@ check_PROGRAMS = \
        mkdirat \
        mknod \
        mknodat \
+       mlock \
        mlock2 \
        mlockall \
        mmap \
@@ -430,6 +431,7 @@ DECODER_TESTS = \
        mkdirat.test \
        mknod.test \
        mknodat.test \
+       mlock.test \
        mlock2.test \
        mlockall.test \
        mmap.test \
diff --git a/tests/mlock.c b/tests/mlock.c
new file mode 100644 (file)
index 0000000..a56dc1f
--- /dev/null
@@ -0,0 +1,37 @@
+#include "tests.h"
+#include <sys/syscall.h>
+
+#if defined __NR_mlock && defined __NR_munlock
+
+# include <stdio.h>
+# include <unistd.h>
+
+const int size = 1024;
+
+int
+main(void)
+{
+       const char *addr = tail_alloc(size);
+       if (syscall(__NR_mlock, addr, size) == 0) {
+               printf("mlock(%p, %d) = 0\n", addr, size);
+       } else {
+               printf("mlock(%p, %d) = -1 %s (%m)\n",
+                      addr, size, errno2name());
+       }
+
+       if (syscall(__NR_munlock, addr, size) == 0) {
+               printf("munlock(%p, %d) = 0\n", addr, size);
+       } else {
+               printf("munlock(%p, %d) = -1 %s (%m)\n",
+                      addr, size, errno2name());
+       }
+
+       puts("+++ exited with 0 +++");
+       return 0;
+}
+
+#else
+
+SKIP_MAIN_DEFINED("__NR_mlock && __NR_munlock")
+
+#endif
diff --git a/tests/mlock.test b/tests/mlock.test
new file mode 100755 (executable)
index 0000000..9a73a30
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Check mlock and munlock syscalls decoding.
+
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -e trace=mlock,munlock -a20