This file contains for corresponding monthly release results. it will alwats help to refer this file and come to know about known failures.


ltp-full-20100331 Result pon various Arch:

On x86_64 machine with RHEL5.4(2.6.18-164.el5):
*****************************************************

Result Log file:
===============
eventfd01                      FAIL       4    
syslog07                       FAIL       1    
syslog08                       FAIL       1    
mtest06                        FAIL       255  
su01                           FAIL       1    
hugemmap04                     FAIL       2    
hugeshmat01                    FAIL       6    
hugeshmat02                    FAIL       6    
hugeshmat03                    FAIL       2    
hugeshmctl01                   FAIL       6    
hugeshmctl02                   FAIL       6    
hugeshmctl03                   FAIL       2    
hugeshmdt01                    FAIL       6    
hugeshmget01                   FAIL       2    
hugeshmget02                   FAIL       6    
hugeshmget03                   FAIL       6    
hugeshmget05                   FAIL       2    
mail                           FAIL       2    


Result Output file:
==================
syslog07    1  TFAIL  :  Higher level messages are not logged.
check_netns_enabled    1  TFAIL  :  unshare syscall smoke test failed: errno=EINVAL(22): Invalid argument
mail_tests::mail02    2  TFAIL  :  Test #2: Mailer-Deamon failed to report delivery failure. Reason:
mail_tests::mail05    5  TFAIL  :  Test #5: mail failed to carbon copy user mail_test. Reason:


On ppc64 machine with RHEL5.4(2.6.18-164.el5):
*****************************************************

Result Log file:
===============
cct01                         FAIL       1    
eventfd01                      FAIL       4    
fdatasync02                    FAIL       1    
syslog07                       FAIL       1    
syslog08                       FAIL       1    
mtest06                        FAIL       255  
mmapstress03                   FAIL       1    
su01                           FAIL       1    
cron_deny01                    FAIL       1    


Result Output file:
==================
acct01      1  TFAIL  :  attempting to assign acct file to device: expected failure but got okay return
fdatasync02    2  TFAIL  :  Unexpected results for file descriptor to a special file ; returned 0 (expected -1), errno 0 (expected 22)
syslog07    1  TFAIL  :  Higher level messages are not logged.
mmapstress03    1  TFAIL  :  Test failed
check_netns_enabled    1  TFAIL  :  unshare syscall smoke test failed: errno=EINVAL(22): Invalid argument



On s390x machine with RHEL5.4(2.6.18-164.el5):
*****************************************************

Result Log file:
===============
eventfd01                      FAIL       4    
keyctl01                       FAIL       1    
rt_sigsuspend01                FAIL       11   
timer_getoverrun01             FAIL       1    
timer_gettime01                FAIL       1    
su01                           FAIL       1    
cron_allow01                   FAIL       1    



Result Output file:
==================
keyctl01    2  TFAIL  :  KEYCTL_REVOKE got unexpected errno: errno=EINVAL(22): Invalid argument
timer_getoverrun01    1  TFAIL  :  Block 1: test 0 FAILED... errno = 22 : Invalid argument
timer_gettime01    1  TFAIL  :  Block 1: test 0 FAILED... errno = 22 : Invalid argument
check_netns_enabled    1  TFAIL  :  unshare syscall smoke test failed: errno=EINVAL(22): Invalid argument



On x86_64 machine with SLES11GA(2.6.27.19-5-default):
*****************************************************

Result Log file:
===============
eventfd2_03                    FAIL       1    
utimensat01                    FAIL       1    
ftest04                        FAIL       1    
