Since commit http://git.kernel.org/linus/65cfc672 which added O_PATH support to the *at() calls, the error return for readlink/readlinkat for the empty pathname has switched from ENOENT to EINVAL. And this patch merged to linux v2.6.39, So LTP commit http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=commitdiff;h=0cc75148b95e2ed8ecb311f20d91f449461d8860 fix this with the kernel version v2.6.39 compared.
But recently, commit http://git.kernel.org/linus/1fa1e7f6 which ensure we return ENOENT for the empty pathname for normal lookups. Now, the patch whitch switch the return value back again is already queued for 3.0 and 3.1 stable release. So, if the return value is EINVAL for empty pathname, it may be a kernel bug, so we needn't to check the kernel version but return the "kernel bug" INFO to LTP the users. Signed-off-by: Wanlong Gao <[email protected]> Acked-by: Jan Stancek <[email protected]> --- testcases/kernel/syscalls/readlink/readlink03.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/testcases/kernel/syscalls/readlink/readlink03.c b/testcases/kernel/syscalls/readlink/readlink03.c index 370bf7d..e95078a 100644 --- a/testcases/kernel/syscalls/readlink/readlink03.c +++ b/testcases/kernel/syscalls/readlink/readlink03.c @@ -173,11 +173,6 @@ int main(int ac, char **av) buf_size = sizeof(buffer); } - if (strncmp(test_desc, "Symlink Pathname is empty", 25) == 0) { - if ((tst_kvercmp(2, 6, 39)) >= 0) - Test_cases[i].exp_errno = EINVAL; - } - /* * Call readlink(2) to test different test conditions. * verify that it fails with -1 return value and sets @@ -204,6 +199,11 @@ int main(int ac, char **av) "errno=%d, expected errno=%d", test_desc, TEST_ERRNO, Test_cases[i].exp_errno); + if ((strncmp(test_desc, "Symlink Pathname is empty", 25) == 0) && + TEST_ERRNO == EINVAL) { + printf("It may be a Kernel Bug, see the patch:\n" + "http://git.kernel.org/linus/1fa1e7f6\n"); + } } } } -- 1.7.10.rc0 ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
