On Wed, 13 May 2009 16:47:35 +0200, CAI Qian wrote: > From: Jiri Palecek > Subject: [LTP] [PATCH] Fix the splice02 test > Date: Wed, 13 May 2009 00:34:15 +0200 > >> Particularly: >> >> - TEST_ERRNO is only set when the syscall is executed using the >> TEST() macro. The tests gave bad error messages because of that. >> >> - The end of the test was dead code; moved the TPASS code to pass at >> the end of file. >> >> - The test assumes std. input is a pipe; reflect this in the runtest >> file >> >> Regards >> Jiri Palecek >> >> Signed-off-by: Jiri Palecek >> --- >> runtest/syscalls | 2 +- >> testcases/kernel/syscalls/splice/splice02.c | 16 ++++++---------- >> 2 files changed, 7 insertions(+), 11 deletions(-) >> >> diff --git a/runtest/syscalls b/runtest/syscalls >> index 9b7b2ca..33beff0 100644 >> --- a/runtest/syscalls >> +++ b/runtest/syscalls >> @@ -1033,7 +1033,7 @@ sockioctl01 sockioctl01 >> #splice test >> splice01 splice01 >> -splice02 echo "Test splice02()" > splice02-temp; splice02 splice02-temp >> +splice02 seq 1 10000000 | splice02 splice02-temp >> tee01 tee01 >> diff --git a/testcases/kernel/syscalls/splice/splice02.c >> b/testcases/kernel/syscalls/splice/splice02.c >> index 321d002..16bff86 100644 >> --- a/testcases/kernel/syscalls/splice/splice02.c >> +++ b/testcases/kernel/syscalls/splice/splice02.c >> @@ -108,7 +108,6 @@ void setup() { >> int main(int ac, char **av) { >> int fd = 0; >> - int ret = 0; >> >> setup(); >> @@ -118,26 +117,23 @@ int main(int ac, char **av) { >> } >> fd=open(av[1], O_WRONLY | O_CREAT | O_TRUNC, 0644); >> if(fd < 0 ) { >> - tst_resm(TFAIL, "%s failed - errno = %d : %s", TCID, >> TEST_ERRNO, >> strerror(TEST_ERRNO)); >> + tst_resm(TFAIL, "open(%s) failed - errno = %d : %s", av[1], errno, >> strerror(errno)); >> cleanup(); >> tst_exit(); >> } >> >> do { >> - ret = splice(STDIN_FILENO, NULL, fd, NULL, SPLICE_SIZE, 0); >> - if (ret < 0) { >> - tst_resm(TFAIL, "%s failed - errno = %d : %s",TCID, >> TEST_ERRNO, >> strerror(TEST_ERRNO)); >> + TEST(splice(STDIN_FILENO, NULL, fd, NULL, SPLICE_SIZE, 0)); >> + if (TEST_RETURN < 0) { >> + tst_resm(TFAIL, "splice failed - errno = %d : %s", >> TEST_ERRNO, >> strerror(TEST_ERRNO)); >> cleanup(); >> tst_exit(); >> } else >> - if (ret < SPLICE_SIZE){ >> + if (TEST_RETURN == 0){ >> + tst_resm(TPASS, "splice() system call Passed"); >> cleanup(); >> tst_exit(); >> } >> } while(1); >> - >> - close(fd); >> - tst_resm(TPASS, "splice() system call Passed"); >> - tst_exit(); >> } >> -- 1.6.2 > > Can't apply this patch -- long lines are wrapped. Please re-send it. It seems not to be caused by wrapped lines - I can still see them in the digest. However, some empty lines seem to be lost. Anyway, it should be better now (see attachment). Regards Jiri Palecek