From: Subrata M. <su...@li...> - 2008-06-21 21:56:25
|
On Thu, 2008-06-19 at 14:35 +0900, Masatake YAMATO wrote: > Hi, > > > Yamato, > > > > I have tested this on various architectures and kernel versions. The > > tests doesn´t seem to build well on some, where it builds and runs > > properly on others. The problem seems to be because of absence of > > libaio, which is not present on all machines. > > > > We need to handle this at the Makefile level, by aborting building and > > subsequently running it, if the library is not present on the system. > > Please see the output it generated on the various architectures i > > tested. I hope you will resend me a new patch which solves this issue. > > Thank you for testing. > By refering modify_ldt/Makefile I've changed the Makefile. > > Could you try again? Thank you for resending the patch. I have again tested across various architectures and kernels and had the following observation: 1) It encountered a build failure on a 2.6.7 kernel instead of presence of header checking. Please see whether you need to check for other parameters as well before building, 2) When it installed successfully, it also ran successfully on those machines, 3) When it did not install as it did not build, the run will give errors due to absence of io_cancel* binary(s) in testcases/bin. User will see error message like: initiation_status="pan(): execvp of 'io_cancel01' (tag io_cancel01) failed. errno:2 No such file or directory" Instead of that we should have some meaningful error message (the same i proposed to Li Zefan and Vijay Kumar) like: io_cancel01 0 CONF : System doesn't support execution of the test For this to happen, the runtest/syscalls should have the following code instead: io_cancel01 if [ -f io_cancel01 ]; then io_cancel; else echo "io_cancel01 0 CONF : System doesn't support execution of the test"; exit 0; fi Following are results as obtained on various machines/architectures: ===================================================================== ===================================================================== 1) Linux 2.6.23.13 #1 SMP Wed Jan 9 18:14:28 PST 2008 ia64 GNU/Linux [io_cancel: No Build Failure, No Install, Will give error while running as Binary not present in testcases/bin] ===================================================================== 2) Linux 2.6.16.21-0.8-default #1 SMP Mon Jul 3 18:25:39 UTC 2006 ia64 ia64 ia64 GNU/Linux [io_cancel: No Build Failure, Installed and Run Successfully] ===================================================================== 3) Linux 2.6.9-70.EL #1 Fri May 2 13:00:36 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux [io_cancel: No Build Failure, Installed and Run Successful] ===================================================================== 4) Linux 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:15 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux [io_cancel: No Build Failure, No Install, Will give error while running as Binary not present in testcases/bin] ===================================================================== 5) Linux 2.6.15-23-server #1 SMP Tue May 23 15:10:35 UTC 2006 i686 GNU/Linux [io_cancel: No Build Failure, No Install, Will give error while running as Binary not present in testcases/bin] ===================================================================== 6) Linux 2.6.7 #1 SMP Tue Aug 10 15:35:24 PDT 2004 i686 GNU/Linux [io_cancel: Build Failure, cc -Wall -I../../include -g -Wall -I../../../../include -Wall io_cancel01.c -laio -L../../../../lib -lltp -o io_cancel01 /usr/bin/ld: cannot find -laio collect2: ld returned 1 exit status make[4]: *** [io_cancel01] Error 1 ] ===================================================================== 7) Linux 2.6.9-42.EL #1 SMP Wed Jul 12 23:22:51 EDT 2006 ppc64 ppc64 ppc64 GNU/Linux [io_cancel: No Build Failure, No Install, Will give error while running as Binary not present in testcases/bin] ===================================================================== 8) Linux 2.6.18-92.el5 #1 SMP Tue Apr 29 13:21:29 EDT 2008 ppc64 ppc64 ppc64 GNU/Linux [io_cancel: No Build Failure, No Install, Will give error while running as Binary not present in testcases/bin] ===================================================================== ===================================================================== Regards-- Subrata > > > BTW, folowing code snippet in modify_ldt/Makefile is quite > useful for Makefiles for io_* test cases: > > check_header = $(shell \ > if echo "\#include <$(1)>" | $(CC) -E - > /dev/null 2>&1 ; \ > then echo yes ; \ > else echo no ; fi) > > > How do you think putting this macro to > ltp/testcases/kernel/syscalls/check_header.mk? > > So modify_ldt/Makefile and io_*/Makefile can reuse it with following line: > > > include ../check_header.mk > > > > > > Index: syscalls > > > > =================================================================== > > > > RCS file: /cvsroot/ltp/ltp/runtest/syscalls,v > > > > Also, when you resend your patch send across: > > > > RCS file: ltp/runtest/syscalls,v > > Likethis? > > retrieving revision 1.198 > diff -c -r1.198 syscalls > *** syscalls 6 Jun 2008 08:44:40 -0000 1.198 > --- syscalls 18 Jun 2008 08:22:49 -0000 > *************** > *** 329,334 **** > --- 331,338 ---- > inotify01 inotify01 > inotify02 inotify02 > > + io_cancel01 io_cancel01 > + > ioperm01 ioperm01 > ioperm02 ioperm02 > > > > Signed-off-by: Masatake YAMATO <ya...@re...> |