summaryrefslogtreecommitdiff
path: root/tests/dup2.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dup2.c')
-rw-r--r--tests/dup2.c59
1 files changed, 51 insertions, 8 deletions
diff --git a/tests/dup2.c b/tests/dup2.c
index ec735e928..96b155b85 100644
--- a/tests/dup2.c
+++ b/tests/dup2.c
@@ -25,6 +25,23 @@
# define SKIP_IF_PROC_IS_UNAVAILABLE
# endif
+# ifndef PATH_TRACING
+# define PATH_TRACING 0
+# endif
+# ifndef TRACE_FDS
+# define TRACE_FDS 0
+# endif
+# ifndef TRACE_FD_0
+# define TRACE_FD_0 (!TRACE_FDS && !PATH_TRACING)
+# endif
+# ifndef TRACE_OTHER_FDS
+# define TRACE_OTHER_FDS (!TRACE_FDS && !PATH_TRACING)
+# endif
+# ifndef TRACE_FD_9
+# define TRACE_FD_9 (!TRACE_FDS && !PATH_TRACING)
+# endif
+
+
static const char *errstr;
static long
@@ -49,69 +66,95 @@ main(void)
if (k_dup2(0, 0))
perror_msg_and_skip("dup2");
-# ifndef PATH_TRACING
+# if TRACE_FD_0
printf("dup2(0" FD0_PATH ", 0" FD0_PATH ") = 0" FD0_PATH "\n");
# endif
k_dup2(-1, -2);
-# ifndef PATH_TRACING
+# if !PATH_TRACING && !TRACE_FDS
printf("dup2(-1, -2) = %s\n", errstr);
# endif
k_dup2(-2, -1);
-# ifndef PATH_TRACING
+# if !PATH_TRACING && !TRACE_FDS
printf("dup2(-2, -1) = %s\n", errstr);
# endif
k_dup2(-3, 0);
-# ifndef PATH_TRACING
+# if TRACE_FD_0
printf("dup2(-3, 0" FD0_PATH ") = %s\n", errstr);
# endif
k_dup2(0, -4);
-# ifndef PATH_TRACING
+# if TRACE_FD_0
printf("dup2(0" FD0_PATH ", -4) = %s\n", errstr);
# endif
k_dup2(-5, 9);
+# if PATH_TRACING || TRACE_FD_9
printf("dup2(-5, 9" FD9_PATH ") = %s\n", errstr);
+# endif
k_dup2(9, -6);
+# if PATH_TRACING || TRACE_FD_9
printf("dup2(9" FD9_PATH ", -6) = %s\n", errstr);
+# endif
k_dup2(9, 9);
+# if PATH_TRACING || TRACE_FD_9
printf("dup2(9" FD9_PATH ", 9" FD9_PATH ") = 9" FD9_PATH "\n");
+# endif
k_dup2(0, fd0);
-# ifndef PATH_TRACING
+# if TRACE_FD_0
printf("dup2(0" FD0_PATH ", %d" FD0_PATH ") = %d" FD0_PATH "\n",
fd0, fd0);
# endif
+ k_dup2(fd0, fd9);
+# if PATH_TRACING || TRACE_OTHER_FDS
+ printf("dup2(%d" FD0_PATH ", %d" FD9_PATH ") = %d" FD0_PATH "\n",
+ fd0, fd9, fd9);
+# endif
+
+ k_dup2(fd0, fd9);
+# if TRACE_OTHER_FDS
+ printf("dup2(%d" FD0_PATH ", %d" FD0_PATH ") = %d" FD0_PATH "\n",
+ fd0, fd9, fd9);
+# endif
+
k_dup2(9, fd9);
- printf("dup2(9" FD9_PATH ", %d" FD9_PATH ") = %d" FD9_PATH "\n",
+# if PATH_TRACING || TRACE_FD_9 || TRACE_OTHER_FDS
+ printf("dup2(9" FD9_PATH ", %d" FD0_PATH ") = %d" FD9_PATH "\n",
fd9, fd9);
+# endif
k_dup2(0, fd9);
+# if PATH_TRACING || TRACE_FD_0
printf("dup2(0" FD0_PATH ", %d" FD9_PATH ") = %d" FD0_PATH "\n",
fd9, fd9);
+# endif
k_dup2(9, fd0);
+# if PATH_TRACING || TRACE_FD_9 || TRACE_OTHER_FDS
printf("dup2(9" FD9_PATH ", %d" FD0_PATH ") = %d" FD9_PATH "\n",
fd0, fd0);
+# endif
close(fd0);
close(fd9);
k_dup2(0, fd0);
-# ifndef PATH_TRACING
+# if TRACE_FD_0
printf("dup2(0" FD0_PATH ", %d) = %d" FD0_PATH "\n",
fd0, fd0);
# endif
k_dup2(9, fd9);
+# if PATH_TRACING || TRACE_FD_9 || TRACE_OTHER_FDS
printf("dup2(9" FD9_PATH ", %d) = %d" FD9_PATH "\n",
fd9, fd9);
+# endif
puts("+++ exited with 0 +++");
return 0;