since kernel commit 1998cc0 (after kernel-3.8 released),
madvise(MADV_WILLNEED) to anonymous memory doesn't return -EBADF now, as
now we support swap prefetch. Thus the 5th testcase in madvise02 will
not pass. This patch fixes this by adding a tst_kvercmp() condition, and
will give a pass if kernel is >=3.9 (including the RCs).

Signed-off-by: Caspar Zhang <[email protected]>
---
 testcases/kernel/syscalls/madvise/madvise02.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/madvise/madvise02.c b/testcases/kernel/syscalls/madvise/madvise02.c
index 87d26c3..f68fb0b 100644
--- a/testcases/kernel/syscalls/madvise/madvise02.c
+++ b/testcases/kernel/syscalls/madvise/madvise02.c
@@ -187,7 +187,15 @@ int main(int argc, char *argv[])
 
 		TEST(madvise
 		     (tmp_memory_allocated, 5 * pagesize, MADV_WILLNEED));
-		check_and_print(EBADF);
+		if (tst_kvercmp(3, 9, 0) < 0)
+			check_and_print(EBADF);
+		/* in kernel commit 1998cc0, madvise(MADV_WILLNEED) to anon
+		 * mem doesn't return -EBADF now, as now we suuport swap
+		 * prefretch.
+		 */
+		else
+			tst_resm(TPASS, "madvise succeeded as expected, see "
+					"kernel commit 1998cc0 for details.");
 		free((void *)ptr_memory_allocated);
 
 		close(fd);
------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to