summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.syscall/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/systemtap.syscall/dir.c')
-rw-r--r--testsuite/systemtap.syscall/dir.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/testsuite/systemtap.syscall/dir.c b/testsuite/systemtap.syscall/dir.c
new file mode 100644
index 00000000..3609fecd
--- /dev/null
+++ b/testsuite/systemtap.syscall/dir.c
@@ -0,0 +1,53 @@
+/* COVERAGE: mkdir chdir open fchdir close rmdir mkdirat */
+#define _GNU_SOURCE
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/syscall.h>
+
+int main()
+{
+ int fd;
+
+ mkdir("foobar", 0765);
+ // mkdir ("foobar", 0765) =
+
+ chdir("foobar");
+ // chdir ("foobar") = 0
+
+ chdir("..");
+ // chdir ("..") = 0
+
+ fd = open("foobar", O_RDONLY);
+ // open ("foobar", O_RDONLY) = 4
+
+ fchdir(fd);
+ // fchdir (4) = 0
+
+ chdir("..");
+ // chdir ("..") = 0
+
+ close(fd);
+ // close (4) = 0
+
+ rmdir("foobar");
+ // rmdir ("foobar") = 0
+
+ fd = open(".", O_RDONLY);
+ // open (".", O_RDONLY) = 4
+
+#ifdef SYS_mkdirat
+ mkdirat(fd, "xyzzy", 0765);
+ // mkdirat (4, "xyzzy", 0765) = 0
+
+#endif
+
+ close(fd);
+ // close (4) = 0
+
+ rmdir("xyzzy");
+ // rmdir ("xyzzy") =
+
+ return 0;
+}