dup3(2): add EINVAL error number test
PATCH v2 1/1 dup3(2): add EINVAL error number test
add EINVAL error number test
Signed-off-by Xiaoguang Wang <[email protected]>
--- runtest/syscalls | 1 + testcases/kernel/syscalls/.gitignore | 1 + testcases/kernel/syscalls/dup3/dup3_02.c | 119 +++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 testcases/kernel/syscalls/dup3/dup3_02.c
runtest/syscalls +1 -0
@@ -118,6 +118,7 @@ dup204 dup204 dup205 dup205 dup3_01 dup3_01 +dup3_02 dup3_02 epoll_create1_01 epoll_create1_01 epoll01 epoll-ltp
testcases/kernel/syscalls/.gitignore +1 -0
@@ -96,6 +96,7 @@ /dup2/dup204 /dup2/dup205 /dup3/dup3_01 +/dup3/dup3_02 /epoll/epoll-ltp /epoll_create1/epoll_create1_01 /eventfd/eventfd01
testcases/kernel/syscalls/dup3/dup3_02.c new file +119 -0
119 lines not on this page · raw message
Signature · 14 lines
1.8.2.1 ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
Hi!
Quoted 55 lines
testcases/kernel/syscalls/dup3/dup3_02.c new file +55
-0+/* +* Copyright (c) 2013 Fujitsu Ltd. +* Author: Xiaoguang Wang <[email protected]> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of version 2 of the GNU General Public License as +* published by the Free Software Foundation. +* +* This program is distributed in the hope that it would be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write the Free Software Foundation, Inc., +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/* +* Description: +* Verify that, +* 1. dup3() fails with -1 return value and sets errno to EINVAL +* if flags contain an invalid value or oldfd was equal to newfd. +*/ + +#include <stdio.h> +#include <errno.h> +#include <unistd.h> +#include <fcntl.h> +#include <string.h> +#include <signal.h> +#include <sys/types.h> + +#include "test.h" +#include "usctest.h" +#include "safe_macros.h" +#include "linux_syscall_numbers.h" + + +static void setup (void ); +static void cleanup (void ); + +#define INVALID_FLAG -1 + +static int old_fd; +static int new_fd; + +static struct test_case_t { +int *oldfd; +int *newfd; +int flags; +int exp_errno; +} test_cases[] = { + {&old_fd, &old_fd,O_CLOEXEC ,EINVAL }, + {&old_fd, &old_fd,0 ,EINVAL }, + {&old_fd, &new_fd,INVALID_FLAG ,EINVAL }
testcases/kernel/syscalls/dup3/dup3_02.c line 65
Quoted 10 lines
testcases/kernel/syscalls/dup3/dup3_02.c new file +10
-0+}; + +char *TCID ="dup3_02" ; +int TST_TOTAL =ARRAY_SIZE (test_cases); +static int exp_enos[] = {EINVAL ,0 }; + +int main (int ac,char **av) +{ +int lc; +int i;
Add the standard option parsing code here please.
Quoted 13 lines
testcases/kernel/syscalls/dup3/dup3_02.c new file +13
-0+ +setup (); + +TEST_EXP_ENOS (exp_enos); + +for (lc =0 ;TEST_LOOPING (lc); lc++) { + tst_count =0 ; + +for (i =0 ; i <TST_TOTAL ; i++) { +TEST (ltp_syscall (__NR_dup3, *(test_cases[i].oldfd), + *(test_cases[i].newfd), test_cases[i].flags)); + +if (TEST_RETURN !=-1 ) {
testcases/kernel/syscalls/dup3/dup3_02.c line 89
Quoted 10 lines
testcases/kernel/syscalls/dup3/dup3_02.c new file +10
-0+tst_resm (TFAIL ,"dup3 succeeded unexpectedly" ); +continue ; + } + +if (TEST_ERRNO == test_cases[i].exp_errno) { +tst_resm (TPASS |TTERRNO , +"dup3 failed as expected" ); + }else { + tst_resm(TFAIL | TTERRNO, + "dup3 failed unexpectedly; expected:",
^
This comma wronlgy passes three arguments to a tst_resm() that ends up with format string with no conversions.
Quoted 30 lines
testcases/kernel/syscalls/dup3/dup3_02.c new file +30
-0+"%d - %s" , test_cases[i].exp_errno, + strerror(test_cases[i].exp_errno)); + } + } + } + +cleanup (); +tst_exit (); +} + +static void setup (void ) +{ +tst_sig (NOFORK ,DEF_HANDLER , cleanup); + +tst_tmpdir (); + +TEST_PAUSE ; + + old_fd =SAFE_CREAT (cleanup,"testeinval.file" ,0644 ); + new_fd =-1 ; +} + +static void cleanup (void ) +{ +TEST_CLEANUP ; + +SAFE_CLOSE (cleanup, old_fd); + +tst_rmdir (); +}
Signature · 13 lines
Cyril Hrubis [email protected] ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list