commit cb44289ee3fd1482d3b8551d2e3b4568eb57e114
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Tue Jul 26 10:20:24 2016 +0000
tests: fix vhangup.test
* tests/vhangup.c (main): Fix expected output for the case when
the calling process has CAP_SYS_TTY_CONFIG capability.
Reported-by: Yun-Chih Chen <b03902074@ntu.edu.tw>
diff --git a/tests/vhangup.c b/tests/vhangup.c
index ba90319..468f334 100644
--- a/tests/vhangup.c
+++ b/tests/vhangup.c
@@ -13,7 +13,18 @@ main(void)
perror_msg_and_skip("setsid");
long rc = syscall(__NR_vhangup);
- printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+
+ /*
+ * On setsid() success, the new session has no controlling terminal,
+ * therefore a subsequent vhangup() has nothing to hangup.
+ *
+ * The system call, however, returns 0 iff the calling process
+ * has CAP_SYS_TTY_CONFIG capability.
+ */
+ if (rc)
+ printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+ else
+ puts("vhangup() = 0");
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests/vhangup.c b/tests/vhangup.c
index ba90319..468f334 100644
--- a/tests-m32/vhangup.c
+++ b/tests-m32/vhangup.c
@@ -13,7 +13,18 @@ main(void)
perror_msg_and_skip("setsid");
long rc = syscall(__NR_vhangup);
- printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+
+ /*
+ * On setsid() success, the new session has no controlling terminal,
+ * therefore a subsequent vhangup() has nothing to hangup.
+ *
+ * The system call, however, returns 0 iff the calling process
+ * has CAP_SYS_TTY_CONFIG capability.
+ */
+ if (rc)
+ printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+ else
+ puts("vhangup() = 0");
puts("+++ exited with 0 +++");
return 0;