From: Robert W. <ro...@us...> - 2002-07-12 17:06:09
|
Thanks for the patch...I will try in get this into CVS by close of business on Monday (July 15th). - Robbie Robert V. Williamson <ro...@us...> Linux Test Project IBM Linux Technology Center Phone: (512) 838-9295 T/L: 638-9295 http://ltp.sourceforge.net Gerhard Tonn/Germany/IBM@IBMDE To: ltp...@li... Sent by: cc: Susanne Wintenberger/Germany/IBM@IBMDE ltp...@li...ur Subject: [LTP] Patch for zSeries testcase failures ceforge.net 07/12/2002 05:02 AM Hi, attached is a file that has testcase fixes for several failing testcases on the zSeries platforms. It includes also the fixes for 64 bit I have posted some days ago, but adapted to the latest ltp version. We have recently run the ltp testsuite on the IBM zSeries platforms. It has been executed on a 31 bit and a 64 bit kernel and a 31 bit system call emulation on a 64 bit kernel. Most of the failing testcases don't succeed since the value -1 casted to an address is not an invalid address on the 31 bit zSeries platform. On most platforms kernel and user space share the same address space. An address passed from user space to kernel space is invalid on these platforms if the memory at that address is not mapped in or protected or if it's a kernel address. Passing -1 casted to an address doesn't fail on 31 bit zSeries platforms, since it addresses the bottom of the stack, and is not a kernel address as on most other platforms. In order to generate invalid addresses portable we should use the mmap call with protection PROT_NONE. See the attached file for a possible solution. Another common cause for failures is the fact that some testcases trigger two errors and it is undefined which one has to be reported first. Below are the detailed findings. The following testcases fail on the emulation layer, since -1 casted to an address is valid in this environment. - access03 1 - access03 2 - access03 3 - access03 4 - access05 6 - chdir04 3 - chmod06 4 - chown04 4 - chroot03 4 - creat06 5 - execve03 4 - lchown02 4 - link04 7 - link04 13 - lstat02 3 - mkdir01 1 - mkdir03 1 - mknod06 3 - open08 6 - rename08 1 - rename08 2 - rmdir02 5 - rmdir05 4 - stat03 3 - stat06 7 - statfs02 4 - symlink03 4 - truncate03 4 - unlink07 8 - readv02 2 - read02 3 fcntl13 fails on the emulation layer The fourth run passes two invalid parameters, the first one is an invalid file pointer, the third one an invalid address. Since the emulation wrapper does some additional parameter checking, the third one is checked before the first one which results in a different error code. See patch file for fix. statfs03 fails on the emulation layer The testcase passes an invalid buf parameter. Since the emulation wrapper does some additional parameter checking, it is checked before permission is checked which results in a different error code. See patch file for fix. pread02 fails on the 31 bit kernel This is a glibc bug on 31 bit platforms. http://www.opengroup.org/onlinepubs/007908799/xsh/read.html defines that pread returns EINVAL, if the offset is negative. However the glibc implementation on 31 bit doesn't check it but does a conversion from an off_t (defined as long) to an loff_t (defined as long long), but ignoring the sign. The 64 bit implementation is correct. We are going to fix this in the glibc function. recv01 - 3 , recvfrom01 - 5 and recvmsg01 - 5 fail on all zSeries kernels These testcases fail even when passing an invalid address since the address is never dereferenced. It succeeds on most platforms using -1 as address, since checking for kernel addresses is always done in advance, but as said above not applicable to the zSeries platform. (See attached file: ltp-20020709-s390.patch) Regards / Mit freundlichen Gruessen Gerhard Gerhard Tonn, Linux for eServer Development, +(49)-7031-16-4716, Lotus Notes: ton@ibmde, Internet: to...@de... #### ltp-20020709-s390.patch has been removed from this note on July 12 2002 by Robert Williamson |