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
