commit cb44289ee3fd1482d3b8551d2e3b4568eb57e114 Author: Dmitry V. Levin 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 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;