[LTP] [PATCH] sycalls: select03: Make nfds use the correct value
Feiyu Zhu
zhufy.jy@cn.fujitsu.com
Thu Nov 5 11:38:46 CET 2020
When running select03 with runltp in /opt/ltp, this case failed as below:
select03.c:52: TFAIL: Invalid readfds: select() passed unexpectedly with 0
select03.c:52: TFAIL: Invalid writefds: select() passed unexpectedly with 0
select03.c:52: TFAIL: Invalid exceptfds: select() passed unexpectedly with 0
When running select03 with runltp, nfds should be 8 or 9 instead of 6.
Reviewed-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
Signed-off-by: Feiyu Zhu <zhufy.jy@cn.fujitsu.com>
---
testcases/kernel/syscalls/select/select03.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/testcases/kernel/syscalls/select/select03.c b/testcases/kernel/syscalls/select/select03.c
index ca1b7a5..34264d1 100644
--- a/testcases/kernel/syscalls/select/select03.c
+++ b/testcases/kernel/syscalls/select/select03.c
@@ -30,19 +30,24 @@ static struct tcases {
int exp_errno;
} tests[] = {
{ "Negative nfds", -1, &preadfds_reg, &pwritefds_reg, &nullfds, &valid_to, EINVAL },
- { "Invalid readfds", 6, &pfds_closed, &pwritefds_reg, &nullfds, &valid_to, EBADF },
- { "Invalid writefds", 6, &preadfds_reg, &pfds_closed, &nullfds, &valid_to, EBADF },
- { "Invalid exceptfds", 6, &preadfds_reg, &pwritefds_reg, &pfds_closed, &valid_to, EBADF },
- { "Faulty readfds", 6, &faulty_fds, &pwritefds_reg, &nullfds, &valid_to, EFAULT },
- { "Faulty writefds", 6, &preadfds_reg, &faulty_fds, &nullfds, &valid_to, EFAULT },
- { "Faulty exceptfds", 6, &preadfds_reg, &pwritefds_reg, &faulty_fds, &valid_to, EFAULT },
- { "Faulty timeout", 6, &preadfds_reg, &pwritefds_reg, &nullfds, &invalid_to, EFAULT },
+ { "Invalid readfds", 1, &pfds_closed, &pwritefds_reg, &nullfds, &valid_to, EBADF },
+ { "Invalid writefds", 0, &preadfds_reg, &pfds_closed, &nullfds, &valid_to, EBADF },
+ { "Invalid exceptfds", 1, &preadfds_reg, &pwritefds_reg, &pfds_closed, &valid_to, EBADF },
+ { "Faulty readfds", 1, &faulty_fds, &pwritefds_reg, &nullfds, &valid_to, EFAULT },
+ { "Faulty writefds", 0, &preadfds_reg, &faulty_fds, &nullfds, &valid_to, EFAULT },
+ { "Faulty exceptfds", 1, &preadfds_reg, &pwritefds_reg, &faulty_fds, &valid_to, EFAULT },
+ { "Faulty timeout", 1, &preadfds_reg, &pwritefds_reg, &nullfds, &invalid_to, EFAULT },
};
static void run(unsigned int n)
{
struct tcases *tc = &tests[n];
+ if (tc->nfds == 0)
+ tc->nfds = fd[0]+1;
+ else if (tc->nfds == 1)
+ tc->nfds = fd[1]+1;
+
TEST(do_select_faulty_to(tc->nfds, *tc->readfds, *tc->writefds,
*tc->exceptfds, *tc->timeout,
tc->timeout == &invalid_to));
--
1.8.3.1
More information about the ltp
mailing list