LTP-20080831

1) Log Message:
Compile error message occured on ia64 box. You should get a gcc warning on x86: "PAGE_SIZE" redefined. We can avoid the warning:
#ifndef PAGE_SIZE
#define PAGE_SIZE getpagesize()
#endif
But normally upper-case macros means constants, but the above macro is not a constant. Shi Weihua <shiwh@cn.fujitsu.com> & Li Zefan <lizf@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/controllers/io-throttle/iobw.c

2) Log Message:
This  patch fixes the fs_inod script. On error-condition it was not setting up proper error values and used to throw up error. Also, it was referring to a non-existent function 'error()'. Now it returns 0 on Success or non-zero value on Failure. I have verified this script  on ReadWrite dir and ReadOnly-dir where the tests fail. Signed-Off-By
: Veerendra Chandrappa <vechandr@in.ibm.com>.

Modified File(s):
ltp/testcases/kernel/fs/fs_inod/fs_inod

3) Log Message:
Addition of setgid16 syscall tests. I've tried this task. Please put compat_16.h to testcases/kernel/syscalls/setgid. And apply following patch before rebuilding tests. In addition I removed one getgid() invocation in testcases/kernel/syscalls/setgid/setgid02.c because the returned value is not used anywhere in the program. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified Files:
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/setgid/Makefile
ltp/testcases/kernel/syscalls/setgid/setgid01.c
ltp/testcases/kernel/syscalls/setgid/setgid02.c
ltp/testcases/kernel/syscalls/setgid/setgid03.c

Added Files:
ltp/testcases/kernel/syscalls/setgid/compat_16.h

4) Log Message:
As reported by Li Zefan, normally upper-case macros means constants, but the above macros are not constants: Use lower-case names instead. Signed-off-by: Andrea Righi <righi.andrea@gmail.com>. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/controllers/io-throttle/iobw.c

5) Log Message:
It is surely better to support the old blockio.bandwidth and the new blockio.bandwidth-max interface for now. So, just ignore the previous patch. Support both blockio.bandwidth and the new interface blockio.bandwidth-max, to set i/o limiting rules according to the new userspace->kernel interface (io-throttle v8). In perspective we would like to have also blockio.bandwidth-min and implement a mechanism to guarantee minimum performance levels as well. Signed-off-by: Andrea Righi <righi.andrea@gmail.com>.

Modified File(s):
ltp/testcases/kernel/controllers/io-throttle/run_io_throttle_test.sh

6) Log Message:
utimensat01 give a build error when __NR_utimensat is not set because test.h is not included. It also gives a link error because TCID is not defined. This patch fixes these issues. Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>.

Modified File(s):
ltp/testcases/kernel/syscalls/utimensat/utimensat01.c

7) Log Message:
Addition of ftruncate64 syscall test support. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s)
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/ftruncate/Makefile

8) Log Message:
Addition of truncate64 syscall test support. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/truncate/Makefile

9) Log Message:
Here is the RO Bind mount updated testcase. This script consists of 3 files.
test_robind.sh -  This is the basis testcase which setups the infrastructure for the ROBind mount
fs_ro_test     -  Which has the different tests to be executed.
Readme_ROBind  -  Explains the different testcases executed.

This testcase addresses the earlier comments and has been made more generic. Also will be adding few ioctl syscalls testcases to the fs_ro_test flatfile. As we can append more tests to the flat file fs_ro_test. Signed-Off-By: Veerendra <veeren@linux.vnet.ibm.com>. 

Added Files:
ltp/runtest/fs_readonly
ltp/testscripts/Readme_ROBind
ltp/testscripts/fs_ro_tests
ltp/testscripts/test_robind.sh

10) Log Message:
Added basic testcases for eventfd() syscall. Signed-off-by: Vijay Kumar <vijaykumar@bravegnu.org>.

Modified Files:
ltp/runtest/syscalls ltp/testcases/kernel/include/i386.in
ltp/testcases/kernel/include/ia64.in
ltp/testcases/kernel/include/powerpc.in
ltp/testcases/kernel/include/powerpc64.in
ltp/testcases/kernel/include/s390.in
ltp/testcases/kernel/include/s390x.in
ltp/testcases/kernel/include/sparc.in
ltp/testcases/kernel/include/sparc64.in
ltp/testcases/kernel/include/stub-list
ltp/testcases/kernel/include/x86_64.in

Added Files:
ltp/testcases/kernel/syscalls/eventfd/Makefile
ltp/testcases/kernel/syscalls/eventfd/eventfd01.c

11) Log Message:
Addition of get_robust_list() & set_robust_list() syscalls. Signed-Off-By: Ramon de Carvalho Valle <rcvalle@linux.vnet.ibm.com>.

Modified Files:
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/get_robust_list/Makefile
ltp/testcases/kernel/syscalls/get_robust_list/get_robust_list01.c
ltp/testcases/kernel/syscalls/set_robust_list/Makefile
ltp/testcases/kernel/syscalls/set_robust_list/set_robust_list01.c

12) Log Message:
In hugemmap01, huge page size was defined as a macro-definition.
#define page_sz ((1UL) << 24) /* Huge page size */
However different architecture may has different huge page size in kernel. Such as :
    1. http://lxr.linux.no/linux/include/asm-i386/page.h#L122
   #define HPAGE_SHIFT     22
   #define HPAGE_SIZE      ((1UL) << HPAGE_SHIFT)       // the size is 4M

    2. http://lxr.linux.no/linux/include/asm-parisc/page.h#L160
   #define HPAGE_SHIFT             22      /* 4MB (is this fixed?) */
   #define HPAGE_SIZE              ((1UL) << HPAGE_SHIFT)

    3. PPC: 16M

So read the huge page size for the kernel parameters is reasonable. The solution is to get the huge page size from the /proc/meminfo. Signed-off-by: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c
ltp/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c

13) Log Message:
Now this script returns proper exit code , in the event of failure/success. I have verified this. Signed-Off-By: Veerendra <veeren@linux.vnet.ibm.com>.

Modified File(s):
ltp/testscripts/test_robind.sh

14) Log Message:
In message_queue_test_05, it planned to allocate 100 message queues for stress testing. But if the system resource of message queue couldn't meet it, it would exit without deleting the allocated message queues. In addition, other test cases couldn't allocate a new message queue any more. This patch addresses this by:
1> Add a cleanup() to remove the created message queues at premature exit.
2> Change the default number of message queues from 100 to 10. Because the maxmum on RHEL/SLES/Ubuntu is 16.
Signed-Off-By: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/testcases/kernel/ipc/ipc_stress/message_queue_test_05.c

15) Log Message:
gcov-kernel: updated patch for 2.6.16 to include CONSTRUCTORS for ppc

Modified File(s):
ltp/utils/analysis/gcov-kernel/linux-2.6.16-gcov.patch

16) Log Message:
When compiling hackbench.c , I got the warning message:
---------------
$ ./testcases/kernel/sched/cfs-scheduler$ make
cc -I../../../../include -Wall hackbench.c -L../../../../lib -lltp -lpthread -o hackbench
hackbench.c: In function ‘main’:
hackbench.c:350: warning: control reaches end of non-void function
--------------
That means the hackbench would return a random number. I tested it on some different versions of GCC and got the non-zero return value. This simple patch can avoid this problem. Signed-off-by: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/testcases/kernel/sched/cfs-scheduler/hackbench.c

17) Log Message:
gcov-kernel: updated 2.6.26 patch to exclude arch/x86/kernel from profiling

Modified File(s):
ltp/utils/analysis/gcov-kernel/linux-2.6.26-gcov.patch

18) Log Message:
gcov-kernel: updated 2.6.25 and 2.6.24 patch to exclude arch/x86/kernel from profiling

Modified File(s):
ltp/utils/analysis/gcov-kernel/linux-2.6.24-gcov.patch
ltp/utils/analysis/gcov-kernel/linux-2.6.25-gcov.patch

19) Log Message:
gcov-kernel: forgot to update comment

Modified File(s):
ltp/utils/analysis/gcov-kernel/linux-2.6.24-gcov.patch

20) Log Message:
lcov: integrated function coverage patch by Tom Zoernen + sorting function

Modified File(s):
ltp/utils/analysis/lcov/bin/genhtml
ltp/utils/analysis/lcov/bin/geninfo
ltp/utils/analysis/lcov/bin/lcov
ltp/utils/analysis/lcov/man/genhtml.1
ltp/utils/analysis/lcov/man/geninfo.1
ltp/utils/analysis/lcov/man/lcov.1
ltp/utils/analysis/lcov/man/lcovrc.5
ltp/utils/analysis/lcov/CHANGES
ltp/utils/analysis/lcov/Makefile
ltp/utils/analysis/lcov/lcovrc

21) Log Message:
lcov: updated rpm description + summary and version strings

Modified File(s):
ltp/utils/analysis/lcov/rpm/lcov.spec
ltp/utils/analysis/lcov/bin/gendesc
ltp/utils/analysis/lcov/bin/genhtml
ltp/utils/analysis/lcov/bin/geninfo
ltp/utils/analysis/lcov/bin/genpng
ltp/utils/analysis/lcov/bin/lcov
ltp/utils/analysis/lcov/Makefile

22) Log Message:
lcov: updated versioning mechanism + fixed some man page bugs

Modified File(s):
ltp/utils/analysis/lcov/man/gendesc.1
ltp/utils/analysis/lcov/man/genhtml.1
ltp/utils/analysis/lcov/man/geninfo.1
ltp/utils/analysis/lcov/man/genpng.1
ltp/utils/analysis/lcov/man/lcov.1
ltp/utils/analysis/lcov/man/lcovrc.5
ltp/utils/analysis/lcov/bin/updateversion.pl
ltp/utils/analysis/lcov/Makefile

23) Log Message:
lcov: fix function view page creation when --no-func is specified

Modified File(s):
ltp/utils/analysis/lcov/bin/genhtml

24) Log Message:
In semaphore_test_01 case, it wanted to create a semaphore and printed out the semaphore ID for comparison with the output of the 'ipcs -s' command. So it didn't remove the semaphore when exited. Since the resource of semaphore is limited. It's better to write a shell script to perform the comparison and remove the semaphore. I wrote the bash script "testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh", and patched the "Makefile" and "runtest/ipc" to run the script. Please clean the semaphore up post patching and before executing tests. Signed-Off-By: Jin Bing Guo <guojb@cn.ibm.com>.

Modified Files:
ltp/runtest/ipc
ltp/testcases/kernel/ipc/ipc_stress/Makefile
ltp/testcases/kernel/ipc/ipc_stress/semaphore_test_01.c

Added Files:
ltp/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh

25) Log Message:
lcov: several changes
- update download link
- unify webpage links
- provide --sort and --function-coverage switch + documentation

Modified File(s):
ltp/utils/analysis/lcov/bin/gendesc
ltp/utils/analysis/lcov/bin/genhtml
ltp/utils/analysis/lcov/bin/geninfo
ltp/utils/analysis/lcov/bin/genpng
ltp/utils/analysis/lcov/bin/lcov
ltp/utils/analysis/lcov/rpm/lcov.spec
ltp/utils/analysis/lcov/man/genhtml.1

26) Log Message:
lcov: change sorting order to low-to-high coverage

Modified File(s):
ltp/utils/analysis/lcov/bin/genhtml

27) Log Message:
Intial Addition of sync_file_range() syscall test to LTP. I have developed test cases for sync_file_range() system call which will do the basic sanity (error) checking for the system call.  These tests have to be run on 2.6.17 kernel and above. The test cases have been currently tested only on x86 and x86_64 architecture. Also,  I have hard coded the system call number in the test case for  review purposes and will be later on moving it to linux_syscall_numbers.h file in the LTP framework. The support for PowerPC was provided from 2.6.22 kernel onwards. I had not taken care of it in my previous patch. Now this is addressed. Signed-Off-By: "B. N. Poornima" <poornima@in.ibm.com>.

Modified Files:
ltp/runtest/syscalls

Added Files:
ltp/include/linux_syscall_numbers.h
ltp/testcases/kernel/syscalls/sync_file_range/Makefile
ltp/testcases/kernel/syscalls/sync_file_range/sync_file_range01.c

28) Log Message:
Changed the way by which message_queue_test_02 should be run properly. Signed-Off-By: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/runtest/ipc

29) Log Message:
This is a patch from John, written a few months back.  I have fixed up a few cosmetic whitespace bits, and have refreshed it so it should apply cleanly to LTP today. Will Schmidt <will_schmidt@vnet.ibm.com>. 

Comments originally by John Stultz:

So I've been trying to go through and review our test cases to make sure we're getting sane data and the tests are really testing what we want. Looking at gtod_latency and gtod_infinite, I was always struck that gtod_infinite always came up with much larger latencies while gtod_latency usually seemed to miss them. Main issues:
1) gtod_latency was not running for long enough, I've upped the iterations by 10x to make sure we get more solid results.
2) gtod_latency was doing too much computation between gtod calls. This means it could miss latencies that occur while it was running. I reworked the data collection loop so the un-measured window is smaller.
3) gtod_infinite was accidentally measuring its own computation in its delay, inflating its values. I cut that logic out.
4) both gtod_latency and gtod_infinite were not running mlocked. this caused background SCHED_OTHER disk access to inject delays, making the results less reliable.
 
Those four issues have been fixed, and I also converted gtod_latency to use clock_gettime() just to be consistent and to give slightly better resolution.
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Acked-by: Darren Hart <dvhltc@us.ibm.com>
Acked-by: Will Schmidt <will_schmidt@vnet.ibm.com>

Modified File(s):
ltp/testcases/realtime/func/gtod_latency/gtod_infinite.c
ltp/testcases/realtime/func/gtod_latency/gtod_latency.c

30) Log Message:
How about introducing TCID_DEFINE? I'm not sure puttint TCID_DEFINE macro to test.h. I'm not sure using a symbol as an argument for TCID_DEFINE macro is better than using a string. (I had strong lisp backgroud:-). If this acceptable, I'll update related documents and test cases I worked. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/include/test.h
ltp/testcases/kernel/syscalls/setgid/Makefile
ltp/testcases/kernel/syscalls/setgid/compat_16.h
ltp/testcases/kernel/syscalls/setgid/setgid01.c

31) Log Message:
I propose this new test setuid04 for the setuid syscall. The goal if this test is to check the fsuid is correctly handled by the setuid syscall. To do so, the test create a testfile as root with permission 0644, then do a setuid and try to open the file RDWR. This last open must fail since the process with new UID is not allowed to open the file on write. In a second step, the test does a fork to check the fsuid is correctly passed to a son and the son behaves correctly regarding files, i.e. it cannot open on write the test file. 
I propose this new test setfsuid04 for the setfsuid syscall. The goal if this test is to check the fsuid is correctly handled by the setfsuid syscall. To do so, the test creates a testfile as root with permission 0644, then do a setuid and try to open the file RDWR. This last open must fail since the process with new UID is not allowed to open the file on write. In a second step, the test does a fork to check the fsuid is correctly passed to a son and the son behaves correctly regarding files, i.e. it cannot open on write the test file. Finally, the test falls back to the initial UID and try to open the file on write. This open must succeed.
I propose this new test setreuid07 for the setreuid syscall. The goal if this test is to check the fsuid is correctly handled by the setreuid syscall. To do so, the test creates a testfile as root with permission 0644, then do a setreuid and try to open the file RDWR. This last open must fail since the process with new UID is not allowed to open the file on write. In a second step, the test does a fork to check the fsuid is correctly passed to a son and the son behaves correctly regarding files, i.e. it cannot open on write the test file. Finally, the test falls back to the initial UID and try to open the file on write. This open must succeed. 
I also propose this new test setresuid04 for the setresuid syscall. The goal if this test is to check the fsuid is correctly handled by the setresuid syscall. To do so, the test creates a testfile as root with permission 0644, then do a setresuid and try to open the file RDWR. This last open must fail since the process with new UID is not allowed to open the file on write. In a second step, the test does a fork to check the fsuid is correctly passed to a son and the son behaves correctly regarding files, i.e. it cannot open on write the test file. Finally, the test falls back to the initial UID and try to open the file on write. This open must succeed.
Signed-Off-By: Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>,
Signed-Off-By: Subrata Modak <subrata@linux.vnet.ibm.com>.

Modified Files:
ltp/runtest/ltplite
ltp/runtest/stress.part3
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/setfsuid/setfsuid04.c
ltp/testcases/kernel/syscalls/setresuid/setresuid04.c
ltp/testcases/kernel/syscalls/setreuid/setreuid07.c
ltp/testcases/kernel/syscalls/setuid/setuid04.c

32) Log Message:
I was experimenting with using runltp along with disk stress (-D option).  It does not parse the arguments properly.  It only uses the last parameter in the comma separated list.  With this patch it properly parses the arguments to the -D option. Signed-off-by: Doug Chapman <doug.chapman@hp.com>.

Modified File(s):
ltp/runltp

33) Log Message:
I've done on the other test cases. In addition, I've cleaned up Makefiles related to _64 and _16 testcases as suggested by Garrett Cooper <yanegomi@gmail.com>. Signed-off-by: Masatake YAMATO <yamato@redhat.com>. 
Garret suggested:
You can avoid situations like the above by doing something like this in your Makefiles:
SRC                     := $(patsubst %.c,%,$(wildcard *.c))
MAKE_TARGETS := $(SRCS) $(addsuffix _16,$(SRCS))
all: $(MAKE_TARGETS)
%_16: %.c
%_16: CFLAGS += -DUSE_COMPAT16_SYSCALL=1 -DTST_USE_COMPAT16_SYSCALL=1

Modified File(s):
ltp/testcases/kernel/syscalls/fadvise/Makefile
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise04.c
ltp/testcases/kernel/syscalls/ftruncate/Makefile
ltp/testcases/kernel/syscalls/ftruncate/ftruncate01.c
ltp/testcases/kernel/syscalls/ftruncate/ftruncate02.c
ltp/testcases/kernel/syscalls/ftruncate/ftruncate03.c
ltp/testcases/kernel/syscalls/ftruncate/ftruncate04.c
ltp/testcases/kernel/syscalls/sendfile/Makefile
ltp/testcases/kernel/syscalls/sendfile/sendfile02.c
ltp/testcases/kernel/syscalls/sendfile/sendfile03.c
ltp/testcases/kernel/syscalls/sendfile/sendfile04.c
ltp/testcases/kernel/syscalls/sendfile/sendfile05.c
ltp/testcases/kernel/syscalls/sendfile/sendfile06.c
ltp/testcases/kernel/syscalls/sendfile/sendfile07.c
ltp/testcases/kernel/syscalls/setgid/Makefile
ltp/testcases/kernel/syscalls/setgid/setgid02.c
ltp/testcases/kernel/syscalls/setgid/setgid03.c
ltp/testcases/kernel/syscalls/truncate/Makefile
ltp/testcases/kernel/syscalls/truncate/truncate01.c
ltp/testcases/kernel/syscalls/truncate/truncate02.c
ltp/testcases/kernel/syscalls/truncate/truncate03.c
ltp/testcases/kernel/syscalls/truncate/truncate04.c

34) Log Message:
This patch adds eventfd counter overflow test cases. I have cleaned up this patch - separated the test cases into its own functions and fixed a few typos. Please ignore the previous patch, and use this cleaned up patch. After the patch is applied, a "make clean" and a "make" should result in a clean build. It works perfectly for me. Anyways I am providing an updated patch with the other linux_syscall_numbers.h removed. As noted in my previous mail, there are two instances of the generated file in the CVS repo now, "include/linux_syscall_numbers.h" and "testcases/kernel/include/linux_syscall_numbers.h". The first is supposed to be a link to the second, and both are generated during the build process, and should be removed. The new patch removes both the files. Signed-off-by: Vijay Kumar <vijaykumar@bravegnu.org>.

Modified Files:
ltp/testcases/kernel/include/Makefile
ltp/testcases/kernel/syscalls/eventfd/Makefile
ltp/testcases/kernel/syscalls/eventfd/eventfd01.c

Removed Files:
ltp/include/linux_syscall_numbers.h
ltp/testcases/kernel/include/linux_syscall_numbers.h

35) Log Message:
Integrating build/install of ...security/seclvl (BSD Secure Levels LSM) to default LTP build environment. Was just browsing through and found that this piece of code is not built/installed by default. I did not find any issue to do so. So, just added up to the Makefile(s). I am however investigating the best possible way to run them. Signed-Off-By: Subrata Modak <subrata@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/security/Makefile
ltp/testcases/kernel/security/seclvl/Makefile

36) Log Message:
I am attaching a patch fs.patch for fixing some testcases failing on arm. fs.patch:- For arm architecture some system calls has been removed like time, utime etc. Since fs testcases include time system call, it should be replaced with gettimeofday system call. It wouldn't effect other architectures and thus works for arm also. Also testcases like utime should be made architecture specific. sasa sasa <sasak.1983@gmail.com>.

Modified File(s):
ltp/testcases/kernel/fs/doio/doio.c
ltp/testcases/kernel/fs/doio/growfiles.c
ltp/testcases/kernel/fs/doio/iogen.c
ltp/testcases/kernel/fs/doio/rwtest.sh

37) Log Message:
The LTP numa testcases were initially designed for libnuma API in version 1. Building latest LTP (intermediate 20080820) against latest version of libnuma (2.0.2) requires -DNUMA_VERSION1_COMPATIBILITY in the CFLAGS - to switch to to the compatibility interface of libnuma API version 1. There are no libnuma testcases for API version 2 in ltp yet. Currently -DNUMA_VERSION1_COMPATIBILITY will not help for the LTP numa testcase, since the compability interface is missing some interface from version 1: Fix for the VERSION1 compatibility interface got already send to linux-numa list. I hope the libnuma fix got accepted and attached can be applied to LTP soon to fix the build of the LTP numa testcases, when building against libnuma 2.0.2 or greater. Signed-off-by: Daniel Gollub <dgollub@suse.de>.

Modified File(s):
ltp/testcases/kernel/numa/Makefile

38) Log Message:
Was just browsing through and found that this piece of code is not built/installed by default. I did not find any issue to do so. So, just added up to the Makefile(s). I am however investigating the best possible way to run them. Signed-Off-By: Subrata Modak <subrata@linux.vnet.ibm.com>. Heh, seclvl hasn't been in the kernel in quite some time.  Should it be dropped? BTW, Mike, I'd expect you to consider re-implementing some of seclvl using capability bounding sets. "Serge E. Hallyn" <serue@us.ibm.com>. I do not anticipate that anyone will ever try to get seclvl back into the kernel, so I vote that the test be dropped from LTP. Michael Halcrow <mhalcrow@us.ibm.com>.

Modified Files:
ltp/testcases/kernel/security/Makefile

Removed Files:
ltp/testcases/kernel/security/seclvl/Makefile
ltp/testcases/kernel/security/seclvl/README
ltp/testcases/kernel/security/seclvl/create_guid_file.c
ltp/testcases/kernel/security/seclvl/create_guid_node.c
ltp/testcases/kernel/security/seclvl/create_suid_file.c
ltp/testcases/kernel/security/seclvl/create_suid_node.c
ltp/testcases/kernel/security/seclvl/ioperm.c
ltp/testcases/kernel/security/seclvl/iopl.c
ltp/testcases/kernel/security/seclvl/verify_seclvl.sh

39) Log Message:
Addition of getcpu() syscall to LTP. I have fixed the problem noticed earlier. Hope it will be fine this time. More over I wanted to mention that I have dropped getcpu2.c as it was found to be less relevant for getcpu() testing. Andi had made some suggestions to improve the test, I am submitting this before making all those changes. If possible I will sit and work on Andi's suggestion. Signed-Off-By: Sharyathi Nagesh <sharyath@in.ibm.com>.

Modified Files:
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/getcpu/Makefile
ltp/testcases/kernel/syscalls/getcpu/getcpu01.c

40) Log Message:
Build Error fix. I too had prepared the same patch, but there were some more issues on a different kernel. Hence, have put more checks in the newly attached patch. Subrata, I have tested it on ppc64 and x86_64 and is working fine. Please test and let me know. Signed-Off-By: "B. N. Poornima" <poornima@in.ibm.com>, Signed-Off-By: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/sync_file_range/sync_file_range01.c

41) Log Message:
inotify01 build error fix for x86_64. Signed-Off-By: Andrew Vagin <avagin@parallels.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c

42) Log Message:
move_pages() failed to compile on the following machine. Subrata Modak <subrata@linux.vnet.ibm.com>. Jin Bing Guo <guojb@cn.ibm.com> wrote: I also met this problem on ppc machine with SLES 10.2. I checked the numactl package and found the problem was due to the unmatch of the version of numa. The numa_move_pages was supported from numactl-2.0.0. See the change log of it. Vijay Kumar <vijaykumar@bravegnu.org> wrote: Hi Subrata, as pointed out by Jin Bing Guo, only recent versions of libnuma have support for move_pages(). It is necessary to check if move_pages() support is available before compiling the test cases. Check if move_pages() support is available in libnuma. Signed-off-by: Vijay Kumar <vijaykumar@bravegnu.org>.

Modified File(s):
ltp/testcases/kernel/syscalls/move_pages/Makefile

43) Log Message:
I've rearranged Makefile for setgid test case. I've put _16 related macros to compat_16.mk file. The original Makefile includes it. So when I work on more _16 test cases, I just have to do the same. I'll do the same on _64. I choose utils as its directory name. Please put attached files compat_16.mk and newer_64.mk to ltp/testcases/kernel/syscalls/utils. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified Files:
ltp/testcases/kernel/syscalls/fadvise/Makefile
ltp/testcases/kernel/syscalls/ftruncate/Makefile
ltp/testcases/kernel/syscalls/sendfile/Makefile
ltp/testcases/kernel/syscalls/setgid/Makefile
ltp/testcases/kernel/syscalls/truncate/Makefile

Added Files:
ltp/testcases/kernel/syscalls/utils/compat_16.mk
ltp/testcases/kernel/syscalls/utils/newer_64.mk

44) Log Message:
The following patch adds two known issues seen on some versions of Kernels, and also modifies the copyright information. Signed-off-by: CAI Qian <caiqian@redhat.com>.

Modified File(s):
ltp/testcases/kernel/fs/proc/proc01.c

45) Log Message:
Conformance/interfaces/timer_getoverrun/2-2 has failed on tests with some distros running on ppc64 machines. As far as I could realize, it happens due to these machines are running kernel with timer frequency configured to 100 Hz, which represents a clock precision smaller than the defined INTERVALNSEC. This patch sets the interval equals to the clock precision (retrieved via function clock_getres()), in order to avoid to use a interval smaller than the resolution of the clock. However, with these changes, this testcase becomes very similar to the test 2-3. Is this a valid modification? If not, any thought what should be done in this case?. Signed-off-by: Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/2-2.c

46) Log Message:
Find attached patchset which address some serious compiler warning fixes spotted by GCC4.1 (SLES10 SP2) and GCC4.3 (openSUSE Factory). Fix potential overflow in umount01.c, spotted by _FORTIFY_SOURCE=2. Unintended truncating of string length could cause potential overflow, which got spotted by GCC with _FORTIFY_SOURCE=2. Note the difference: malloc(strlen(fstype + 1)) != malloc(strlen(fstype) + 1). I guess this was not intended? Also valgrind detected this issue. Replaced wrong use of malloc/strncpy with simplestrdup(). Signed-off-by: Daniel Gollub <dgollub@suse.de>.

Modified File(s):
ltp/testcases/kernel/syscalls/umount/umount01.c

47) Log Message:
Find attached patchset which address some serious compiler warning fixes spotted by GCC4.1 (SLES10 SP2) and GCC4.3 (openSUSE Factory). Fix warning about _is_ unused variable (note the difference between "may" and "is" unused!). Unintended mixup with *pwd and *path. *path never gets set.  
execve02.c: In function 'setup':
execve02.c:217: warning: 'path' is used uninitialized in this function
Signed-off-by: Daniel Gollub <dgollub@suse.de>.

Modified File(s):
ltp/testcases/kernel/syscalls/execve/execve02.c

48) Log Message:
Find attached patchset which address some serious compiler warning fixes spotted by GCC4.1 (SLES10 SP2) and GCC4.3 (openSUSE Factory). ftest08.c calls close() with uninitialized file descriptor variable. Fix warning about _is_ unused variable (note the difference between "may" and "is" unused!). Only child opens the file descriptor, once forked.
ftest08.c: In function 'runtest':
ftest08.c:192: warning: 'fd' is used uninitialized in this function
Valgrind spot this issue aswell:
==21058== Syscall param close(fd) contains uninitialised byte(s)
==21058==    at 0x4BD70A0: __close_nocancel (in /lib64/libc-2.4.so)
==21058==    by 0x401D0E: runtest (ftest08.c:192)
==21058==    by 0x401B10: main (ftest08.c:119)
Signed-off-by: Daniel Gollub <dgollub@suse.de>.

Modified File(s):
ltp/testcases/kernel/fs/ftest/ftest08.c

49) Log Message:
Find attached patchset which address some serious compiler warning fixes spotted by GCC4.1 (SLES10 SP2) and GCC4.3 (openSUSE Factory). ftest04.c calls close() with uninitialized file descriptor variable. Fix warning about _is_ unused variable (note the difference between "may" and "is" unused!). Only child opens the file descriptor, once forked.
ftest04.c: In function 'runtest':
ftest04.c:188: warning: 'fd' is used uninitialized in this function

Valgrind spot this issue as well:
==15263== Syscall param close(fd) contains uninitialised byte(s)
==15263==    at 0x4BD70A0: __close_nocancel (in /lib64/libc-2.4.so)
==15263==    by 0x401CD6: runtest (ftest04.c:188)
==15263==    by 0x401AD0: main (ftest04.c:111)
Signed-off-by: Daniel Gollub <dgollub@suse.de>.

Modified File(s):
ltp/testcases/kernel/fs/ftest/ftest04.c

50) Log Message:
When packaging LTP with rpmlinit, rpmlinit complains about several scripts which don't have Shebang on the head of the file. Some files didn't have a Shebang at all. Signed-off-by: Daniel Gollub <dgollub@suse.de>.

Modified File(s):
ltp/ltpmenu
ltp/testcases/commands/ade/file/file_test.sh
ltp/testcases/commands/cpio/cpio_tests.sh
ltp/testcases/commands/eject/eject-tests.sh
ltp/testcases/commands/fileutils/cp/cp_tests.sh
ltp/testcases/commands/fileutils/ln/ln_tests.sh
ltp/testcases/commands/fileutils/mkdir/mkdir_tests.sh
ltp/testcases/commands/fileutils/mv/mv_tests.sh
ltp/testcases/commands/gzip/gzip_tests.sh
ltp/testcases/commands/logrotate/logrotate_tests.sh
ltp/testcases/commands/mail/mail_tests.sh
ltp/testcases/commands/tar/tar_tests.sh
ltp/testcases/kernel/containers/pidns/runpidnstest.sh
ltp/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh
ltp/testcases/kernel/numa/numa01.sh
ltp/testcases/kernel/security/filecaps/Makefile
ltp/testcases/network/dhcpd/dhcpd_tests.sh
ltp/testcases/network/iptables/iptables_tests.sh
ltp/testcases/network/traceroute/traceroute_tests.sh
ltp/testcases/network/xinetd/xinetd_tests.sh


51) Log Message:
I've extended setgroup test cases can test setgroups16 old system calls. To test, please put attached compat_16.h to ltp/testcases/kernel/syscalls/setgroups; and apply the patch. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified Files:
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/setgroups/Makefile
ltp/testcases/kernel/syscalls/setgroups/setgroups01.c
ltp/testcases/kernel/syscalls/setgroups/setgroups02.c
ltp/testcases/kernel/syscalls/setgroups/setgroups03.c
ltp/testcases/kernel/syscalls/setgroups/setgroups04.c

Added Files:
ltp/testcases/kernel/syscalls/setgroups/compat_16.h

52) Log Message:
In testcases/kernel/sched/tool/time-schedule, it used kill(0, SIGTERM) to terminate the all the processes in the group. However, the progress group leader might be different regarding the different call methods. In interactive call such as pan, it called time-schedule by exec() and setpgrp() as a child process. The time-schedule process would be the process group leader and all the child processes created by it had the same PGID. So the SIGTERM was sent to process group and the exit code got by pan was 0. In non-inactive call such as STAF/STAX, one shell script called the time-schedule directly. The shell script would be the process group leader. So the SIGTERM was also sent to the shell script and the exit code got by STAF/STAX was 143 (128+15). This patch can resolve this problem.
Signed-off-by: Lin Feng Shen <shenlinf@cn.ibm.com>,
Signed-off-by: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/testcases/kernel/sched/tool/time-schedule.c

53) Log Message:
Sorry, I found one typo in my code. Please apply following patch. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/utils/newer_64.mk

54) Log Message:
I tried to run runltp with the arguments suggested in the script's help and I get the error:
./runltp: 783: arith: syntax error: "2,4,10240,1"
I have checked out the latest intermediate (August 20th) and noticed there was a change that fixed one of the sources of this error but still one remained. I am attaching the patch (to July stable version) which fixed the issue in my case. I am running Ubuntu 7.04 (Feisty) on a Core 2 Duo based machine. Also may I suggest you update the maintainers info in the script too? :) I hope this can be helpful. Signed-Off-By: "elder.costa" <elder.costa@terra.com.br>.

Modified File(s):
ltp/runltp

55) Log Message:
I didn't see the oom-killer in my test machines. But I found large memory leak of the Hackbench with valgrind tool. From that we can get that it will lose 73,800 bytes with running "hackbench 150 process 1000" once. This patch fixed the memory leak problem. 

Modified File(s):
ltp/testcases/kernel/sched/cfs-scheduler/hackbench.c

56) Log Message:
While the synchronization in the sched_football testcase under the realtime test suite is not erroneous, it can be enahnced and made more reliable by making use of pthread_barriers, like in other testcases. This patch adds the same. Testing done: Infinite iterations of the testcase run with this patch.
Signed-off-by: Ankita Garg <ankita@in.ibm.com>,
Acked-by: Vernon Mauery <vernux@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/func/sched_football/sched_football.c

57) Log Message:
We can add a check for the header in the Makefile, so that we don't break builds. I think test should report fail in this case if a version of kernel more then 2.6.13. The Patch is for the reason that we don't break builds. Signed-Off-By: Andrew Vagin <avagin@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/inotify/Makefile
ltp/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c

58) Log Message:
On centos-5 2.6.18 kernel, I get a failure with shmat01. In the setup() function at the end:
/* some architectures (e.g. parisc) are strange, so better always align to *  * next SHMLBA address. */
       base_addr = (void *)( ((unsigned long)(base_addr) & ~(SHMLBA-1)) + SHMLBA );
This bumps up the address if it's already aligned. Signed-off-by: Bob Hepple <bhepple@promptu.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/shmat/shmat01.c

59) Log Message:
Reverting back CAI Qian´s patch applied on Wed Aug 27 10:24:19 2008 UTC, with following log: The following patch adds two known issues seen on some versions of Kernels, and also modifies the copyright information. Signed-off-by: CAI Qian <caiqian@redhat.com>.

Modified File(s):
ltp/testcases/kernel/fs/proc/proc01.c

60) Log Message:
Under Ubuntu (tested with both 7.04 and 8.04) IDCheck shows the message [: 100: 0: unexpected operator]. That happens because the variable EUID is not defined. I guess dash (Ubuntu's sh) is not as tolerant as Fedora's (which shows no message). Bellow a small patch for it. Signed-Off-By: Elder <elder.costa@terra.com.br>.

Modified File(s):
ltp/IDcheck.sh

LTP-20080731

1) Log Message:
I've tried LTP and found some wrong mode at creating file/dir in LTP source files. Here is a patch. Junjiro Okajima<hooanon05@yahoo.co.jp>.

Modified File(s):
ltp/lib/write_log.c
ltp/testcases/kernel/fs/dmapi/attr.c
ltp/testcases/kernel/fs/dmapi/config.c
ltp/testcases/kernel/fs/dmapi/disp.c
ltp/testcases/kernel/fs/dmapi/event_am.c
ltp/testcases/kernel/fs/dmapi/event_an.c
ltp/testcases/kernel/fs/dmapi/event_sd.c
ltp/testcases/kernel/fs/dmapi/event_sn.c
ltp/testcases/kernel/fs/dmapi/handle.c
ltp/testcases/kernel/fs/dmapi/hole.c
ltp/testcases/kernel/fs/dmapi/invis.c
ltp/testcases/kernel/fs/dmapi/mmap.c
ltp/testcases/kernel/fs/dmapi/mmapfile.c
ltp/testcases/kernel/fs/dmapi/mount.c
ltp/testcases/kernel/fs/dmapi/objref.c
ltp/testcases/kernel/fs/dmapi/pmr_post.c
ltp/testcases/kernel/fs/dmapi/pmr_pre.c
ltp/testcases/kernel/fs/dmapi/right.c
ltp/testcases/kernel/fs/dmapi/token.c
ltp/testcases/kernel/fs/fsstress/fsstress.c
ltp/testcases/kernel/fs/scsi/ltpfs/main.c
ltp/testcases/kernel/fs/scsi/ltpscsi/scsimain.c
ltp/testcases/kernel/io/aio/aio02/cases/aio_tio.c
ltp/testcases/kernel/ipc/ipc_stress/shmem_test_03.c
ltp/testcases/kernel/syscalls/open/open08.c

2) Log Message:
Every once in a while, pselect01 fails with the following output:
FAIL  :  Sleep time was incorrect:5 != 6
This is because we expect our sleeps of slightly more than 5 seconds to last at most 5 seconds (if we're uninterrupted, integer truncation will mean this only comes up about 1% of the time).  To fix this, we should instead expect our sleeps to last between 5 and 6 seconds, as in the patch inlined below. Signed-off-by: Craig Meier <crmeier@ghs.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/pselect/pselect01.c

3) Log Message:
Fix a bug in the selinux testsuite makefile, pointed out by David Howells. Signed-off-by:  Stephen Smalley <sds@tycho.nsa.gov>.

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/tests/Makefile

4) Log Message:
TEST_RETURN should not be inverted when logging. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/io_cancel/io_cancel01.c

5) Log Message:
gcov-kernel: refreshed 2.6.16 patch, adding CONFIG_MODVER compatbility

Modified File(s):
ltp/utils/analysis/gcov-kernel/linux-2.6.16-gcov.patch

6) Log Message:
Fixes the following issues:
The LTP selinux-testsuite does not work out of the box on Red Hat Enterprise Linux 4. The testscripts/test_selinux.sh script does not detect if refpolicy should be used or not. The LTP selinux-testsuite test policy uses the can_setcon macro which is not defined in global macros of Red Hat Enterprise Linux 4 selinux policy targeted sources. Some Makefile needs minor fixes and enhancements. Ramon de Carvalho Valle <rcvalle@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/policy/Makefile
ltp/testcases/kernel/security/selinux-testsuite/policy/test_global.te
ltp/testcases/kernel/security/selinux-testsuite/tests/Makefile
ltp/testscripts/test_selinux.sh

7) Log Message:
I've attached some patches that I created for LTP at work. Most of them simply add command-line options to specify the amount of memory/pages to use for tests. However, there's one fix that works around a bug in uClibc's pthread implementation. Allow the amount of memory to be used to be passed as a command-line argument. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/mem/mem/mem02.c

8) Log Message:
I've attached some patches that I created for LTP at work. Most of them simply add command-line options to specify the amount of memory/pages to use for tests. However, there's one fix that works around a bug in uClibc's pthread implementation. It can be unsafe to call exit(3) from a signal handler. Call _exit(2) instead. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/mem/mtest06/mmap1.c

9) Log Message:
I've attached some patches that I created for LTP at work. Most of them simply add command-line options to specify the amount of memory/pages to use for tests. However, there's one fix that works around a bug in uClibc's pthread implementation. Allow the number of pages to use for the test to be specified on the command-line. Fix a memory leak. Also, call _exit(2) from child processes which avoids the child calling the atexit functions that the pthread library setup. This fixes an issue where the pthread manager thread would begin exiting at the same time as a child thread. The child thread would run the atexit functions which cause it to wait for a signal to be sent from the thread manager. As the thread manager was trying to exit that signal would never be sent. Calling _exit(2) from the child avoids this whole mess. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/mem/mtest05/mmstress.c

10) Log Messsage:

Modified File(s):
I've attached some patches that I created for LTP at work. Most of them simply add command-line options to specify the amount of memory/pages to use for tests. However, there's one fix that works around a bug in uClibc's pthread implementation.Don't place an upper limit on the amount of time a nanosleep(2) call should take. The nanosleep(2) call will suspend execution for _at least_ the specified time, no upper limit is guaranteed. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/syscalls/nanosleep/nanosleep01.c

11) Log Message:
I've attached some patches that I created for LTP at work. Most of them simply add command-line options to specify the amount of memory/pages to use for tests. However, there's one fix that works around a bug in uClibc's pthread implementation.Allow the number of iterations to be specified on the command line. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/sched/nptl/nptl01.c

12) Log Message:
I've attached some patches that I created for LTP at work. Most of them simply add command-line options to specify the amount of memory/pages to use for tests. However, there's one fix that works around a bug in uClibc's pthread implementation. Check for SYS_getuid32 and SYS_getgid32, these are the versions provided by some architectures. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/syscalls/syscall/syscall01.c

13) Log Message:
There were some mistakes in my previous patch.
- wrong mode 0644 for mkdir().
- unnecessary to add 0644 for open() since the flag doesn't include O_CREAT (while it does no harm).
By this new patch, they are fixed. Junjiro Okajima <hooanon05@yahoo.co.jp>.

Modified File(s):
ltp/lib/write_log.c
ltp/testcases/ballista/ballista/templates/b_mq_attr.tpl
ltp/testcases/ballista/ballista/templates/b_mqd.tpl
ltp/testcases/ballista/ballista/templates/b_mqdSUN.tpl
ltp/testcases/ballista/ballista/templates/b_ptr_sem_t.tpl
ltp/testcases/kernel/fs/dmapi/attr.c
ltp/testcases/kernel/fs/dmapi/config.c
ltp/testcases/kernel/fs/dmapi/disp.c
ltp/testcases/kernel/fs/dmapi/dm_test.h
ltp/testcases/kernel/fs/dmapi/event_am.c
ltp/testcases/kernel/fs/dmapi/event_an.c
ltp/testcases/kernel/fs/dmapi/event_sd.c
ltp/testcases/kernel/fs/dmapi/event_sn.c
ltp/testcases/kernel/fs/dmapi/handle.c
ltp/testcases/kernel/fs/dmapi/hole.c
ltp/testcases/kernel/fs/dmapi/invis.c
ltp/testcases/kernel/fs/dmapi/mmap.c
ltp/testcases/kernel/fs/dmapi/mmapfile.c
ltp/testcases/kernel/fs/dmapi/mount.c
ltp/testcases/kernel/fs/dmapi/objref.c
ltp/testcases/kernel/fs/dmapi/pmr_post.c
ltp/testcases/kernel/fs/dmapi/pmr_pre.c
ltp/testcases/kernel/fs/dmapi/right.c
ltp/testcases/kernel/fs/dmapi/token.c
ltp/testcases/kernel/fs/fsstress/fsstress.c
ltp/testcases/kernel/fs/scsi/ltpfs/main.c
ltp/testcases/kernel/fs/scsi/ltpscsi/scsimain.c
ltp/testcases/kernel/io/aio/aio02/cases/aio_tio.c
ltp/testcases/kernel/syscalls/open/open08.c
ltp/testcases/open_hpi_testsuite/utils/uid_utils.c

14)Log Message:
This patch uses strcpy() instead of strcat(). strcat() should only be used when the 'dest' argument is NULL terminated. In this case, path_buffer is not initialised and so may not contain a NULL character. strcpy() will do the right thing and copy the string to the beginning of path_buffer. Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/testcases/kernel/syscalls/readlink/readlink04.c

15) Log Message:
It eliminates the potential for many false negatives.
1.  Use cap_compare to compare capability sets instead of comparing the far less reliable text representations.
2.  pI' tests were failing bc I started with empty pI. Fill pI before those tests.
3.  Check for libcap-2.11 or later (by checking for cap_compare()).
Signed-off-by: Serge Hallyn <serue@us.ibm.com>

Modified File(s):
ltp/testcases/kernel/security/filecaps/Makefile
ltp/testcases/kernel/security/filecaps/check_simple_capset.c
ltp/testcases/kernel/security/filecaps/filecapstest.sh
ltp/testcases/kernel/security/filecaps/verify_caps_exec.c

16) Log Messsage:
Porting of io_destroy(), io_getevents(), io_setup() & io_submit() syscall tests from Crackerjack to LTP, by Masatake YAMATO <yamato@redhat.com>.

Modified Files:
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/io_destroy/Makefile
ltp/testcases/kernel/syscalls/io_destroy/io_destroy01.c
ltp/testcases/kernel/syscalls/io_destroy/run-io_destroy.sh
ltp/testcases/kernel/syscalls/io_getevents/Makefile
ltp/testcases/kernel/syscalls/io_getevents/io_getevents01.c
ltp/testcases/kernel/syscalls/io_getevents/run-io_getevents.sh
ltp/testcases/kernel/syscalls/io_setup/Makefile
ltp/testcases/kernel/syscalls/io_setup/io_setup01.c
ltp/testcases/kernel/syscalls/io_setup/run-io_setup.sh
ltp/testcases/kernel/syscalls/io_submit/Makefile
ltp/testcases/kernel/syscalls/io_submit/io_submit01.c
ltp/testcases/kernel/syscalls/io_submit/run-io_submit.sh

17) Log Message:
According to the manpages io_submit() can return the value: EAGAIN Insufficient resources are available to queue any iocbs. We should handle this opportunely trying to re-submit the AIO request again. Maybe an even better approach could be to just sleep a bit before trying to re-submit the request. In any case this would resolve a never-ending loop in aio01.c, where io_getevents() can be continuously called without having issued any actual request if io_submit() failed with -EAGAIN. Signed-off-by: Andrea Righi <righi.andrea@gmail.com>.

Modified File(s):
ltp/testcases/kernel/io/aio/aio01/aio01.c
ltp/testcases/kernel/io/aio/aio02/cases/aio_tio.c

18) Log Message:
Error occured, when i tried to compile ltp on ia64 box. There is a patch to fix it. similar patch on i386/x86_64 has been applied. (http://marc.info/?l=ltp-list&m=121257587007213&w=2). Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/include/ia64.in
ltp/testcases/kernel/include/linux_syscall_numbers.h

19) Log Message:
Add the block device I/O bandwidth controller (io-throttle) testcase. See testcase documentation for design and implementation details. See also: http://lkml.org/lkml/2008/7/4/143. Signed-off-by: Andrea Righi <righi.andrea@gmail.com>.

Modified Files:
ltp/testcases/kernel/controllers/Makefile
ltp/testcases/kernel/controllers/test_controllers.sh

Added Files:
ltp/testcases/kernel/controllers/io-throttle/Makefile
ltp/testcases/kernel/controllers/io-throttle/README
ltp/testcases/kernel/controllers/io-throttle/io_throttle_testplan.txt
ltp/testcases/kernel/controllers/io-throttle/iobw.c
ltp/testcases/kernel/controllers/io-throttle/myfunctions.sh
ltp/testcases/kernel/controllers/io-throttle/run_io_throttle_test.sh

20) Log Message:
The attached patch fixes the following issue: The selinux-testsuite file sigiotask testcase (run as test_fileop_t) needs rw permission to terminals to proceed its execution, which is not allowed by the non refpolicies provided in the testsuite. Ramon de Carvalho Valle <rcvalle@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/policy/test_file.te

21) Log Message:
gcov-kernel: patches for 2.6.26

Added Files:
linux-2.6.26-gcov-arm-eabi.patch 
linux-2.6.26-gcov-arm-hack.patch
linux-2.6.26-gcov.patch

22) Log Message:
The following problem i found:
1, utimensat01.c still has not been compiled when check_for_utimensat_support return success.
2, utimensat01 works on only i386 arch.
Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>

Modified File(s):
ltp/testcases/kernel/include/i386.in
ltp/testcases/kernel/include/ia64.in
ltp/testcases/kernel/include/linux_syscall_numbers.h
ltp/testcases/kernel/include/x86_64.in
ltp/testcases/kernel/syscalls/utimensat/Makefile
ltp/testcases/kernel/syscalls/utimensat/check_for_utimensat_support.c
ltp/testcases/kernel/syscalls/utimensat/utimensat01.c

23) Log Message:
Sorry, I took mistake in giving value to TST_* in io_setup01.c and io_submit01.c. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/io_setup/io_setup01.c
ltp/testcases/kernel/syscalls/io_submit/io_submit01.c

24) Log Message:
I found some typos. I cannot remember but maybe I introduced. Signed-off-by: Masatake YAMATO<yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise04.c

25) Log Message:
I get compile error in hackbench. With the following patch, the compiler error is gone. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/sched/cfs-scheduler/hackbench.c

26) Log Message:
In fact, the case "hackbench02 hackbench 150 thread 1000" failed when i tested the latest ltp. the following error message occured: 
--------------------
Creating fdpair (error: Too many open files)
--------------------
The default open files is 1024 (ulimit -n), but hackbench does not close these all opened files in group() when thread mode (process_mode=0). I think we should to limit the num_groups's value. 20 is a suitable value, it works well on my ia64 and i386 machine. what do you think? Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>.

Modified File(s):
ltp/runtest/sched

27) Log Message:
It replaces nested arithmetic operations following example from Open Group specifications, in order to avoid issues with different shells, like dash from Ubuntu Gutsy. Signed-off-by: Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/network/generate.sh

28) Log Message:
When compiling powerpc binaries, gcc defaults to 32 bit. To do some tests I needed to have a 64 bit binary. Since I'm using realtime, I modified config.mk as below. My questions: is there any official way to turn LTP in 64bit? If not, what shall we do then? Should LTP default to 32 or native-arch bit? Shall we use something like: "if (uname -m) ..." or use a command line option? Any comment?
Gilles.

According to man gcc:
 -m64
     Generate code for a 32-bit or 64-bit environment.  The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system.  The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture. For darwin only the -m64 option turns off the -fno-pic and -mdynamic-no-pic options. This seems like the right thing to do to me.  Gilles, have you confirmed that this doesn't break things on the x86_64 platforms? No objection from me. 
--Darren

I've also run the involved tests on an x86_64 machine and it was OK. Gilles Carry <Gilles.Carry@bull.net>.

Modified File(s):
ltp/testcases/realtime/config.mk

29) Log Message:
First patch regroups TSC functions and macros definition into librttest. Second patch is to have an atomic reading of the 64-bit timebase register of powerpc64. This new function is only valid if -m64 is used when compiling the whole testcase suite with a powerpc64. Thirs patch is a fix to avoid spurious tsc_minus warning. These patches been tested on a ppc64 machine either with 32 or 64 bit binaries. (-m64).  The same TSC read (rdtscll) macros and tsc_minus where implemented in three different tests. This patch put all this into librttest.*. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Cc: Tim Chavez <tinytim@us.ibm.com>. Acked-by: Darren Hart <dvhltc@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/func/async_handler/async_handler_tsc.c
ltp/testcases/realtime/func/measurement/preempt_timing.c
ltp/testcases/realtime/func/measurement/rdtsc-latency.c
ltp/testcases/realtime/include/librttest.h
ltp/testcases/realtime/lib/librttest.c

30) Log Messsage:
This macro reads atomically the 64-bit TSC register. Reading the 64-bit register using two 32-bit instructions sometimes causes wrapping when a clock update appears in between. A single 64-bit read fixes this. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Cc: Tim Chavez <tinytim@us.ibm.com>.  
I suppose the right thing to do in the long run would be to rename this function to something more generic: read_hw_clock() or something like that. But I think this patch performs the first step in getting it working on ppc64. Acked-by: Darren Hart <dvhltc@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/include/librttest.h

31) Log Message:
In tsc_minus, changed test (tsc_begin < tsc_end) by (tsc_begin <= tsc_end) since values can be equal as read operations are sometimes very close. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Cc: Tim Chavez <tinytim@us.ibm.com>. Acked-by: Darren Hart <dvhltc@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/lib/librttest.c

32) Log Message:
Update to OpenHPI 2.12.0 (see www.openhpi.org for more info)

Modified File(s):
ltp/testcases/open_hpi_testsuite/*

33) Log Message:
Addition of move_pages() syscall tests. The updated patch fixes the warning messages and removes the print_bitmask function (it's not used) which causes build errors on powerpc. Signed-off-by: Vijay Kumar B. <vijaykumar@bravegnu.org>.

Modified Files:
ltp/Makefile
ltp/runtest/numa
ltp/runtest/syscalls
ltp/testcases/kernel/numa/Makefile

Added Files:
ltp/testcases/kernel/syscalls/move_pages/Makefile
ltp/testcases/kernel/syscalls/move_pages/move_pages.sh
ltp/testcases/kernel/syscalls/move_pages/move_pages01.c
ltp/testcases/kernel/syscalls/move_pages/move_pages02.c
ltp/testcases/kernel/syscalls/move_pages/move_pages03.c
ltp/testcases/kernel/syscalls/move_pages/move_pages03.mode.sh
ltp/testcases/kernel/syscalls/move_pages/move_pages04.c
ltp/testcases/kernel/syscalls/move_pages/move_pages05.c
ltp/testcases/kernel/syscalls/move_pages/move_pages06.c
ltp/testcases/kernel/syscalls/move_pages/move_pages07.c
ltp/testcases/kernel/syscalls/move_pages/move_pages08.c
ltp/testcases/kernel/syscalls/move_pages/move_pages09.c
ltp/testcases/kernel/syscalls/move_pages/move_pages10.c
ltp/testcases/kernel/syscalls/move_pages/move_pages11.c
ltp/testcases/kernel/syscalls/move_pages/move_pages11.mode.sh
ltp/testcases/kernel/syscalls/move_pages/move_pages_support.c
ltp/testcases/kernel/syscalls/move_pages/move_pages_support.h
ltp/tools/scripts/numa_test.sh

34) Log Message:
The new patch addresses the other error conditions. Like if its not able to create any dir/files in a ReadOnly dir. Also this patch returns the proper return code on success/failure . I have tested this script on ReadWrite dir and ReadOnly dir. Veerendra Chandrappa <vechandr@in.ibm.com>.

LTP-20080630

1) Log Message:
These tests were contributed by the timerfd() syscall developer Davide Libenzi <davidel@xmailserver.org>.

Modified Files:
ltp/runtest/syscalls
Added Files:
ltp/testcases/kernel/syscalls/timerfd/Makefile
ltp/testcases/kernel/syscalls/timerfd/timerfd01.c

2) Log Message:
CPU and MEMORY HOTPLUG test cases picked up from http://devresources.linux-foundation.org/dev/hotplug/

Added Files:
ltp/testcases/kernel/hotplug/cpu_hotplug/COPYING
ltp/testcases/kernel/hotplug/cpu_hotplug/ChangeLog
ltp/testcases/kernel/hotplug/cpu_hotplug/README
ltp/testcases/kernel/hotplug/cpu_hotplug/runtests.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug01.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug02.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug03.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug04.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug05.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug06.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/doc/todo.txt
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug01.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug02.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug03.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug04.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sar.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.top.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug07.sh
ltp/testcases/kernel/hotplug/cpu_hotplug/include/hotplug.fns
ltp/testcases/kernel/hotplug/cpu_hotplug/include/testsuite.fns
ltp/testcases/kernel/hotplug/cpu_hotplug/tools/do_disk_write_loop
ltp/testcases/kernel/hotplug/cpu_hotplug/tools/do_kcompile_loop
ltp/testcases/kernel/hotplug/cpu_hotplug/tools/do_spin_loop
ltp/testcases/kernel/hotplug/cpu_hotplug/tools/report_proc_interrupts
ltp/testcases/kernel/hotplug/memory_hotplug/COPYING
ltp/testcases/kernel/hotplug/memory_hotplug/Makefile
ltp/testcases/kernel/hotplug/memory_hotplug/README
ltp/testcases/kernel/hotplug/memory_hotplug/TODO
ltp/testcases/kernel/hotplug/memory_hotplug/commands.c
ltp/testcases/kernel/hotplug/memory_hotplug/debug.h
ltp/testcases/kernel/hotplug/memory_hotplug/memtoy.c
ltp/testcases/kernel/hotplug/memory_hotplug/memtoy.h
ltp/testcases/kernel/hotplug/memory_hotplug/migrate_pages.c
ltp/testcases/kernel/hotplug/memory_hotplug/migrate_pages.h
ltp/testcases/kernel/hotplug/memory_hotplug/segment.c
ltp/testcases/kernel/hotplug/memory_hotplug/segment.h
ltp/testcases/kernel/hotplug/memory_hotplug/version.h
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c8
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1f
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1l
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1la
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test1shm
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test2
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test2l
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test3
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test3-1m
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test3l
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test4
ltp/testcases/kernel/hotplug/memory_hotplug/Scripts/test4f
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-2shm-1m
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g-interleaved
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g-touch
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1p
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-nomig
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-touch
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m-touch
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m-touch
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-8p
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-shm-8p
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-2shm-1m
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1g
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1g-interleaved
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1p
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-8p
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-16m
ltp/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-1m

3) Log Message:
This patch fix a concurrency issue in mremap04. The tmp directory the IPC key was build with was destroyed before we destroy the IPC ressource attached to the key. In case of concurency, the same inode id can be reused for another process tmp dir, leading to the generation of the same key. Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/mremap/mremap04.c

4) Log Message:
I spent some time looking at the sched_latency test trying to see why it took so long to start the thread.  The java version of the test takes a comparable amount of time to start the thread as it does for each period. The rt-test version was taking an order of magnitude longer.  After digging through the java documentation, I found that the RealtimeThread does not actually start executing until the RealtimeThread.waitForNextPeriod() fulfills the time specified in the PeriodicParameters parameter included in its constructor.  So all the tests are scheduled to run about 1 second after the threads are created.  This gives the system plenty of time to create the thread (a non-realtime code path), set the scheduling parameters and then sleep until the specified run time.  The start latency as measured by the test goes something like this: 

start_time = nanoTime() + 1000000000;
rt = new realtimeThread(sched_param, new \
        PeriodicParameters(start_time, ...), ..., run);

/* by the rtsj specification, this method will not run until start_time */
run() {
        now = nanoTime();
        start_latency = now - start_time;
        ...
}

The rt-tests version went something like this:

start_time = rt_gettime();
create_fifo_thread(periodic_thread, (void*)0, PRIO);

periodic_thread() {
        now = rt_gettime();
        start_latency = now - start;
        ...
}

As you can see, the start_latency is a very different measurement in these two cases.  In the first, it is basically the initial starting latency as measured by the remainder of the loops.  In the second, the execution path of creating the pthread is also counted in the latency.  While this might be an important number for us to keep low in our testing, this is not what the java test is measuring. This patch puts the rt-test version in line with the java version. I also think this is reasonable since the rt-wiki says that we should _NEVER_ create threads on the real-time stage. Signed-off-by: Vernon Mauery <vernux@us.ibm.com>. 

Modified File(s):
ltp/testcases/realtime/func/sched_latency/sched_latency.c
ltp/testcases/realtime/include/librttest.h
ltp/testcases/realtime/lib/librttest.c

5) Log Message:
The following patches fix execve05 for error reporting when execve() succeeds, and exit synchronization in loaded systems. The last two patches are minor cleanups. execve05 checks that execve() fails if a process has opened the file with write access. However, in case the test fails and execve() succeeds, the default binary (test3) has return code 0, which is interpreted as test success. We get output like that:

<output>
Hello World
</output>
with return code 0 (success)

instead of:

<output>
execve05    1  FAIL  :  Failures reported above
</output>
with return code matching FAIL.

This patch simply changes the success return code from 0 to 3, so that execve() success, and thus test failure, can be properly reported. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>.

Modified Files:
ltp/testcases/kernel/syscalls/execve/execve05.c

6) Log Message:
The following patches fix execve05 for error reporting when execve() succeeds, and exit synchronization in loaded systems. The last two patches are minor cleanups. In execve05, the first child must keep a file open at least until the second child tries to execve() this file. However the test achieves this with a sleep of 10s, which may fail on loaded systems. This patch replaces this (arbitrary) sleep with a pipe-based synchronization, where the parent notifies the first child once the second child has terminated. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>.

Modified Files:
ltp/testcases/kernel/syscalls/execve/execve05.c

7) Log Message:
The following patches fix execve05 for error reporting when execve() succeeds, and exit synchronization in loaded systems. The last two patches are minor cleanups. In a child, calling waitpid() to wait for the death of sibling child is simply non-sense. Moreover in execve05, the second child does not need such synchronization. Remove it. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>.

Modified Files:
ltp/testcases/kernel/syscalls/execve/execve05.c

8) Log Message:
The following patches fix execve05 for error reporting when execve() succeeds, and exit synchronization in loaded systems. The last two patches are minor cleanups. cleanup() is reserved for the main test process. In children, call exit() instead. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>. 

Modified Files:
ltp/testcases/kernel/syscalls/execve/execve05.c

9) Log Message:
This patch fix an issue in the sync_pipe implementation. The problem is the following : after the creation of a pipe we do not close any file descriptor until the end of a test. Let's imagine the following execution : 
- Process A calls sync_pipe_create
- Process A do a fork (creation of process B)
- Process A calls sync_pipe_wait
---> Process A blocks on sync_pipe_wait
- Process B starts
- Process B exits because of an early error.
In this case, process A never exits. Since it has not closed its write descriptor to the pipe, the pipe is not considered as broken, thus process A is not notified its son is dead. Thus it will wait forever. Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>.

Modified File(s):
ltp/lib/libtestsuite.c

10) Log Message:
This patch fixes a compilation warning due to the function "sync_pipe_close" which was not exported. Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>.

Modified File(s):
ltp/include/libtestsuite.h

11) Log Message:
After the patch from Roy moveing the libtestsuite code from /testcases/kernel/syscalls/lib to /lib, the code in the old directory has not been removed. Moreover, include PATH in some makefile was still pointing to this old directory. This patch remove libtestsuite code from the old directory and remove deprecated references to this old dir in some Makefiles. Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>.

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgrcv/Makefile
ltp/testcases/kernel/syscalls/ipc/msgrcv/msgrcv05.c
ltp/testcases/kernel/syscalls/ipc/msgsnd/Makefile
ltp/testcases/kernel/syscalls/ipc/msgsnd/msgsnd06.c
ltp/testcases/kernel/syscalls/ipc/semctl/Makefile
ltp/testcases/kernel/syscalls/ipc/semop/Makefile
ltp/testcases/kernel/syscalls/ipc/shmctl/Makefile

Removed Files:
ltp/testcases/kernel/syscalls/lib/Makefile
ltp/testcases/kernel/syscalls/lib/libtestsuite.c
ltp/testcases/kernel/syscalls/lib/libtestsuite.h

12) Log Message:
time-schedule01 failed, because it sent SIGTERM to itself before program exited, so the return value is not 0. This patch makes the main process ignore SIGTERM. Li Zefan <lizf@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/sched/tool/time-schedule.c

13) Log Message:
This patch fix the make file of fs_bin test case so that it can be cross-built. Roy Lee <roylee@andestech.com>.

Modified File(s):
ltp/testcases/kernel/fs/fs_bind/bin/Makefile

14) Log Message:
Add syscall numbers for timerfd syscalls under i386 and x86_64. Roy Lee <roylee@andestech.com>.

Modified File(s):
ltp/testcases/kernel/include/i386.in
ltp/testcases/kernel/include/linux_syscall_numbers.h
ltp/testcases/kernel/include/x86_64.in

15) Log Message:
Currently, timerfd01 test case blocks building process for architectures that haven’t prepared for it. This patch modify it to be more generic for all architectures. Roy Leee <roylee@andestech.com>.

Modified  File(s):
ltp/testcases/kernel/syscalls/timerfd/timerfd01.c

16) Log Message:
It looks like the only thing that didn't apply was the function declaration. It builds (with a warning) and runs just fine. But here is a patch to fix the warning. Signed-off-by: Vernon Mauery <vernux@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/include/librttest.h

17) Log Message:
utimensat() syscall was introduced from linux-2.6.22 onwards. Michael wrote the initial testcases, and, the same is being contributed to LTP under GPLv2. I worked out a patch for this. Though this is not using LTP specific libraries at the moment. But the tests run well and tests 99 separate variations. Michael has written it through itś length and breadth. I generated the code coverage (9.2%) over 2.6.25-gcov kernel, which however was not built with <make allmodconfig> option. Please see it attached along with a draft man page of utimensat(), created by Michael. Let us know how do you feel about this test. We can then go ahead and add this to LTP. Signed-off-by Michael Kerrisk <mtk.manpages@googlemail.com>. Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>.

Modified File(s):
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/utimensat/Makefile
ltp/testcases/kernel/syscalls/utimensat/utimensat01.c
ltp/testcases/kernel/syscalls/utimensat/utimensat_tests.sh

18) Log Message:
On ia64, __clone2() is used instead of clone(). Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/fs/fs_bind/bin/nsclone.c

19) Log Message:
I execute fork12 test and OMM killer begin send SIGKILL to its children and fork return success always. fork12 hang up in this case, so I create the patch (see attach), which check whether someone child killed and if it occur, return number of forked processes. Andrew Vagin <avagin@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/fork/fork12.c

20) Log Message:
This patch fixes the writetest.c  to return proper status on Failure/Success. At present the return code of the writest.c is 'zero' for both Success and Failure. As per norms non-zero value should be returned for error , so fixing this testcase. Signed off : Veerendra C <vechandr@in.ibm.com>.

Modified File(s):
ltp/testcases/kernel/io/writetest/writetest.c

21) Log Message:
mallocstress stresses the VMM and C library  by spawning N threads which malloc blocks of increasing size until malloc returns NULL. It occur because test doesn't wait for all thread started. already started threads begin allocate memory, so pthread_create can return ENOMEM. my patch added this synchronizing. I use semaphore, because it can wait-for-zero unlike pthread_mutex. sorry, forgot set permission in semget, new patch attached. Andrew Vagin <avagin@gmail.com>.

Modified File(s):
ltp/testcases/kernel/mem/mtest07/mallocstress.c

22) Log Message:
Reverting back the changes done to fcntl-lock tests in May 2008 release, as this would have canceled the operation Revision *1.1  *done on the /Mon Sep 11 20:40:52 2006 UTC/ by /mreed10 /which added "A patch that added new functionality into the NFSvf lock tests. 
-fixes bugs 
-adds the capability to stress a server with multiple clients"
So it is possible to get back to what 's in ltp-full-20080430 and add my fix: You can fix it by replacing in the locktests.c file
     buf=(char *)malloc(clnt*maxClients);
by
     buf=(char *)malloc(clnt*(maxClients+1));
Signed-off-by: Le Rouzic <aime.le-rouzic@bull.net>.

Modified File(s):
ltp/testcases/network/nfsv4/locks/Makefile
ltp/testcases/network/nfsv4/locks/locktests.c

Added Files:
ltp/testcases/network/nfsv4/locks/locktests.h

Removed Files:
ltp/testcases/network/nfsv4/locks/test


23) Log Message:
In the manpage for tst_res(3) in the April snapshot it says...
       tst_brk - Print result message and break remaining test cases
       tst_brkm  -  Print  result  message, including file contents, and break remaining test cases
... at the top of the page. The prototypes and the logic is backwards for the summaries. A patched manpage is provided. Garrett Cooper <yanegomi@gmail.com>.

Modified File(s):
ltp/doc/man3/tst_res.3

24) Log Message:
Force the catch_sighup to be volatile in order to overcome an issue due to the compiler optimization. In fact, compiling the test with -Os the catch_sighup variable is not set to 1 into the signal handler. At runtime, the  test remain in a loop. No problem compiling without Os or O2.
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>,
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>.

Modified File(s):
ltp/testcases/network/stress/ns-tools/ns-mcast_join.c

25) Log Message:
Fix a bug in the sigiotask test and enable the test_fdreceive policy to build against the latest refpolicy headers. Signed-off-by:  Stephen Smalley <sds@tycho.nsa.gov>.

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_fdreceive.te
ltp/testcases/kernel/security/selinux-testsuite/tests/file/selinux_sigiotask.c

26) Log Message:
Included the statement:
	These tests are OSDL/LF and imported into LTP under GPLv2.

Modified File(s):
ltp/testcases/kernel/hotplug/cpu_hotplug/COPYING
ltp/testcases/kernel/hotplug/memory_hotplug/COPYING

27) Log Message:
This patch ensures that async_handler and async_handler_jk runs by default. Also the profile/default is updated to reflect the same. Signed-Off-By: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/profiles/default

Added Files:
ltp/testcases/realtime/func/async_handler/run_auto.sh

28) Log Message:
Looks like the else is missing since in both the cases where flag is set to one or not we get the test broken print. Signed-off-by: Max Stirling <vickyirobot@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/vmsplice/vmsplice01.c

29) Log Message:
we have some truble with mapping api functions (such as tst_exit) in bash (./tools/apicmds/ltpapicmd.c). Now this problem may be fixed if added "exit" after tst_exit, but it's temporary. We should redesign this system and describe it in documentation. Andrew Vaggin <avagin@parallels.com>.

Modified File(s):
ltp/testscripts/test_fs_bind.sh

30) Log Message:
signal_test_01 failed on ia64, the following message outputed:
---------------------------
ERROR [line: 146] sigaltstack failed: Cannot allocate memory
: Cannot allocate memory
signal_test_01: IPC Signals TestSuite program
---------------------------
And, i found the defined macro STACKSIZE is short on ia64. This patch fix it. Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/ipc/ipc_stress/signal_test_01.c

31) Log Message:
signal_test_05 failed on ia64 and x86_64, the following message outputed:
---------------------------
ERROR [line: 145] child process exited abnormally
---------------------------
Some signals which are ignored in ignore_signals() are not ignored in child(). e.g., 32, 33. (SIGRTMIN is 34). So we should reuse ignore_signals()'s signal ignoring code in child(). Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/ipc/ipc_stress/signal_test_05.c

32) Log Message:
Updating to include info about all other LTP man pages. Subrata Modak <subrata@linux.vnet.ibm.com>

Modified File(s):
ltp/README.ltp-devel

33) Log Message:
I've ported a testcase for gettid() from crackerjack to ltp. I've added a directory ltp/testcases/kernel/syscalls/gettid. Signed-off-by: Masatake YAMATO <yamato@redhat.com>

Modified Files:
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/gettid/Makefile
ltp/testcases/kernel/syscalls/gettid/gettid01.c

34) Log Message:
I found wrong format string usage in ltp/testcases/kernel/syscalls/exit/exit02.c: returned value from strerror is not used. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/exit/exit02.c

35) Log Message:
This patch fix a concurrency issue in semctl06. The IPC keys used for this test could conflict with keys from another task. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>.

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/semctl/semctl06.c

36) Log Message:
The attached patch was necessary in order to get LTP to build for our embedded system at work. Without this patch testcases that use the my_getpwnam() library function suffer from redeclaration errors. Signed-off-by: Matt Fleming <mjf@gentoo.org>.

Modified File(s):
ltp/lib/Makefile

37) Log Message:
Addition of enhanced test plan by Cai Qian <qcai@redhat.com>.

Modified File(s):
ltp/testcases/kdump/doc/TEST_PLAN.txt

38) Log Message:
Fixed the way how to run the "tc" command on the remote machine. Otherwise, we always get the following message on the local side: The remote host does not have netem functionality. Signed-off-by: Giuseppe Cavallaro@st.com.

Modified File(s):
ltp/testcases/network/stress/ns-tools/check_netem

39) Log Message:
Running the UDP network stress tests on my SH4 target I have had to modify the following scripts: killall_udp_traffic and udp4-multi-diffip01. It deletes the address before setting it to avoid the following error: RTNETLINK answers: File exists; it implies that the test fails. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>.

Modified File(s):
ltp/testcases/network/stress/udp/multi-diffip/udp4-multi-diffip01

40) Log Message:
This modifies the command sent to the remote host just to kill the ns-udpclient script. Indeed, it seems that the previous string always returns 1. Moreover, it adds a new check to verify if the return value is not empty. It could happen, for example, if the RSH returns sometime the following error: poll: protocol failure in circuit setup. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>.

Modified File(s):
ltp/testcases/network/stress/ns-tools/killall_udp_traffic

41) Log Message:
Attached a new patch just to add the same fixes I provided you for icpm and tcp network stress as well. On SH4 STB with STLinux distribution we are able to run all the network stress tests without any failures. Due to configuration issues we do not run the multi-diffnic tests (because they require plural Network cards for host). It modifies the command sent to the remote host to kill tcp/icmp clients. It also deletes the address before setting it to avoid the following error:  "RTNETLINK answers: File exists". This implies that the test fails. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>.

Modified File(s):
ltp/testcases/network/stress/icmp/multi-diffip/icmp4-multi-diffip01
ltp/testcases/network/stress/ns-tools/killall_icmp_traffic
ltp/testcases/network/stress/ns-tools/killall_tcp_traffic
ltp/testcases/network/stress/tcp/multi-diffip/tcp4-multi-diffip01

42) Log Message:
Addition of Initial set of Process Event Connectors by Li Zefan. Process event connector is a netlink connector that reports process events to userspace, and currently we have 5 kinds of process events, i.e. fork, exit, exec, uid, gid. There are total 5 test cases to test its functionality. But the test is not run by default, because I don't find a way to decide whether the underlying kernel supports this feather or not. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>.

Added File(s):
ltp/runtest/connectors
ltp/testcases/kernel/connectors/Makefile
ltp/testcases/kernel/connectors/pec/Makefile
ltp/testcases/kernel/connectors/pec/README
ltp/testcases/kernel/connectors/pec/event_generator.c
ltp/testcases/kernel/connectors/pec/pec_listener.c
ltp/testcases/kernel/connectors/pec/run_pec_test

43) Log Message:
Here it is. Based on my last patch.
- building failure on 2.6.16 should be fixed
- fix "make install" if kernel version < 2.6.15
- abort tests if kernel version < 2.6.15
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>.

Modified File(s):
ltp/runtest/connectors
ltp/testcases/kernel/connectors/Makefile
ltp/testcases/kernel/connectors/pec/Makefile
ltp/testcases/kernel/connectors/pec/pec_listener.c

Added File(s):
ltp/testcases/kernel/connectors/connector_test.sh

44) Log Message:
This was ported from the Crackerjack Project by Masatake YAMATO <yamato@redhat.com>.

Modified Files:
ltp/runtest/syscalls

Added Files:
ltp/testcases/kernel/syscalls/io_cancel/Makefile
ltp/testcases/kernel/syscalls/io_cancel/io_cancel01.c
ltp/testcases/kernel/syscalls/io_cancel/run-io_cancel.sh

45) Log Message:
I'd like to use the mechanism you introduced in io_* testcases. So I've made 'io_cancel' string in the script and Makefile a variable to avoid mistake. I made the patch from testcases/kernel/syscalls/io_cancel/Makefile, not from ltp/testcases/kernel/syscalls/io_cancel/Makefile. Is this acceptable. CVS reports like testcases/kernel/syscalls/io_cancel/Makefile. Signed-off-by: Masatake YAMATO <yamato@redhat.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/io_cancel/Makefile
ltp/testcases/kernel/syscalls/io_cancel/run-io_cancel.sh

46) Log Message:
hackbench tests the Linux scheduler. Initial test was written by Rusty Russell <rusty@rustcorp.com.au>. Later modified by Pierre Peiffer <pierre.peiffer@bull.net>, Ingo Molnar <mingo@elte.hu>, Arjan van de Ven <arjan@infradead.org>, "Zhang, Yanmin" <yanmin_zhang@linux.intel.com>, Nathan Lynch <ntl@pobox.com> and others. Included in LTP by Subrata Modak<subrata@linux.vnet.ibm.com>, after Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>.

Modified Files:
ltp/runtest/sched
ltp/testcases/kernel/sched/Makefile

Added Files:
ltp/testcases/kernel/sched/cfs-scheduler/Makefile
ltp/testcases/kernel/sched/cfs-scheduler/hackbench.c

47) Log Message:
I am proposing with the joined patch to allow the suite to be able the run the previous rpc tests (called now basic_tests). It needs to resolve some issues in the new "tirpc part" before allowing  the suite to launch it again. Le Rouzic <aime.le-rouzic@bull.net>.

Modified File(s):
ltp/doc/testcases/network.txt
ltp/runtest/rpc
ltp/runtest/stress.part3

48) Log Message:
Few Changes to ttype value.

Modified File(s):
ltp/testcases/kernel/syscalls/timerfd/timerfd01.c

49) Log Message:
Changes to fix Build, Install and run on non-supported architectures.

Added Files:
ltp/testcases/kernel/syscalls/utimensat/check_for_utimensat_support.c
Modified Files:
ltp/testcases/kernel/syscalls/utimensat/Makefile
ltp/testcases/kernel/syscalls/utimensat/utimensat01.c
ltp/testcases/kernel/syscalls/utimensat/utimensat_tests.sh

50) Log Message:
Fixing the run on supported kernels.

Modified File(s):
ltp/testscripts/test_fs_bind.sh

LTP-20080531

1) Log Message:
Following patch makes ballista test suite compile with gcc-4.3, without this it completely fails because of C++ cleanups introduced with gcc-4.3. By Caglar Onur <caglar@pardus.org.tr>

Modified File(s):
ltp/testcases/ballista/ballista/ballista.cpp
ltp/testcases/ballista/ballista/ballistaUtil.cpp
ltp/testcases/ballista/ballista/callGen.cpp
ltp/testcases/ballista/ballista/callGen_standAlone.cpp
ltp/testcases/ballista/ballista/create_code.pl
ltp/testcases/ballista/ballista/create_code_standAlone.pl
ltp/testcases/ballista/ballista/executeTestCase.cpp
ltp/testcases/ballista/ballista/executeTestCase.fresh
ltp/testcases/ballista/ballista/genCode.cpp
ltp/testcases/ballista/ballista/genCodeCreator.cpp
ltp/testcases/ballista/ballista/line.cpp
ltp/testcases/ballista/ballista/line.h
ltp/testcases/ballista/ballista/match.cpp
ltp/testcases/ballista/ballista/parseArguments.cpp
ltp/testcases/ballista/ballista/replacer.cpp
ltp/testcases/ballista/ballista/selfHost.cpp
ltp/testcases/ballista/ballista/serverCommunication.cpp
ltp/testcases/ballista/ballista/testCaseIterator.cpp
ltp/testcases/ballista/ballista/testCaseIterator.h
ltp/testcases/ballista/ballista/compile/bparser.cpp
ltp/testcases/ballista/ballista/templates/bTypes.cpp

2) Log Message:
The fixed address passed to mmap() should be aligned to the value of SHMLBA as defined in sys/shm.h. See Documentation/cachetlb.txt in the kernel for the explanation behind this. On most architectures this value is the page size, but not on all. Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>

Modified File(s):
ltp/testcases/kernel/mem/shmt/shmt09.c
ltp/testcases/kernel/syscalls/mmap/mmap01.c

3) Log Message:
These test cases fail on the NFS environment due to NFS relates issue(s). Hence abondon these tests when NFS is detected. By, Sridhar Vinay <vinaysridhar@in.ibm.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/fcntl/fcntl14.c
ltp/testcases/kernel/syscalls/fcntl/fcntl23.c
ltp/testcases/kernel/syscalls/fcntl/fcntl24.c
ltp/testcases/kernel/syscalls/fcntl/fcntl25.c
ltp/testcases/kernel/syscalls/fcntl/fcntl26.c
ltp/testcases/kernel/syscalls/splice/splice01.c
ltp/testcases/kernel/syscalls/tee/tee01.c
ltp/testcases/kernel/syscalls/utime/utime01.c
ltp/testcases/kernel/syscalls/utime/utime02.c
ltp/testcases/kernel/syscalls/utime/utime03.c
ltp/testcases/network/nfs/nfs01/nfs01

4) Log Message:
Update to OpenHPI 2.10.1 (see www.openhpi.org for more info)

Modified Files:
ltp/testcases/open_hpi_testsuite/Makefile.am
ltp/testcases/open_hpi_testsuite/Makefile.in
ltp/testcases/open_hpi_testsuite/configure
ltp/testcases/open_hpi_testsuite/configure.ac
ltp/testcases/open_hpi_testsuite/openhpi.conf.example
ltp/testcases/open_hpi_testsuite/openhpi.spec.in
ltp/testcases/open_hpi_testsuite/clients/Makefile.in
ltp/testcases/open_hpi_testsuite/clients/hpiel.c
ltp/testcases/open_hpi_testsuite/clients/hpievents.c
ltp/testcases/open_hpi_testsuite/clients/hpipower.c
ltp/testcases/open_hpi_testsuite/cpp/Makefile.in
ltp/testcases/open_hpi_testsuite/cpp/t/Makefile.in
ltp/testcases/open_hpi_testsuite/docs/Makefile.am
ltp/testcases/open_hpi_testsuite/docs/Makefile.in
ltp/testcases/open_hpi_testsuite/docs/hld/Makefile.am
ltp/testcases/open_hpi_testsuite/docs/hld/Makefile.in
ltp/testcases/open_hpi_testsuite/docs/hld/appendix.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/authors.dtd
ltp/testcases/open_hpi_testsuite/docs/hld/bookinfo.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/introduction.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/legal.dtd
ltp/testcases/open_hpi_testsuite/docs/hld/obtaining.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/openhpi-manual.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/openhpi_highlevel.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/openhpi_structure.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/plugin_guide.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/plugin_usage.sgml
ltp/testcases/open_hpi_testsuite/docs/hld/revisions.dtd
ltp/testcases/open_hpi_testsuite/docs/hld/sahpi_breakdown.sgml
ltp/testcases/open_hpi_testsuite/docs/man/Makefile.in
ltp/testcases/open_hpi_testsuite/hpi_shell/Makefile.am
ltp/testcases/open_hpi_testsuite/hpi_shell/Makefile.in
ltp/testcases/open_hpi_testsuite/hpi_shell/commands.c
ltp/testcases/open_hpi_testsuite/hpi_shell/ctrl_inv.c
ltp/testcases/open_hpi_testsuite/hpi_shell/hpi_cmd.h
ltp/testcases/open_hpi_testsuite/hpi_shell/sensor.c
ltp/testcases/open_hpi_testsuite/hpi_shell/session.c
ltp/testcases/open_hpi_testsuite/hpi_ui_lib/Makefile.in
ltp/testcases/open_hpi_testsuite/hpi_ui_lib/service.c
ltp/testcases/open_hpi_testsuite/hpi_ui_lib/show.c
ltp/testcases/open_hpi_testsuite/marshal/Makefile.in
ltp/testcases/open_hpi_testsuite/marshal/connection.c
ltp/testcases/open_hpi_testsuite/marshal/marshal.c
ltp/testcases/open_hpi_testsuite/marshal/marshal_hpi_types.c
ltp/testcases/open_hpi_testsuite/marshal/marshal_hpi_types.h
ltp/testcases/open_hpi_testsuite/marshal/strmsock.cpp
ltp/testcases/open_hpi_testsuite/marshal/t/Makefile.am
ltp/testcases/open_hpi_testsuite/marshal/t/Makefile.in
ltp/testcases/open_hpi_testsuite/marshal/t/float_format.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_012.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_013.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_014.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_015.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_016.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_017.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_018.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_028.c
ltp/testcases/open_hpi_testsuite/openhpid/Makefile.am
ltp/testcases/open_hpi_testsuite/openhpid/Makefile.in
ltp/testcases/open_hpi_testsuite/openhpid/openhpiclient.cpp
ltp/testcases/open_hpi_testsuite/openhpid/openhpid.cpp
ltp/testcases/open_hpi_testsuite/plugins/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/ipmi/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/ipmi/t/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_discover.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_domain.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_log.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_mc_vendor.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_resource.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_sdr.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/ipmi_sensor_hotswap.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/thread.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/rtas/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/simulator/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/simulator/t/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/sysfs/Makefile.in
ltp/testcases/open_hpi_testsuite/plugins/watchdog/Makefile.in
ltp/testcases/open_hpi_testsuite/scripts/Makefile.in
ltp/testcases/open_hpi_testsuite/scripts/test/Makefile.in
ltp/testcases/open_hpi_testsuite/scripts/test/conformance_report.pl
ltp/testcases/open_hpi_testsuite/scripts/test/coverage_report.pl
ltp/testcases/open_hpi_testsuite/scripts/test/gcov2html.pl
ltp/testcases/open_hpi_testsuite/scripts/test/generate_index.pl
ltp/testcases/open_hpi_testsuite/scripts/test/gsum2html.pl
ltp/testcases/open_hpi_testsuite/scripts/test/testconformance.pl
ltp/testcases/open_hpi_testsuite/scripts/test/testcoverage.pl
ltp/testcases/open_hpi_testsuite/snmp/Makefile.in
ltp/testcases/open_hpi_testsuite/src/Makefile.in
ltp/testcases/open_hpi_testsuite/src/config.c
ltp/testcases/open_hpi_testsuite/src/event.c
ltp/testcases/open_hpi_testsuite/src/safhpi.c
ltp/testcases/open_hpi_testsuite/src/t/Makefile.in
ltp/testcases/open_hpi_testsuite/src/t/ohpi/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/sahpi_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/sahpi_enum_utils.h
ltp/testcases/open_hpi_testsuite/utils/sahpi_struct_utils.c
ltp/testcases/open_hpi_testsuite/utils/sahpi_struct_utils.h
ltp/testcases/open_hpi_testsuite/utils/uid_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/t/ann/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/t/el/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/t/epath/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/t/rpt/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/Makefile.in
ltp/testcases/open_hpi_testsuite/utils/t/uid/Makefile.in

Added Files:
ltp/testcases/open_hpi_testsuite/hpi_shell/dimi.c
ltp/testcases/open_hpi_testsuite/hpi_shell/fumi.c

Removed Files:
ltp/testcases/open_hpi_testsuite/openhpi.spec
ltp/testcases/open_hpi_testsuite/hpi_shell/hpi_cmd
ltp/testcases/open_hpi_testsuite/hpi_shell/openhpiclient.cpp
ltp/testcases/open_hpi_testsuite/hpi_shell/openhpiclient.h
ltp/testcases/open_hpi_testsuite/marshal/t/connection.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal.c
ltp/testcases/open_hpi_testsuite/marshal/t/marshal_hpi_types.c
ltp/testcases/open_hpi_testsuite/openhpid/alarm.c
ltp/testcases/open_hpi_testsuite/openhpid/config.c
ltp/testcases/open_hpi_testsuite/openhpid/domain.c
ltp/testcases/open_hpi_testsuite/openhpid/event.c
ltp/testcases/open_hpi_testsuite/openhpid/hotswap.c
ltp/testcases/open_hpi_testsuite/openhpid/init.c
ltp/testcases/open_hpi_testsuite/openhpid/lock.c
ltp/testcases/open_hpi_testsuite/openhpid/ohpi.c
ltp/testcases/open_hpi_testsuite/openhpid/openhpiclient.h
ltp/testcases/open_hpi_testsuite/openhpid/plugin.c
ltp/testcases/open_hpi_testsuite/openhpid/plugin_static.c
ltp/testcases/open_hpi_testsuite/openhpid/safhpi.c
ltp/testcases/open_hpi_testsuite/openhpid/session.c
ltp/testcases/open_hpi_testsuite/openhpid/threaded.c
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_addr.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_auth.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_cmd.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_con.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_con_lan.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_con_smi.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_log.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_msg.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_sensor_factors.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/ipmi_utils.cpp
ltp/testcases/open_hpi_testsuite/plugins/ipmidirect/t/thread.cpp
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/el2event.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/el2event.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_annunciator.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_control.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_discover.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_discover_bc.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_discover_rsa.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_event.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_hotswap.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_inventory.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_power.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_reset.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_resources.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_resources_rsa.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_sel.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_sensor.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_session.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_time.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_utils.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_watchdog.c
ltp/testcases/open_hpi_testsuite/plugins/snmp_bc/t/snmp_bc_xml2event.c
ltp/testcases/open_hpi_testsuite/src/plugin_static.c
ltp/testcases/open_hpi_testsuite/utils/t/ann/announcement_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/el/el_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/epath_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/sahpi_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/sahpi_event_encode.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/sahpi_event_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/sahpi_struct_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/sahpi_time_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/sahpiatca_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/epath/uid_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/epath_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/rpt_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/sahpi_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/sahpi_event_encode.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/sahpi_event_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/sahpi_struct_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/sahpi_time_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/sahpiatca_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/rpt/uid_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/epath_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/sahpi_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/sahpi_event_encode.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/sahpi_event_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/sahpi_struct_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/sahpi_time_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/sahpiatca_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/sahpi/uid_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/epath_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/sahpi_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/sahpi_event_encode.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/sahpi_event_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/sahpi_struct_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/sahpi_time_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/sahpiatca_enum_utils.c
ltp/testcases/open_hpi_testsuite/utils/t/uid/uid_utils.c

5) Log Message:
Added missing break in parse args switch/case. (-s arg). Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>

Modified Files:
ltp/testcases/realtime/lib/librttest.c

6) Log Message:
Modified periodic_cpu_load_single.c. Changed arg -c to -l (calculation per loop). In next patch, -c arg is to be used as pass/fail criteria globally for all tests. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>

Modified Files:
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c

7) Log Message:
Added -c arg into rt_init of librttest.c so all tests can use it. This arg sets the global variable (double) pass_criteria. librttest.h declares pass_criteria as external. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/include/librttest.h
ltp/testcases/realtime/lib/librttest.c

8) Log Message:
Modified prio-preempt.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/prio-preempt/prio-preempt.c

9) Log Message:
Modified pthread_kill_latency.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/pthread_kill_latency/pthread_kill_latency.c

10) Log Message:
Modified matrix_mult.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c

11) Log Message:
Modified async_handler.c and async_handler_jk.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/async_handler/async_handler.c
ltp/testcases/realtime/func/async_handler/async_handler_jk.c

12) Log Message:
Modified pi_perf.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/pi_perf/pi_perf.c

13) Log Message:
Modified hrtimer-prio.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c

14) Log Message:
Modified tc-2.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/thread_clock/tc-2.c

15) Log Message:
Modified sched_latency.c to consider pass criteria (-c) arg. Signed-off-by: Gilles Carry <gilles.carry@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/sched_latency/sched_latency.c

16) Log Message:
It seems that hugeshmctl01 doesn't free some hugetlb pages when it fails. ps shows that there is still an instance of hugeshmctl01 left even if hugeshmctl01 is not running which may attach some hugetlb pages. The problem is due to the arbitrary usleep time in hugeshmctl01 which results in incorrect execution order. The intention of the sleep time is to ensure the children call shmat() and pause() before the parent checks shm status and calls stat_cleanup(). But there is no absolute assurance that this sleep always works. In the failure above, the last child process forked by the parent may not run and call shmat() immediately after it's created. When the parent checks shm status, it finds only 3 child attaching the shm instead of 4, so it reports the failure. And then it calls stat_cleanup() to send SIGUSR1 to all children, but since the last child hasn't called pause() yet, SIGUSR1 is handled before pause(). When the last child calls pause(), since there is no further signal to wake it up, it sleeps forever. patch to ensure children can receive and handle SIGUSR1 from parent in pause(). The patch is not to change the arbitrary usleep time since any time is arbitrary though a large time is more acceptable. The patch is to use sigprocmask() to block SIGUSR1 before children sleep for SIGUSR1 from parent, and then call sigsuspend() to unblock SIGUSR1 and sleep for SIGUSR1. By doing so, we may avoid the infinite sleep and keeping attached shm forever so that affect other hugetlb test. In parent process, aonther sigprocmask() is called before usleep(). This has the same effect of sleep more time. By, shenlinf <shenlinf@cn.ibm.com> 

Modified File(s):
ltp/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c

17) Log Message:
I am testing ltp-full-20080430. When I execute hugemmap04, hugemmap01 is shown in the output which makes the output confusing. patch to fix the bad name. By, shenlinf <shenlinf@cn.ibm.com>

Modified File(s):
ltp/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c

18) Log Message:
punt useless local prototype for fdopen() -- stdio.h already provides this, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/lib/tst_res.c

19) Log Message:
cleanup CFLAGS handling, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/lib/Makefile

20) Log Message:
tst_require_root(): unify root checking with this function, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/include/test.h

21) Log Message:
tst_require_root(): unify root checking with this function

Modified File(s):
ltp/lib/tst_res.c

22) Log Message:
convert to standard ltp functions, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/fs/fs_perms/Makefile
ltp/testcases/kernel/fs/fs_perms/fs_perms.c

23) Log Message:
fix error in previous commit: compare result to expected result, not 0

Modified File(s):
ltp/testcases/kernel/fs/fs_perms/fs_perms.c

24) Log Message:
normalize exit values as expected: 0 means PASS and non-0 means FAIL

Modified File(s):
ltp/testcases/kernel/fs/fs_perms/fs_perms.c
ltp/testcases/kernel/fs/fs_perms/simpletest.sh
ltp/testcases/kernel/fs/fs_perms/testx.c

25) Log Message:
lcov: --norecursion becomes --no-recursion + added docs, by, Peter Oberparleiter <oberpapr@users.sourceforge.net>

Modified File(s):
ltp/utils/analysis/lcov/man/geninfo.1
ltp/utils/analysis/lcov/man/lcov.1
ltp/utils/analysis/lcov/bin/geninfo
ltp/utils/analysis/lcov/bin/lcov

26) Log Message:
Attached is a fixed patch to be applied over 1.8 in cvs. Previous patch mistook the return of mknod() for a file descriptor and after the first iteration, test was using the wrong (closed) file descriptor. This patch uses the correct file descriptor. Thanks Rishikesh for catching my error. By, Henry Yei <hyei@mvista.com>

Modified File(s):
ltp/testcases/kernel/syscalls/sockioctl/sockioctl01.c

27) Log Message:
The problem is because some of the realtime tests can't be compiled on older distros. We will have to fix this 'properly', taking into account the kernel and glibc versions, as well as the architecture. Until we do that, can we disable compiling realtime tests by default? Below is a patch that can do it. Signed-off-by: Sripathi Kodi <sripathik@in.ibm.com>

Modified File(s):
ltp/testcases/Makefile

28) Log Message:
Fix for some failures by Anoop V Chakkalakkal <anoop.vijayan@in.ibm.com>.

Modified File(s):
ltp/testcases/kernel/mem/mtest07/mallocstress.c

29) Log Message:
This patch adds a few tests for a variety of bind mounts. More than just shared subtrees are involved as plain --bind and plain --move are used. Read-only bind mounts are not covered by these tests however. Avantika Mathur originally wrote the tests. I've ported them to use LTP APIs and conventions. I've also modified Avantika's scripts to try and robustly cleanup after broken tests so that leftover mounts and failures at any point in a test are cleaned up thoroughly. I've made what efforts I can to follow the conventions I found in LTP FAQs and the source however there's alot here so I may have missed something. Shared bind mounts were introduced in 2.6.15. Because of this we need a tst_kvercmp command which can be invoked from a script. I've added this to ltpapicmd.c. This patch applies to the April release of LTP. I'll also be posting results for x86, x86_64, and ppc64 on a variety of kernels. In order to highlight the results contributed by this patch I've only run this portion of the patched LTP. Comments welcome. Signed-off-by: Matt Helsley <matthltc@us.ibm.com>.

Modified Files:
ltp/runltp
ltp/testcases/kernel/fs/Makefile
ltp/tools/apicmds/Makefile
ltp/tools/apicmds/ltpapicmd.c

Added Files:
ltp/runtest/fs_bind
ltp/testcases/kernel/fs/fs_bind/BUGS
ltp/testcases/kernel/fs/fs_bind/CHANGELOG
ltp/testcases/kernel/fs/fs_bind/Makefile
ltp/testcases/kernel/fs/fs_bind/README
ltp/testcases/kernel/fs/fs_bind/TODO
ltp/testcases/kernel/fs/fs_bind/bin/Makefile
ltp/testcases/kernel/fs/fs_bind/bin/check_prop
ltp/testcases/kernel/fs/fs_bind/bin/lockfile
ltp/testcases/kernel/fs/fs_bind/bin/makedir
ltp/testcases/kernel/fs/fs_bind/bin/nsclone.c
ltp/testcases/kernel/fs/fs_bind/bin/setup
ltp/testcases/kernel/fs/fs_bind/bin/setupnslock
ltp/testcases/kernel/fs/fs_bind/bin/smount.c
ltp/testcases/kernel/fs/fs_bind/bind/OO_descriptions.txt
ltp/testcases/kernel/fs/fs_bind/bind/test01
ltp/testcases/kernel/fs/fs_bind/bind/test02
ltp/testcases/kernel/fs/fs_bind/bind/test03
ltp/testcases/kernel/fs/fs_bind/bind/test04
ltp/testcases/kernel/fs/fs_bind/bind/test05
ltp/testcases/kernel/fs/fs_bind/bind/test06
ltp/testcases/kernel/fs/fs_bind/bind/test07
ltp/testcases/kernel/fs/fs_bind/bind/test07-2
ltp/testcases/kernel/fs/fs_bind/bind/test08
ltp/testcases/kernel/fs/fs_bind/bind/test09
ltp/testcases/kernel/fs/fs_bind/bind/test10
ltp/testcases/kernel/fs/fs_bind/bind/test11
ltp/testcases/kernel/fs/fs_bind/bind/test12
ltp/testcases/kernel/fs/fs_bind/bind/test13
ltp/testcases/kernel/fs/fs_bind/bind/test14
ltp/testcases/kernel/fs/fs_bind/bind/test15
ltp/testcases/kernel/fs/fs_bind/bind/test16
ltp/testcases/kernel/fs/fs_bind/bind/test17
ltp/testcases/kernel/fs/fs_bind/bind/test18
ltp/testcases/kernel/fs/fs_bind/bind/test19
ltp/testcases/kernel/fs/fs_bind/bind/test20
ltp/testcases/kernel/fs/fs_bind/bind/test21
ltp/testcases/kernel/fs/fs_bind/bind/test22
ltp/testcases/kernel/fs/fs_bind/bind/test23
ltp/testcases/kernel/fs/fs_bind/bind/test24
ltp/testcases/kernel/fs/fs_bind/cloneNS/OO_descriptions.txt
ltp/testcases/kernel/fs/fs_bind/cloneNS/child01
ltp/testcases/kernel/fs/fs_bind/cloneNS/child02
ltp/testcases/kernel/fs/fs_bind/cloneNS/child03
ltp/testcases/kernel/fs/fs_bind/cloneNS/child04
ltp/testcases/kernel/fs/fs_bind/cloneNS/child05
ltp/testcases/kernel/fs/fs_bind/cloneNS/child06
ltp/testcases/kernel/fs/fs_bind/cloneNS/child07
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent01
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent02
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent03
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent04
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent05
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent06
ltp/testcases/kernel/fs/fs_bind/cloneNS/parent07
ltp/testcases/kernel/fs/fs_bind/cloneNS/test01
ltp/testcases/kernel/fs/fs_bind/cloneNS/test02
ltp/testcases/kernel/fs/fs_bind/cloneNS/test03
ltp/testcases/kernel/fs/fs_bind/cloneNS/test04
ltp/testcases/kernel/fs/fs_bind/cloneNS/test05
ltp/testcases/kernel/fs/fs_bind/cloneNS/test06
ltp/testcases/kernel/fs/fs_bind/cloneNS/test07
ltp/testcases/kernel/fs/fs_bind/move/OO_descriptions.txt
ltp/testcases/kernel/fs/fs_bind/move/test01
ltp/testcases/kernel/fs/fs_bind/move/test02
ltp/testcases/kernel/fs/fs_bind/move/test03
ltp/testcases/kernel/fs/fs_bind/move/test04
ltp/testcases/kernel/fs/fs_bind/move/test05
ltp/testcases/kernel/fs/fs_bind/move/test06
ltp/testcases/kernel/fs/fs_bind/move/test07
ltp/testcases/kernel/fs/fs_bind/move/test08
ltp/testcases/kernel/fs/fs_bind/move/test09
ltp/testcases/kernel/fs/fs_bind/move/test10
ltp/testcases/kernel/fs/fs_bind/move/test11
ltp/testcases/kernel/fs/fs_bind/move/test12
ltp/testcases/kernel/fs/fs_bind/move/test13
ltp/testcases/kernel/fs/fs_bind/move/test14
ltp/testcases/kernel/fs/fs_bind/move/test15
ltp/testcases/kernel/fs/fs_bind/move/test16
ltp/testcases/kernel/fs/fs_bind/move/test17
ltp/testcases/kernel/fs/fs_bind/move/test18
ltp/testcases/kernel/fs/fs_bind/move/test19
ltp/testcases/kernel/fs/fs_bind/move/test20
ltp/testcases/kernel/fs/fs_bind/move/test21
ltp/testcases/kernel/fs/fs_bind/move/test22
ltp/testcases/kernel/fs/fs_bind/rbind/OO_descriptions.txt
ltp/testcases/kernel/fs/fs_bind/rbind/test01
ltp/testcases/kernel/fs/fs_bind/rbind/test02
ltp/testcases/kernel/fs/fs_bind/rbind/test03
ltp/testcases/kernel/fs/fs_bind/rbind/test04
ltp/testcases/kernel/fs/fs_bind/rbind/test05
ltp/testcases/kernel/fs/fs_bind/rbind/test06
ltp/testcases/kernel/fs/fs_bind/rbind/test07
ltp/testcases/kernel/fs/fs_bind/rbind/test07-2
ltp/testcases/kernel/fs/fs_bind/rbind/test08
ltp/testcases/kernel/fs/fs_bind/rbind/test09
ltp/testcases/kernel/fs/fs_bind/rbind/test10
ltp/testcases/kernel/fs/fs_bind/rbind/test11
ltp/testcases/kernel/fs/fs_bind/rbind/test12
ltp/testcases/kernel/fs/fs_bind/rbind/test13
ltp/testcases/kernel/fs/fs_bind/rbind/test14
ltp/testcases/kernel/fs/fs_bind/rbind/test15
ltp/testcases/kernel/fs/fs_bind/rbind/test16
ltp/testcases/kernel/fs/fs_bind/rbind/test17
ltp/testcases/kernel/fs/fs_bind/rbind/test18
ltp/testcases/kernel/fs/fs_bind/rbind/test19
ltp/testcases/kernel/fs/fs_bind/rbind/test20
ltp/testcases/kernel/fs/fs_bind/rbind/test21
ltp/testcases/kernel/fs/fs_bind/rbind/test22
ltp/testcases/kernel/fs/fs_bind/rbind/test23
ltp/testcases/kernel/fs/fs_bind/rbind/test24
ltp/testcases/kernel/fs/fs_bind/rbind/test25
ltp/testcases/kernel/fs/fs_bind/rbind/test26
ltp/testcases/kernel/fs/fs_bind/rbind/test27
ltp/testcases/kernel/fs/fs_bind/rbind/test28
ltp/testcases/kernel/fs/fs_bind/rbind/test29
ltp/testcases/kernel/fs/fs_bind/rbind/test30
ltp/testcases/kernel/fs/fs_bind/rbind/test31
ltp/testcases/kernel/fs/fs_bind/rbind/test32
ltp/testcases/kernel/fs/fs_bind/rbind/test33
ltp/testcases/kernel/fs/fs_bind/rbind/test34
ltp/testcases/kernel/fs/fs_bind/rbind/test35
ltp/testcases/kernel/fs/fs_bind/rbind/test36
ltp/testcases/kernel/fs/fs_bind/rbind/test37
ltp/testcases/kernel/fs/fs_bind/rbind/test38
ltp/testcases/kernel/fs/fs_bind/rbind/test39
ltp/testcases/kernel/fs/fs_bind/regression/OO_descriptions.txt
ltp/testcases/kernel/fs/fs_bind/regression/test01
ltp/testcases/kernel/fs/fs_bind/regression/test02
ltp/testcases/kernel/fs/fs_bind/regression/test03
ltp/testscripts/test_fs_bind.sh

30) Log Message:
The fixed address passed to mmap() should be aligned to the value of SHMLBA as defined in sys/shm.h (The same fix can be found in the mmap01 case earlier sent from Martin Habets ). By, Roy Lee <roylee17@gmail.com>.

Modified File(s):
ltp/testcases/kernel/io/direct_io/diotest4.c

31) Log Message:
This patch modifies testcases to attach their shm segment to addresses chosen by ststem instead of arch-dependent ones. I looked into the history of these testcases, but couldn't find the reason why they specified arch-dependent addresses in the first place. If it has something to do with the page coloring issue, SHMLBA should be in some manners instead of defining arch-dependent addresses. Tested successfully on ia64, ppc64, x86_64, s390x & i386 by Subrata Modak <subrata@linux.vnet.ibm.com>, and by Martin Habets <errandir_news@mph.eclipse.co.uk> on sparc32. Signed-off-by: Roy Lee <roylee17@gmail.com>.

Modified File(s):
ltp/testcases/kernel/mem/shmt/shmt02.c
ltp/testcases/kernel/mem/shmt/shmt04.c
ltp/testcases/kernel/mem/shmt/shmt05.c
ltp/testcases/kernel/mem/shmt/shmt06.c
ltp/testcases/kernel/mem/shmt/shmt07.c
ltp/testcases/kernel/mem/shmt/shmt09.c

32) Log Message:
These patches will allow for the plotting of the max over time in discrete segments, rather than as a monotonically increasing value, while maintaining the original behavior by default. Cleanup some whitespace issues here. Signed-off-by: Darren Hart <dvhltc@us.ibm.com>. Acked-by: John Stultz <johnstul@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/func/gtod_latency/gtod_infinite.c

33) Log Message:
These patches will allow for the plotting of the max over time in discrete segments, rather than as a monotonically increasing value, while maintaining the original behavior by default. The existing test has an infinite window and report the new max each time it is increased.  The patch maintains the default behavior and adds a -w option, allowing the user to specify a window (iteration count) for which the max of that window is reported ever w iterations. Signed-off-by: Darren Hart <dvhltc@us.ibm.com>. Acked-by: John Stultz <johnstul@us.ibm.com>.

Modified File(s):
ltp/testcases/realtime/func/gtod_latency/gtod_infinite.c

34) Log Message:
I see Roy's patch was already checked in. In principle I agree with the patch, but a few things are wrong now and IMHO does not fulfill what it should test any longer. shm05.c -> see my (untested!!!) patch below. Some architectures can only map at specific offsets. Current version "sucessfully" fails, because e.g. hppa can't map at cp+4096. So, it's not failing because the memory regions overlap, although that was intended to be tested...shm06.c now does basically the same test as shm04.c ?!? Doesn't make sense... I would revert the patch for shm06, but maybe others think different???? Other patches seem ok, although I haven't looked too deep into them yet... Helge Deller <deller@gmx.de>.

Modified File(s):
ltp/testcases/kernel/mem/shmt/shmt05.c

35) Log Message:
Roy Lee <roylee17@gmail.com> wrote:
Your patch looks good to me. It does what I'm intended but failed to do; eliminating explicit arch-dependent code without breaking logics. How about merge the scenario of shm06 into shm04, and then eliminate shm06? Modify shm04 to attach the same segment _twice_ to the child's address space. In this case, the first returned address should be the same as where the parent attaches its segment to while the second returned address should be different.
Helge Deller <deller@gmx.de> wrote:
Yes, this is probably the best idea. Alternatively, just leave shm04 as-is, and do the twice-mapping you mentioned above in shm06. This way we'd keep two simple tests.
Roy Lee <roylee17@gmail.com> wrote back:
Here's the patch for the shmt06 according to Helge's recommandation, please help review it.

Modified File(s):
ltp/testcases/kernel/mem/shmt/shmt06.c

36) Log Message:
Adding default Log File generation support for LTP. By, Subrata Modak<subrata@linux.vnet.ibm.com>

Modified File(s):
ltp/runltp

37) Log Message:
Both of the above test cases has similar issue to shmt/mmap series. This patch removes the non-aligned addresses explicitly coded for different architectures by: 
1) probing an available address by a pair of shmat/shmdt calls, and, 
2) replaceing the addr with offset in the struct test_case_t.
By, Roy Lee <roylee17@gmail.com>

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/shmat/shmat01.c
ltp/testcases/kernel/syscalls/ipc/shmat/shmat02.c

38) Log Message:
The "pan/pan" would failed in segmentation fault with a wrong option "-f command-file". Among the options, the "/tmp/test" does not exist. The solution is to add condition judgements before use the pointer. To execute pan/pan with option "-p" will occurs Segmentation fault. The reason is that it not appends the "-l" option to pan to open the "logfile" for writing log. Just add a condition judgement to fix it. Signed-off-by: Jin Bing Guo <guojb@cn.ibm.com>.

Modified File(s):
ltp/pan/pan.c

39) Log Message:
Make-sync_pipe-API-more-generic-and-update-related.patch.
Roy Lee <roylee17@gmail.com> noted:
Referring to the sync_pipes API, create_sync_pipes(), wait_son_startup(), notify_startup(), which is defined in the: testcases/kernel/syscalls/lib/libtestsuite.[ch], I found the new sync_pipes API very convenient to synchronize processes. However the naming might pose some semantic restrictions on their usages. Since it can be used for makingparent to wait child, and vice versa, perhaps a better naming should be used. For example: sync_pipes_create (), sync_pipes_wait (), sync_pipes_notify(), other names will be good as long as they don't assume the caller is child or parent. Furthermore, since it is also suitable for being used in common test cases, moving  it outside the syscalls's directory to a more common place might be a good idea.
Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com> noted:
I fully agree with your remarks. But if you want to make these functions more generic, it should be possible to call sync_pipe_wait / notify several times, which is not possible in the current code since I close file descriptors in these functions. A quite simple solution is to keep these file descriptors opened, and to add a function to close them or simply let these file descriptors being closed by libC or kernel at process end. Signed-off-by: Roy Lee <roylee17@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/execve/execve05.c
ltp/testcases/kernel/syscalls/ftruncate/ftruncate04.c
ltp/testcases/kernel/syscalls/ipc/msgrcv/msgrcv05.c
ltp/testcases/kernel/syscalls/ipc/msgrcv/msgrcv06.c
ltp/testcases/kernel/syscalls/ipc/msgsnd/msgsnd05.c
ltp/testcases/kernel/syscalls/ipc/msgsnd/msgsnd06.c
ltp/testcases/kernel/syscalls/ipc/semctl/semctl01.c
ltp/testcases/kernel/syscalls/ipc/semop/semop05.c
ltp/testcases/kernel/syscalls/ipc/shmctl/shmctl01.c
ltp/testcases/kernel/syscalls/lib/libtestsuite.c
ltp/testcases/kernel/syscalls/lib/libtestsuite.h

40) Log Message:
Put-libtestsuite-to-a-more-common-place.patch
Roy Lee <roylee17@gmail.com> noted:
Referring to the sync_pipes API, create_sync_pipes(), wait_son_startup(), notify_startup(), which is defined in the: testcases/kernel/syscalls/lib/libtestsuite.[ch], I found the new sync_pipes API very convenient to synchronize processes. However the naming might pose some semantic restrictions on their usages. Since it can be used for makingparent to wait child, and vice versa, perhaps a better naming should be used. For example: sync_pipes_create (), sync_pipes_wait (), sync_pipes_notify(), other names will be good as long as they don't assume the caller is child or parent. Furthermore, since it is also suitable for being used in common test cases, moving  it outside the syscalls's directory to a more common place might be a good idea.
Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com> noted:
I fully agree with your remarks. But if you want to make these functions more generic, it should be possible to call sync_pipe_wait / notify several times, which is not possible in the current code since I close file descriptors in these functions. A quite simple solution is to keep these file descriptors opened, and to add a function to close them or simply let these file descriptors being closed by libC or kernel at process end. Signed-off-by: Roy Lee <roylee17@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/Makefile
ltp/testcases/kernel/syscalls/chdir/Makefile
ltp/testcases/kernel/syscalls/creat/Makefile
ltp/testcases/kernel/syscalls/execve/Makefile
ltp/testcases/kernel/syscalls/fchdir/Makefile
ltp/testcases/kernel/syscalls/ftruncate/Makefile
ltp/testcases/kernel/syscalls/ipc/msgrcv/Makefile
ltp/testcases/kernel/syscalls/ipc/msgsnd/Makefile
ltp/testcases/kernel/syscalls/ipc/semctl/Makefile
ltp/testcases/kernel/syscalls/ipc/semop/Makefile
ltp/testcases/kernel/syscalls/ipc/shmctl/Makefile
ltp/testcases/kernel/syscalls/kill/Makefile
ltp/testcases/kernel/syscalls/mkdir/Makefile
ltp/testcases/kernel/syscalls/mremap/Makefile
ltp/testcases/kernel/syscalls/open/Makefile
ltp/testcases/kernel/syscalls/rename/Makefile
ltp/testcases/kernel/syscalls/rmdir/Makefile
ltp/testcases/kernel/syscalls/sched_setscheduler/Makefile
ltp/testcases/kernel/syscalls/vhangup/Makefile

Added File(s):
ltp/include/libtestsuite.h
ltp/lib/libtestsuite.c

41) Log Message:
The earlier patch broke parisc (which has really some strange requirements). Attached patch fixes it. If it's OK for you, please apply. By, Helge Deller <deller@gmx.de>.

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/shmat/shmat01.c
ltp/testcases/kernel/syscalls/ipc/shmat/shmat02.c

42) Log Message:
Currently ltp-devel install man pages in /opt/ltp/share/man/; however, they should be installed in /usr/share/man/. By, George Kraft <gk4@us.ibm.com>.

Modified File(s):
ltp/ltp-devel.spec
ltp/doc/man1/Makefile
ltp/doc/man3/Makefile

43) Log Message:
Included all of /include and /lib and /doc in the ltp-devel RPMs. By George Kraft <gk4@us.ibm.com>.

Modified File(s):
ltp/README.ltp-devel
ltp/ltp-devel.spec
ltp/include/Makefile

44) Log Message:
Preparing for the next Stable release of ltp-devel Packages, which will have:
1) All files under ltp/include in the package,
2) Install ltp man pages in system man directory.

Modified File(s):
ltp/ltp-devel.spec

45) Log Message:
Profiled Tests:
Basically this was done to enhance the pass/fail criteria usage and allow the user to setup tests configurations according to specific needs. Imagine a test series that may validate a hardware for some latencies (case #1) while another series would validate other criteria (case #2). The same test used in situation #1 will not have the same configuration (arguments) in situation #2. Scripting has to be done for this to achieve. The profile system does this for you. You just have to configure. Not only pass/fail criteria can be set since the profile system simply runs command lines defined in profiles. So any argument can be choosen. ie: a profile can define criteria for tests with or without saving statistics (-s) or simulate jvm (-j). A profile comes as a single file so it is easy to copy from a test machine to another. With this patch, profiles can be used either for test global run (./run.sh) or for an individual directory (./run_auto.sh). For more information, read doc/AUTOMATED_RUN.
This patch is intentionnally global as splitting changes would not make sense.
This includes:
- changes of scripts for automated tests to feature profiles
- individual changes for tests using automation
- a default profile (to be used as an example)
- documentation writing/modifying.
Signed-off-by: Gilles Carry <gilles.carry@bull.net>,
Reviewed-by: Ankita Garg <ankita@in.ibm.com>.

Modified Files:
ltp/testcases/realtime/run.sh
ltp/testcases/realtime/doc/HOWTO_ADD_TESTS
ltp/testcases/realtime/func/gtod_latency/run_auto.sh
ltp/testcases/realtime/func/matrix_mult/run_auto.sh
ltp/testcases/realtime/func/periodic_cpu_load/run_auto.sh
ltp/testcases/realtime/func/pi-tests/run_auto.sh
ltp/testcases/realtime/func/pi_perf/run_auto.sh
ltp/testcases/realtime/func/prio-preempt/run_auto.sh
ltp/testcases/realtime/func/prio-wake/run_auto.sh
ltp/testcases/realtime/func/pthread_kill_latency/run_auto.sh
ltp/testcases/realtime/func/sched_football/run_auto.sh
ltp/testcases/realtime/func/sched_jitter/run_auto.sh
ltp/testcases/realtime/func/sched_latency/run_auto.sh
ltp/testcases/realtime/func/thread_clock/run_auto.sh
ltp/testcases/realtime/scripts/run_c_files.sh
ltp/testcases/realtime/scripts/setenv.sh
Added Files:
ltp/testcases/realtime/doc/AUTOMATED_RUN
ltp/testcases/realtime/doc/run_auto.sh.tpl
ltp/testcases/realtime/profiles/default
ltp/testcases/realtime/testcases/realtime/doc/AUTOMATED_RUN


46) Log Message:
This patch fix a concurrency issue in msgctl06. The tmp directory the IPC key was build with was destroyed before we destroy the IPC ressource attached to the key. In case of concurency, the same inode id can be reused for another process tmp dir, leading to the generation of the same key. Regards Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl06.c

47) Log Message:
I got failures on ptrace03 because the latest kernel allows init process to be traced. The commit is:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=00cd5c37afd5f431ac186dd131705048c0a11fdb,
See the discussion in LKML: http://marc.info/?t=120628018600001.
So we should not execute this test case if the kernel version is above 2.6.25.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/ptrace/ptrace03.c

48) Log Message:
execve02 checks that execve() fails if the caller does not have executable permission on the file. However, in case the test fails and execve() succeeds, the default binary (test3) has return code 0, which is interpreted as test success. We get output like that: 
<output>
Hello World
</output>
with return code 0 (success)

instead of:

<output>
execve02    1  FAIL  :  Failures reported above
</output>
with return code matching FAIL.

This patch simply changes the success return code from 0 to 3, so that execve() success, and thus test failure, can be properly reported. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/execve/execve02.c

49) Log Message:
Profiled tests - cleanup. I forgot some useless code in the scripts. These patches do the cleanup. Signed-off-by: Gilles Carry <gilles.carry@bull.net>.

Modified File(s):
ltp/testcases/realtime/scripts/run_c_files.sh
ltp/testcases/realtime/func/sched_latency/run_auto.sh

50) Log message:
I got the following failure:
adjtimex02    4  FAIL  :  Test Failed, adjtimex()returned 5, errno = 0 : Success
adjtimex02    5  FAIL  :  Test Failed, adjtimex()returned 5, errno = 0 : Success
This is because the latest kernel normalizes buf.offset value if it is outside the acceptable range. The commit is: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=eea83d896e318bda54be2d2770d2c5d6668d11db. So we should not execute this test case if the kernel version is above 2.6.25. Here is the test result after patching (linux 2.6.26-rc2):
adjtimex02    4  CONF  :  this kernel normalizes buf.offset value if it is outside the acceptable range.
adjtimex02    5  CONF  :  this kernel normalizes buf.offset value if it is outside the acceptable range.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>

Modified File(s):
ltp/testcases/kernel/syscalls/adjtimex/adjtimex02.c

51) Log Message:
Manas K Nayak <maknayak@in.ibm.com> updated the fnctl lock tests from http://nfsv4.bullopensource.org/tools/tests/locktest.php. I have retained some info like the deploy_info, etc from the older release as well. The old tests were failing. After updates, the test passes.

Modified Files:
ltp/testcases/network/nfsv4/locks/Makefile
ltp/testcases/network/nfsv4/locks/locktests.c
Added Files:
ltp/testcases/network/nfsv4/locks/test
ltp/testcases/network/nfsv4/locks/deploy/locktests.tar.gz
Removed Files:
ltp/testcases/network/nfsv4/locks/locktests.h
ltp/testcases/network/nfsv4/locks/deploy/locktests-2.tar.gz

52) Log Message:
Restored back the Makefile content. Else, there will be build/clean/install failures. Subrata Modak <subrata@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/network/nfsv4/locks/Makefile

53) Log Message:
Adding this part of default LTP run. Subrata Modak <subrata@linux.vnet.ibm.com>.

Modified Files:
ltp/runltp

Added Files:
ltp/runtest/fcntl-locktests

54) Log Message:
This patch adds a list for all known issues which are probably subtle to be fixed in kernel to the test, so the test could continue. Also, it will print out those expected failures as INFO or WARN to the test result. Signed-off-by: Cai Qian <qcai@redhat.com>.

Modified File(s):
ltp/testcases/kernel/fs/proc/proc01.c

55) Log Message:
This patch fixes the output of the test, so all fatal errors to cause the final failure of the test will be printed out as FAIL instead of INFO, and all verbose and debug output will be moved to STDERR instead of STDOUT for easy output processing. Signed-off-by: Cai Qian <qcai@redhat.com>.

Modified File(s):
ltp/testcases/kernel/fs/proc/proc01.c

56) Log Message:
This patch adds the failcnt check test for memory controller. In this test a task runs in a group with some memory limit and does total memory allocation greater than the limit of the group. The script checks the failcnt from memory.failcnt file under the controller. It reports pass if failcnt increases otherwise reports fail. Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com>. Acked-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/controllers/test_controllers.sh
ltp/testcases/kernel/controllers/memctl/memctl_test01.c
ltp/testcases/kernel/controllers/memctl/run_memctl_test.sh

57) Log Message:
This patch adds the stat check test case for memory controller. In this test a task runs in a group with some memory limit and does some memory allocation. The script checks the memory usage field from two files under the controller, the memory.usage_in_bytes and memory.stat. It reports pass if the two values are same and fail if the two values differ. Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com>. Acked-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/controllers/test_controllers.sh
ltp/testcases/kernel/controllers/memctl/memctl_test01.c
ltp/testcases/kernel/controllers/memctl/run_memctl_test.sh

58) Log Message:
This patch adds the documentation for memory controller. Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/kernel/controllers/README
ltp/testcases/kernel/controllers/testplan.txt
Added Files:
ltp/testcases/kernel/controllers/memctl/README
ltp/testcases/kernel/controllers/memctl/memctl_testplan.txt

59) Log Message:
According to man sigpause :
 int sigpause(int sigmask);  /* BSD */
 int sigpause(int sig);      /* System V / Unix95 */
[...]
Linux Notes
       On Linux, this routine is a system call only on the Sparc (sparc64) architecture. Libc4 and libc5 only know about the BSD version. Glibc uses the BSD version if the _BSD_SOURCE feature test macro is defined and none of _POSIX_SOURCE, _POSIX_C_SOURCE, _XOPEN_SOURCE, _GNU_SOURCE,  or _SVID_SOURCE is defined.  The System V version is used if _XOPEN_SOURCE is defined. Since the _BSD_SOURCE_ is not defined for LTP testcases, rather they define _XOPEN_SOURCE_, the behaviour is System V, where they expect a signal number instead of signal mask. Signed-off-by: Suzuki KP <suzuki@in.ibm.com>.

Modified File(s):
ltp/testcases/kernel/ipc/ipc_stress/signal_test_01.c

60) Log Message:
Ankita Proposed that:
We have been seeing failures in the prio-wake testcase for a while now. Digged closer into the testcase to find if there was an error lurking in the testcase itself. Did hit a few, which this patch aims to fix. But the failures persist, indicating that something is amiss in the kernel. This patch does the following:
o Make the output of the test more readable. It is now time ordered.
o Bases the pass/fail not only on the order in which the waking up threads update the 'wakeup.arr' but also on the time they woke up. This reduced chances of error.
o Remove an extra lock and unlock on mutex when updating wakeup.arr.

Chirag Jog <chirag@linux.vnet.ibm.com> commented:
I am not convinced that adding a check for wake up time is going to reduce the chances for error. Whichever thread wakes up first, takes the lock,updates priority and time fields. Hence the time field will always be updated in wakeup order. So this is not really adding another useful check. I am ready to be conviced otherwise :)

Ankita Replied:
Yep I agree that now it would not make any difference. But before this patch, we were unlocking the mutex after only updating the running_threads and noting down the wakeup time and try and acquire the lock again to update the wakeup order in wakeup.arr So, there were chances the wakeup time did not match the order in which the wakeup.arr was updated. But yes, with the lock changes, this change would not be required. Shall send the patch again. Thanks for the review :-). So here is the updated patch which takes Chirag's comments into account.
Signed-off-by: Ankita Garg <ankita@in.ibm.com>
Signed-off-by: Chandan Kumar B V <cbhuvana@in.ibm.com>

Modified File(s):
ltp/testcases/realtime/func/prio-wake/prio-wake.c

61) Log Message:
This patch addresses the review comments for recently accepted memory controller testcases (failcnt test and stat_check test). Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/controllers/memctl/README

LTP-20080430

1) Log Message:
Addition of SPEC File for creation of LTP-DEVEL RPMs on various Architectures for Standalone development of LTP Unit Testcase. Contributed by George Kraft <gk4@us.ibm.com>

Modified File(s):
ltp/Makefile
ltp/lib/Makefile
ltp/pan/Makefile

Added File(s):
ltp/README.ltp-devel
ltp/ltp-devel.spec
ltp/doc/man1/Makefile
ltp/doc/man3/Makefile
ltp/include/Makefile
ltp/lib/ltp.pc

2) Log Message:
This patch should solve the problem of RT Linux Compilation Failure on various Architectures. It just avoids the compilation of realtime tests on a non (x86,ppc) arch. Assumption: uname -m doesn't contain 86/ppc on any arch except the x86 and ppc. Signed-Off-By: Chirag <chirag@linux.vnet.ibm.com>

Modified File(s):
ltp/testcases/Makefile

3) Log Message:
Previously I was under the impression that selinux test was not cleaning up properly. I don't believe that to be the case. I must have been mistaken. Here is a patch for the allow_domain_fd_use boolean issue in 5.2, by, Jeff Burke <jburke@redhat.com>

Modified File(s):
ltp/testscripts/test_selinux.sh

4) Log Message:
This patch, which is independent of Jeff's patch, updates the selinux testsuite to run under Fedora 9, and does no harm on Fedora 8. While creating this, I noticed two other things that ultimately need fixing: 
1) The sbin_deprecated.patch adds domain_dyntrans_type() to all the test domains.  If that was truly desired, we should just put it into unconfined_runs_test().  But it shouldn't be necessary - only the test_dyntrans.te and test_dyntrace.te domains should require permissions for dynamic transitions.  I'll let Serge confirm that. 
2) The test scripts are presently relabeling /tmp to test_file_t for the duration of the test.  That's insane - it could break any other running process that tries to access /tmp during the test.  That was not part of our original selinux testsuite and seems to have been introduced when IBM ported it to LTP.  If you are worried about lacking search permission to /tmp in the test domains, then create your own private /test directory or something.  Or just give all test domains permission to search tmp either via unconfined_runs_test() or in test_global.te using the testdomain attribute. Those don't need to be fixed though for this patch to be merged. Also, I noticed some new failures in the tests due to latest Fedora policies giving all domains search permission to all directories.  Not sure if that was intentional - sent a separate note to Dan about that.

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/misc/sbin_deprecated.patch
ltp/testcases/kernel/security/selinux-testsuite/tests/runtest.sh
ltp/testscripts/test_selinux.sh

5) Log Message:
Ok here is a first small patch to stop relabeling /tmp as Stephen suggested. It should be no more complicated to get rid of the unneeded dyntrans_types, but I messed up somewhere generating the patch and subsequent test bombed.  So I'll just do that next week or whenever this patch hits cvs (for simplicity). Subject: selinux testsuite: don't relabel /tmp. There's no need for the selinux testsuite to relabel /tmp for the duration of the test.  It uses /tmp/selinux anyway.  Just need to be sure to have search perms to tmp_t. Signed-off-by: Serge Hallyn <serue@us.ibm.com>

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/policy/test_global.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te
ltp/testscripts/test_selinux.sh

6) Log Message:
dont build things statically, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/syscalls/inotify/Makefile

7) Log Message:
anal fix: add whitespace between arguments, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/syscalls/fcntl/fcntl23.c
ltp/testcases/kernel/syscalls/fcntl/fcntl24.c
ltp/testcases/kernel/syscalls/fcntl/fcntl25.c
ltp/testcases/kernel/syscalls/fcntl/fcntl26.c
ltp/testcases/kernel/syscalls/fcntl/fcntl27.c
ltp/testcases/kernel/syscalls/fcntl/fcntl28.c

8) Log Message:
This patch remove the useless random function used in getipckey. This random value has been replaced by a static int incremented at each call. This allow to remove the ugly whiles around the getipckey calls when we need several keys, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

File(s) Updated:
ltp/testcases/kernel/syscalls/ipc/lib/libipc.c
ltp/testcases/kernel/syscalls/ipc/semop/semop02.c
ltp/testcases/kernel/syscalls/ipc/shmat/shmat02.c
ltp/testcases/kernel/syscalls/ipc/shmctl/shmctl02.c
ltp/testcases/kernel/syscalls/ipc/shmget/shmget02.c

9) Log Message:
This patch fixes a concurrency issue in msgget02. The second key used for this test was sometime conflicting with the key from another task due to a bad way of creating keys. This patch generate a valid second key through getipckey to avoid conflicts. Signed-off-by: Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/msgget/msgget02.c

10) Log Message:
These patch removes a IPC leak in case of test failure. When the msgget function succeed instead of returning  ENOSPC, the returned IPC was not released, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/msgget/msgget03.c

11) Log Message:
This patch fixes a concurrency issue un shmctl01. Synchronization between processes was done using sleeps, which is not enough when multiple instances of the test are running or when we are running on loaded CPUs, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/shmctl/Makefile
ltp/testcases/kernel/syscalls/ipc/shmctl/shmctl01.

12) Log Message:
Fix concurrency issue in msgctl04. The second key used for this test could conflict with the key from another task. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl04.c

13 Log Message:
Fix concurrency issue in msgctl06. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl06.c

14) Log Message:
This patch fix a concurrency issue in msgctl07, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl07.c

15) Log Message:
Fix concurrency issue. The second key used for this test could conflict with the key from another task. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr> 

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c

16) Log Message:
Fix concurrency issue in msgrcv05. Due to the use of usleep function to synchronize processes, synchronization issues can occur on a loaded system. Fix this by using pipes to synchronize processes. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgrcv/msgrcv05.c

17) Log Message:
Fix concurrency issue in msgrcv06. Due to the use of usleep function to synchronize processes, synchronization issues can occur on a loaded system. Fix this by using pipes to synchronize processes. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgrcv/Makefile
ltp/testcases/kernel/syscalls/ipc/msgrcv/msgrcv06.c

18) Log Message:
Fix concurrency issue in msgsnd05. Due to the use of usleep function to synchronize processes, synchronization issues can occur on a loaded system. Fix this by using pipes to synchronize processes. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgsnd/Makefile
ltp/testcases/kernel/syscalls/ipc/msgsnd/msgsnd05.c

19) Log Message:
Fix concurrency issue in msgsnd06. Due to the use of usleep function to synchronize processes, synchronization issues can occur on a loaded system. Fix this by using pipes to synchronize processes. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgsnd/msgsnd06.c

20) Log Message:
Fix concurrency issue in semget05. Create private semaphores to avoid conflict with concurrent processes. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/semget/semget05.c

21) Log Message:
Fix concurrency issue in semop05. Due to the use of usleep function to synchronize processes, synchronization issues can occur on a loaded system. Fix this by using pipes to synchronize processes. Signed-off-by: Matthieu Fertré <mfertre@irisa.fr>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/semop/Makefile
ltp/testcases/kernel/syscalls/ipc/semop/semop05.c

22) Log Message:
This patch reviews the networkstress.sh script and adds a menu to select the network stress tests. Hoping that could be useful, by, Giuseppe Cavallaro <peppe.cavallaro@gmail.com>

Modified File(s):
ltp/testscripts/networkstress.sh

23) Log Message:
Updated the test case as per the man page
***********
RETURN VALUE
       If  name  is  invalid, -1 is returned, and errno is set to EINVAL. Otherwise, the value returned is the value of the system resource and errno is not changed.  In the case of  options, a positive value is  returned  if  a queried option is available, and -1 if it is not.  In the case of limits, -1 means that  there is no definite limit
***********
Return value of sysconf needs to be checked as well and not only depend on errno value. Have made the changes by looking at the code from http://www.comptechdoc.org/os/linux/programming/c/linux_pgcpostest.html. Max Stirling <vicky.irobot@gmail.com>

Modified Files:
ltp/testcases/kernel/syscalls/sysconf/sysconf01.c

24) Log Message:
A patch to include all the headers for the ltp-devel package, by, George Kraft <gk4@austin.ibm.com>

Modified File(s):
ltp/ltp-devel.spec
ltp/include/Makefile

25) Log Message:
Fix from Vivi Li for stack overflows on no-mmu systems: declare large buffers in .bss rather than on the stack

Modified File(s):
ltp/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c

26) Log Message:
Here is the patch to remove the unneeded dyntrans lines.  Causes no new failures on my f8 test image.
Subject: selinux testsuite: don't give away dyntrans
domain_dyntrans_type() only needs to be used for domains actually needing to do dynamic transitions.  Don't grant it to most domains. Signed-off-by: Serge Hallyn <serue@us.ibm.com>

Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/misc/sbin_deprecated.patch

27) Log Message:
Making these tests run as default with LTP run, by, Subrata Modak <subrata@linux.vnet.ibm.com>

Modified File(s):
ltp/runtest/fs
ltp/runtest/ipc
ltp/runtest/mm
ltp/runtest/sched

28) Log Message:
split CFLAGS/CPPFLAGS properly and remove inappropriate flags, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/realtime/config.mk

29) Log Message:
dont stick ar flags into AR, and dont set AR/RANLIB by default, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/realtime/lib/Makefile

30) Log Message:
setup default RANLIB, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/Makefile

31) Log Message:
checks return values of asprintf calls else gcc-4.3.0 fails like following;
...
libstats.c:308: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result
libstats.c:312: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result
...
Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>
Acked-by: Chirag <chirag@linux.vnet.ibm.com>

Modified File(s):
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/lib/libstats.c

32) Log Message:
faccessat01 and fchmodat01 did not test the AT_FDCWD, following patch makes them test AT_FDCWD and pass. Signed-off-by: S.Çağlar Onur <caglar@pardus.org.tr>

Modified File(s):
ltp/testcases/kernel/syscalls/faccessat/faccessat01.c
ltp/testcases/kernel/syscalls/fchmodat/fchmodat01.c

33) Log Message:
According to Ulrich Drepper, times02 test is bogus (at least for archs which report return value and error in the same value) and times has no reserved error code. So following patch removes times02 from testsuite and moves times03 test to times02. For more information please see
http://sources.redhat.com/ml/libc-alpha/2008-04/msg00054.html and
http://sources.redhat.com/ml/libc-alpha/2008-04/msg00055.html.
Signed-off-by:
S.Çağlar Onur <caglar@pardus.org.tr>

Modified File(s):
ltp/doc/testcases/kernel.txt
ltp/runtest/ltplite
ltp/runtest/stress.part3
ltp/runtest/syscalls
Removed File(s):
ltp/testcases/kernel/syscalls/times/times02.c

34) Log Message:
This turned out to be a test case problem, where it fails to identify the correct backbone network interface to use for the test. But there is an option already provided for the interface to be specified while invoking the test. Here, eth1 is the backbone interface and hence if the test is invoked like 'IFNAME=eth1 ./tcpdump01' it will pass. But it relies on DNS lookup and requires the IP to be configured accordingly. Signed-off-by: Anoop Vijayan
<anoop.vijayan@in.ibm.com>

Modified File(s):
ltp/testcases/network/tcp_cmds/tcpdump/tcpdump01

35) Log Message:
Now that the realtime tests are part of the LTP, there is no need to have any longer specific compilation directives comments in the source files. And in most cases they are incorrect. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>. Cc: Darren Hart <dvhltc@us.ibm.com>

Modified Files:
ltp/testcases/realtime/func/async_handler/async_handler.c
ltp/testcases/realtime/func/async_handler/async_handler_jk.c
ltp/testcases/realtime/func/async_handler/async_handler_tsc.c
ltp/testcases/realtime/func/gtod_latency/gtod_infinite.c
ltp/testcases/realtime/func/gtod_latency/gtod_latency.c
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c
ltp/testcases/realtime/func/measurement/preempt_timing.c
ltp/testcases/realtime/func/measurement/rdtsc-latency.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/func/pi-tests/sbrk_mutex.c
ltp/testcases/realtime/func/pi-tests/test-skeleton.c
ltp/testcases/realtime/func/pi-tests/testpi-0.c
ltp/testcases/realtime/func/pi-tests/testpi-1.c
ltp/testcases/realtime/func/pi-tests/testpi-2.c
ltp/testcases/realtime/func/pi-tests/testpi-4.c
ltp/testcases/realtime/func/pi-tests/testpi-5.c
ltp/testcases/realtime/func/pi-tests/testpi-6.c
ltp/testcases/realtime/func/pi-tests/testpi-7.c
ltp/testcases/realtime/func/pi_perf/pi_perf.c
ltp/testcases/realtime/func/prio-preempt/prio-preempt.c
ltp/testcases/realtime/func/prio-wake/prio-wake.c
ltp/testcases/realtime/func/pthread_kill_latency/pthread_kill_latency.c
ltp/testcases/realtime/func/thread_clock/tc-2.c
ltp/testcases/realtime/include/libjvmsim.h
ltp/testcases/realtime/include/libstats.h
ltp/testcases/realtime/include/list.h
ltp/testcases/realtime/lib/libjvmsim.c
ltp/testcases/realtime/lib/libstats.c
ltp/testcases/realtime/perf/latency/pthread_cond_latency.c
ltp/testcases/realtime/perf/latency/pthread_cond_many.c
ltp/testcases/realtime/stress/pi-tests/lookup_pi_state.c
ltp/testcases/realtime/stress/pi-tests/testpi-3.c

36) Log Message:
pi_perf is not built by default, so add it to SUBDIRS in testcases/realtime/Makefile. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>

Modified Files:
ltp/testcases/realtime/func/Makefile

37) Log Message:
The rttest, stats and jvmsim library archives used by the realtime tests only contain a single object file each. Therefore we can skip the "ar" and "ranlib" steps and directly link with the objects. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/config.mk
ltp/testcases/realtime/lib/Makefile

38) Log Message:
periodic_cpu_load has a '-i iterations' command line argument without it being listed in the help. Add its description to the usage() function. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c

39) Log Message:
Some tests have a configurable number of iterations. However those same tests which do calculate quantiles need a number of iterations higher than 100. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>. Acked-by: Chirag <chirag@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/func/pi_perf/pi_perf.c

40) Log Message:
Remove the last 2 files missed in the migration, namely:
testcases/realtime/stress/pi-tests/GNUmakefile.am
testcases/realtime/stress/pi-tests/GNUmakefile.in
Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>

Removed Files:
ltp/testcases/realtime/stress/pi-tests/GNUmakefile.am
ltp/testcases/realtime/stress/pi-tests/GNUmakefile.in

41) Log Message:
In the expected scenario, it attempts to execve(2) a file which is being opened by another process for writing fails with ETXTBS. On a loaded system, however, the child which does execve might get access to the file before the other child which opens it and result in a unexpected opening fail. By Roy Lee <roylee17@gmail.com>

Modified Files:
ltp/testcases/kernel/syscalls/execve/Makefile
ltp/testcases/kernel/syscalls/execve/execve05.c

42) Log Message:
I think there is a problem with the previous patch. Since you call the wait_son_startup() function after the fork() and before the test on the PID variable, the father AND the son will wait on the pipe, leading to a dead-lock. I suggest to move the wait_son_startup() calls after the pid test. Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>. Cha
nges by Roy Lee <roylee17@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/execve/execve05.c

43) Log Message:
This patch fix a concurrency issue in execve02. In case of concurrent executions, all tasks was using the same file, changing its mode and leading to invalid mode for some of them. This patch creates a private tmp directory for each task, copies the test file in it and performs all the tests using this private file. Regards Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/execve/execve02.c

44) Log Message:
This patch fixes a concurrency issue in ftruncate04. In the expected scenario, child should hold the lock of the file before parent access it. On a loaded system, however, the parent might access the file before the child, hence resulting in a unexpected 'open fail'. By, Roy Lee <roylee17@gmail.com>.

Modified File(s):
ltp/testcases/kernel/syscalls/ftruncate/Makefile
ltp/testcases/kernel/syscalls/ftruncate/ftruncate04.c

45) Log Message:
The following patch and all others that were submitted in Feb, 2008 pertaining to "__NR_fadvise64" seem to break ARM builds of ltp as the arm does not have __NR_fadvise64 defined.  I suspect there should be
#ifndef __NR_fadvise64
#define __NR_fadvise64 0
in each of the files that the patches were added. By, Shane Volpe <shanevolpe@gmail.com>

Modified File(s):
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise04.c

46) Log Message:
The Linux port I run on LTP has a minimal set of system calls. It currently does not implement the sysfs system call so I'd like to disable the tests for this system call - at the moment they will fail to compile because __NR_sysfs is undefined. Is there an idiomatic way of doing this? I can either prevent the test compiling completely somehow in the Makefile (e.g. as modify_ldt does) or make the test compile but return BROK perhaps. Attached is a patch to implement a strategy like this one. By Will Newton <will.newton@gmail.com>

Modified File(s):
ltp/testcases/kernel/syscalls/sysfs/sysfs01.c
ltp/testcases/kernel/syscalls/sysfs/sysfs02.c
ltp/testcases/kernel/syscalls/sysfs/sysfs03.c
ltp/testcases/kernel/syscalls/sysfs/sysfs04.c
ltp/testcases/kernel/syscalls/sysfs/sysfs05.c
ltp/testcases/kernel/syscalls/sysfs/sysfs06.c

47) Log Message:
Executing f00f testcase in x86 Xeon machines, it failed returning SIGSEGV:
# ./f00f
f00f        0  INFO  :  Testing for proper f00f instruction handling.
Segmentation fault

Searching for this issue, I found an old thread in ltp-list discussing broken test-cases (http://sourceforge.net/mailarchive/message.php?msg_id=46E5998B.9070903%40redhat.com), where Jeff Burke raise this problem with f00f failing on systems that have the NX bit. But, according to the flags reported in /proc/cpuinfo, the machines where i'm running this testcase seems not to have this NX bit enabled. On /proc/cpuinfo, we also have this line "f00f_bug: no". Would it be useful to select if this testcase should be executed or not? These machines are running a kernel compiled with processor family "Pentium-Pro" (CONFIG_M686=y), which, in according to the kernel config help, "disables the init-time guard against the f00f bug found in earlier Pentiums". Here i have created a patch that seems to fix the testcase using an inline assembly. By, Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/misc/f00f/f00f.c

48) Log Message:
nptl01 looks to have an operator precedence bug in it that prevents the output being done at appropriate times. With this patch you should get 10 lines of output, one every 10000 loops, rather than 10 lines of output, one for each of the first 10 loops. By, Will Newton <will.newton@gmail.com>.

Modified File(s):
ltp/testcases/kernel/sched/nptl/nptl01.c

49) Log Message:
I believe we had written this test to debug the other test with a lower overhead clocksource.  Unfortunately, the tsc is x86 specific, isn't consistent across CPUs on certain systems, and can have it's frequency changed depending on by power states. For all those reasons this test can simply be removed from the LTP. Raied by Daniel Gollub <dgollub@suse.de>, endorsed by Sebastien Dugue <sebastien.dugue@bull.net>, seconded by Darren Hart <dvhltc@us.ibm.com>.

Removed File(s):
ltp/testcases/realtime/func/async_handler/run_auto.sh

50) Log Message:
This patch removes the dependency of existing tty* devices for this test to pass, and also ups the invalid file descriptor value from 400 to 1025 which is used to confirm the EBADF errno. By, Henry Yei <hyei@mvista.com>

Modified File(s):
ltp/testcases/kernel/syscalls/sockioctl/sockioctl01.c

51) Log Message:
Attached is a patch to ltp/lib/Makefile that fixes Solaris cross-building. For some reason the variable CC was overridden with gcc -Wall which caused it to use the system compiler. By Henry Yei <hyei@mvista.com>

Modified File(s):
ltp/lib/Makefile

52) Log Message:
overhaul script to make things much easier to manage by Garrett Cooper <yanegomi@gmail.com>

Modified File(s):
ltp/IDcheck.sh

53) Log Message:
simplify targets, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/fs/fs_perms/Makefile

54) Log Message:
cleanup code and add error checking, by, Mike Frysinger <vapier@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/fs/fs_perms/Makefile
ltp/testcases/kernel/fs/fs_perms/fs_perms.c

55) Log Message:
Attached is a patch to ltp/lib/Makefile that fixes Solaris cross-building. For some reason the variable CC was overridden with gcc -Wall which caused it to use the system compiler. Also fixes cross-building for the filecaps tests. By, Henry Yei <hyei@mvista.com>.

Modified File(s):
ltp/testcases/kernel/security/filecaps/Makefile
ltp/testcases/kernel/security/filecaps/checkforlibcap.sh

56) Log Message:
The float_bessel testcases, as a matter of fact, all float_* testcases seem to fail when multiple instances are run concurrently. The failures occur because file sizes don't match or because the number of bytes read don't match the file size. This can be attributed to the parallel instance reading a file before the write to it (by another instance) has completed. In such situations, either the file size has not been updated in the inode header or the file size has been updated but the file's write operation has not been updated completely. To fix this concurrency problem, my suggestion is to check for an existing instance and wait for it to finish before beginning the current instance. Any other concurrency resolution technique may complicate matters. A message to the console indicating such a decision might be added. By Sridhar Vinay <vinaysridhar@in.ibm.com> & Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>.

Modified File(s):
ltp/testcases/misc/math/float/main.c
ltp/testcases/misc/math/float/bessel/genbessel.c
ltp/testcases/misc/math/float/exp_log/genexp_log.c
ltp/testcases/misc/math/float/iperb/geniperb.c
ltp/testcases/misc/math/float/power/genpower.c
ltp/testcases/misc/math/float/trigo/gentrigo.c

57) Log Message:
Some Cleanups for CPU Controller Test Cases by Sudhir Kumar. Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com>, Acked-by: Dhaval Giani
<dhaval@linux.vnet.ibm.com>.

Modified File(s):
ltp/testcases/kernel/controllers/test_controllers.sh
ltp/testcases/kernel/controllers/testplan.txt
ltp/testcases/kernel/controllers/cpuctl/cpuctl_test01.c
ltp/testcases/kernel/controllers/cpuctl/cpuctl_test02.c
ltp/testcases/kernel/controllers/cpuctl/cpuctl_test03.c
ltp/testcases/kernel/controllers/cpuctl/cpuctl_test04.c
ltp/testcases/kernel/controllers/cpuctl/cpuctl_testplan.txt
ltp/testcases/kernel/controllers/cpuctl/parameters.sh
ltp/testcases/kernel/controllers/cpuctl/run_cpuctl_stress_test.sh
ltp/testcases/kernel/controllers/cpuctl/run_cpuctl_test.sh
ltp/testcases/kernel/controllers/libcontrollers/libcontrollers.c
ltp/testcases/kernel/controllers/libcontrollers/libcontrollers.h

58) Log Message:
Initial Set of MEMORY CONTROLLER Test Cases Added to LTP by Sudhir Kumar. Signed-off-by: Sudhir Kumar <skumar@linux.vnet.ibm.com>, Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>.

Modified Files:
ltp/testcases/kernel/controllers/Makefile
ltp/testcases/kernel/controllers/test_controllers.sh
Added Files:
ltp/testcases/kernel/controllers/memctl/Makefile
ltp/testcases/kernel/controllers/memctl/memctl_test01.c
ltp/testcases/kernel/controllers/memctl/myfunctions.sh
ltp/testcases/kernel/controllers/memctl/run_memctl_test.sh

LTP-20080331

1) Log Message:
Fix the following NFS warning:
ioctl01     0  WARN  :  tst_rmdir(): rmobj(/tmp/iocfNl8Bi) failed: remove(/tmp/iocfNl8Bi) failed; errno=39: Directory not empty,
by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/ioctl/ioctl01.c

2) Log Message:
Whitespaces cleanup and added -i argument for iterations, by, Gilles Carry <gilles.carry@bull.net>

Modified File(s):
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c

3) Log Message:
Test does:
..
pid1 = fork();
if (pid1 == 0) {
        /* child */
        kill(-pid1, SIGKILL);
...
which is wrong, since pid1 is zero.
By, Anton Gladkov <agladkov@parallels.com>

Modified File(s):
ltp/testcases/kernel/syscalls/kill/kill06.c

4) Log Message:
Provide it with CHILD_STACK_SIZE, by, Anton Gladkov <agladkov@parallels.com>

Modified File(s):
ltp/testcases/kernel/syscalls/clone/clone06.c

5) Log Message:
Fix 'reading beyond file size' testcase in diotest4. Something goes wrong if we are allowed to read, or, we are not allowed to read, but we've got unexpected errno, by, Anton Gladkov <agladkov@parallels.com>

Modified File(s):
ltp/testcases/kernel/io/direct_io/diotest4.c

6) Log Message:
Initial Set of TI-RPC test Cases addition to LTP, by, Aurélien Charbon <aurelien.charbon@ext.bull.net>

Modified File(s):
ltp/doc/testcases/network.txt ltp/runtest/rpc
ltp/runtest/stress.part3
ltp/testcases/kernel/include/linux_syscall_numbers.h
ltp/testcases/network/rpc/Makefile
ltp/testcases/network/rpc/README

Removed File(s):
ltp/testcases/network/rpc/rpc01/Makefile
ltp/testcases/network/rpc/rpc01/rpc01
ltp/testcases/network/rpc/rpc01/rpc1.c
ltp/testcases/network/rpc/rpc01/rpc_server.c
ltp/testcases/network/rpc/rpc01/datafiles/file.1
ltp/testcases/network/rpc/rpc01/datafiles/file.2
ltp/testcases/network/rpc/rpcinfo/Makefile
ltp/testcases/network/rpc/rpcinfo/rpcinfo01
ltp/testcases/network/rpc/rup/Makefile
ltp/testcases/network/rpc/rup/rup01
ltp/testcases/network/rpc/rusers/Makefile
ltp/testcases/network/rpc/rusers/rusers01

Added File(s):
ltp/testcases/network/rpc/basic_tests/Makefile
ltp/testcases/network/rpc/basic_tests/README
ltp/testcases/network/rpc/basic_tests/rpc01/Makefile
ltp/testcases/network/rpc/basic_tests/rpc01/rpc01
ltp/testcases/network/rpc/basic_tests/rpc01/rpc1.c
ltp/testcases/network/rpc/basic_tests/rpc01/rpc_server.c
ltp/testcases/network/rpc/basic_tests/rpc01/datafiles/file.1
ltp/testcases/network/rpc/basic_tests/rpc01/datafiles/file.2
ltp/testcases/network/rpc/basic_tests/rpcinfo/Makefile
ltp/testcases/network/rpc/basic_tests/rpcinfo/rpcinfo01
ltp/testcases/network/rpc/basic_tests/rup/Makefile
ltp/testcases/network/rpc/basic_tests/rup/rup01
ltp/testcases/network/rpc/basic_tests/rusers/Makefile
ltp/testcases/network/rpc/basic_tests/rusers/rusers01
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/Makefile
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/Makefile.clnt
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/Makefile.svc
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/README
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.auto
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.interactive
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/configure~
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/install
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/install.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_addrmanagmt_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_addrmanagmt_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_addrmanagmt_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_auth_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_broadc_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_broadc_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_broadc_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_broadc_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_broadc_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_broadc_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_createdestroy_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_createdestroy_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_createdestroy_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_createdestroy_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_createdestroy_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_err_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_regunreg_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_stdcall_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_stdcall_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_stdcall_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_stdcall_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_stdcall_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_stdcall_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_tirpc_ts_run.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_run.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_wizard.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_tests.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_addrmanagmt_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_addrmanagmt_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_auth_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_mt_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_bottomlevel_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_err_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_err_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_mt_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_expertlevel_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_mt_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_interlevel_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_mt_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_simple_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_basic_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_complex_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_dataint_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_limits_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_mt_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_performance_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_scalability_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tirpc_toplevel_stress_lib.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/Makefile.hdr
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/categories
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/install.ftr
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/install.hdr
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.ftr
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.hdr
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_get_myaddress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getmaps.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getport.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_set.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_unset.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_auth_destroy.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authnone_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create_default.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_pcreateerror.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perrno.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perror.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_spcreateerror.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperrno.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperror.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_auth.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noproc.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noprog.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_progvers.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_systemerr.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_weakauth.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_registerrpc.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_register.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_unregister.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_register.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_unregister.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_freeres.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_geterr.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_freeargs.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getcaller.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_sendreply.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getmaps.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_seccreate.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authnone_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create_default.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_pcreateerror.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noproc.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noprog.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_progvers.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_systemerr.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_weakauth.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_set.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_unset.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_svc_tp_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.basic.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.basic.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.complex.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.dataint.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.mt.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.performance.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.scalability.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.stress.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.limits.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_destroy.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_create.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_destroy.sh
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/cleaner.c.src
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_get_myaddress/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_get_myaddress/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_getmaps/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_getmaps/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_getport/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_getport/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_set/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_set/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_unset/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_addrmanagmt_pmap_unset/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_auth_destroy/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_auth_destroy/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_authnone_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_authnone_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create_default/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_auth_authunix_create_default/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_broadc_clnt_broadcast/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnt_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnt_create/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnt_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnt_destroy/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnt_destroy/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnt_destroy/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntraw_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntraw_create/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntraw_create/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntraw_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clnttcp_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_clntudp_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svc_destroy/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svc_destroy/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svc_destroy/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcfd_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcfd_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcfd_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcraw_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcraw_create/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcraw_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svctcp_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svctcp_create/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svctcp_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svctcp_create/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svctcp_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_bufcreate/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_bufcreate/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_bufcreate/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_create/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_create/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_createdestroy_svcudp_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_pcreateerror/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_pcreateerror/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_perrno/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_perrno/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_perror/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_perror/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_spcreateerror/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_spcreateerror/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_sperrno/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_sperrno/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_sperror/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_clnt_sperror/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_auth/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_auth/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_noproc/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_noproc/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_noprog/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_noprog/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_progvers/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_progvers/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_systemerr/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_systemerr/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_weakauth/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_err_svcerr_weakauth/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_registerrpc/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_registerrpc/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_svc_register/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_svc_register/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_svc_unregister/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_svc_unregister/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_xprt_register/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_xprt_register/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_xprt_unregister/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_regunreg_xprt_unregister/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_callrpc/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_callrpc/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_callrpc/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_callrpc/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_callrpc/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_callrpc/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_call/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_control/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_control/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_control/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_freeres/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_freeres/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_geterr/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_clnt_geterr/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_freeargs/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_freeargs/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_freeargs/svc.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_getargs/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_getargs/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_getargs/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_getargs/client.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_getcaller/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_getcaller/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_sendreply/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_sendreply/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/rpc/rpc_stdcall_svc_sendreply/client.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getaddr/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getaddr/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getaddr/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getmaps/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getmaps/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authdes_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authdes_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authdes_seccreate/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authdes_seccreate/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authnone_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authnone_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authsys_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authsys_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authsys_create_default/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_auth_authsys_create_default/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_pcreateerror/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_pcreateerror/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_perrno/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_perrno/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_perrno/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_perror/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_perror/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_clnt_perror/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_noproc/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_noproc/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_noprog/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_noprog/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_progvers/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_progvers/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_systemerr/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_systemerr/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_weakauth/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_err_svcerr_weakauth/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_call/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_tli_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_tli_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_clnt_tli_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_set/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_set/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_unset/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_rpcb_unset/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_reg/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_reg/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_reg/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_reg/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_tli_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_tli_create/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_tli_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_unreg/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_unreg/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_unreg/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_expertlevel_svc_unreg/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_call/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_control/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_control/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_control/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create_timed/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create_timed/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create_timed/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_svc_tp_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_interlevel_svc_tp_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_call/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_reg/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_reg/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_reg/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_simple_rpc_reg/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/2-stress.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/4-mt.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/5-scalability.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/6-dataint.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/7-performance.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/8-complex.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_call/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_create_timed/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_create_timed/3-limits.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_create_timed/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_destroy/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_clnt_destroy/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_svc_create/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_svc_create/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_svc_destroy/1-basic.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_suite/tirpc/tirpc_toplevel_svc_destroy/assertions.xml
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_svc_1/rpc_svc_1.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/rpc_svc_2/rpc_svc_2.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_1/tirpc_svc_1.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_11/tirpc_svc_11.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_2/tirpc_svc_2.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_3/tirpc_svc_3.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_4/tirpc_svc_4.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_5/tirpc_svc_5.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_6/tirpc_svc_6.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_7/tirpc_svc_7.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_8/tirpc_svc_8.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_9/tirpc_svc_9.c
ltp/testcases/network/rpc/rpc-tirpc-full-test-suite/tsLogParser/rpc_ts.mod.php

7) Log Message:
The idea of the patch is "to make things that should be extern, extern". The means to do this are: 
1. Explicitly declaring variables extern in some places.
2. Defining _USC_LIB_ where appropriate.

My understanding of _USC_LIB_ define is that it exists so the usctest.h header can be included in a lib or non-test source file where you want to use extern declarations of TEST_RETURN, TEST_ERRNO etc. to avoid having a copy of the variable in your library and a copy of the variable in your test. I've added -D_USC_LIB_ to the CFLAGS of library code where necessary, by, Will Newton <will.newton@gmail.com>

Modified File(s):
ltp/testcases/kernel/mem/hugetlb/lib/Makefile
ltp/testcases/kernel/syscalls/ipc/lib/Makefile
ltp/testcases/kernel/syscalls/ipc/lib/ipcmsg.h
ltp/testcases/kernel/syscalls/ipc/lib/ipcsem.h
ltp/testcases/kernel/syscalls/kill/kill05.c
ltp/testcases/kernel/syscalls/kill/kill07.c
ltp/testcases/kernel/syscalls/lib/Makefile
ltp/testcases/kernel/syscalls/nftw/lib.c
ltp/testcases/network/sctp/testlib/Makefile

8) Log Message:
Add 2 scripts for detecting features used by some tests, namely:
- support for pthread_mutexattr_setprotocol(..., PTHREAD_PRIO_INHERIT)
- support for pthread_mutexattr_setrobust_np()
Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>

Added Files:
ltp/testcases/realtime/scripts/check_pi.sh
ltp/testcases/realtime/scripts/check_robust.sh

9) Log Message:
Add Makefiles to all the realtime testcases without any autotools dependencies. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>

Added Files:
ltp/testcases/realtime/Makefile
ltp/testcases/realtime/config.mk
ltp/testcases/realtime/func/Makefile
ltp/testcases/realtime/func/async_handler/Makefile
ltp/testcases/realtime/func/gtod_latency/Makefile
ltp/testcases/realtime/func/hrtimer-prio/Makefile
ltp/testcases/realtime/func/matrix_mult/Makefile
ltp/testcases/realtime/func/measurement/Makefile
ltp/testcases/realtime/func/periodic_cpu_load/Makefile
ltp/testcases/realtime/func/pi-tests/Makefile
ltp/testcases/realtime/func/pi_perf/Makefile
ltp/testcases/realtime/func/prio-preempt/Makefile
ltp/testcases/realtime/func/prio-wake/Makefile
ltp/testcases/realtime/func/pthread_kill_latency/Makefile
ltp/testcases/realtime/func/sched_football/Makefile
ltp/testcases/realtime/func/sched_jitter/Makefile
ltp/testcases/realtime/func/sched_latency/Makefile
ltp/testcases/realtime/func/thread_clock/Makefile
ltp/testcases/realtime/lib/Makefile
ltp/testcases/realtime/perf/Makefile
ltp/testcases/realtime/perf/latency/Makefile
ltp/testcases/realtime/stress/Makefile
ltp/testcases/realtime/stress/pi-tests/Makefile

10) Log Message:
Remove autotools stuff:
- autogen.sh
- configure.ac
- configure
- aclocal.m4
- config/*
- all the GNUmakefile.am
- all the GNUmakefile.in

Also adapt testscripts/test_realtime.sh to the new build system. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>

Modified Files:
ltp/testscripts/test_realtime.sh
Removed Files:
ltp/testcases/realtime/GNUmakefile.am
ltp/testcases/realtime/GNUmakefile.in
ltp/testcases/realtime/aclocal.m4
ltp/testcases/realtime/autogen.sh
ltp/testcases/realtime/configure
ltp/testcases/realtime/configure.ac
ltp/testcases/realtime/config/GNUmakefile.am
ltp/testcases/realtime/config/GNUmakefile.in
ltp/testcases/realtime/config/autoconf/compile
ltp/testcases/realtime/config/autoconf/config.guess
ltp/testcases/realtime/config/autoconf/config.sub
ltp/testcases/realtime/config/autoconf/depcomp
ltp/testcases/realtime/config/autoconf/install-sh
ltp/testcases/realtime/config/autoconf/missing
ltp/testcases/realtime/func/GNUmakefile.am
ltp/testcases/realtime/func/GNUmakefile.in
ltp/testcases/realtime/func/async_handler/GNUmakefile.am
ltp/testcases/realtime/func/async_handler/GNUmakefile.in
ltp/testcases/realtime/func/gtod_latency/GNUmakefile.am
ltp/testcases/realtime/func/gtod_latency/GNUmakefile.in
ltp/testcases/realtime/func/hrtimer-prio/GNUmakefile.am
ltp/testcases/realtime/func/hrtimer-prio/GNUmakefile.in
ltp/testcases/realtime/func/matrix_mult/GNUmakefile.am
ltp/testcases/realtime/func/matrix_mult/GNUmakefile.in
ltp/testcases/realtime/func/measurement/GNUmakefile.am
ltp/testcases/realtime/func/measurement/GNUmakefile.in
ltp/testcases/realtime/func/periodic_cpu_load/GNUmakefile.am
ltp/testcases/realtime/func/periodic_cpu_load/GNUmakefile.in
ltp/testcases/realtime/func/pi-tests/GNUmakefile.am
ltp/testcases/realtime/func/pi-tests/GNUmakefile.in
ltp/testcases/realtime/func/pi_perf/GNUmakefile.am
ltp/testcases/realtime/func/pi_perf/GNUmakefile.in
ltp/testcases/realtime/func/prio-preempt/GNUmakefile.am
ltp/testcases/realtime/func/prio-preempt/GNUmakefile.in
ltp/testcases/realtime/func/prio-wake/GNUmakefile.am
ltp/testcases/realtime/func/prio-wake/GNUmakefile.in
ltp/testcases/realtime/func/pthread_kill_latency/GNUmakefile.am
ltp/testcases/realtime/func/pthread_kill_latency/GNUmakefile.in
ltp/testcases/realtime/func/sched_football/GNUmakefile.am
ltp/testcases/realtime/func/sched_football/GNUmakefile.in
ltp/testcases/realtime/func/sched_jitter/GNUmakefile.am
ltp/testcases/realtime/func/sched_jitter/GNUmakefile.in
ltp/testcases/realtime/func/sched_latency/GNUmakefile.am
ltp/testcases/realtime/func/sched_latency/GNUmakefile.in
ltp/testcases/realtime/func/thread_clock/GNUmakefile.am
ltp/testcases/realtime/func/thread_clock/GNUmakefile.in
ltp/testcases/realtime/include/GNUmakefile.am
ltp/testcases/realtime/include/GNUmakefile.in
ltp/testcases/realtime/lib/GNUmakefile.am
ltp/testcases/realtime/lib/GNUmakefile.in
ltp/testcases/realtime/perf/GNUmakefile.am
ltp/testcases/realtime/perf/GNUmakefile.in
ltp/testcases/realtime/perf/latency/GNUmakefile.am
ltp/testcases/realtime/perf/latency/GNUmakefile.in
ltp/testcases/realtime/stress/GNUmakefile.am
ltp/testcases/realtime/stress/GNUmakefile.in

11) Log Message:
Forgot to remove include/rttests_config.h.in in the previous patch. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>

Removed Files:
ltp/testcases/realtime/include/rttests_config.h.in

12) Log Message:
Fix by Michael Olbrich <m.olbrich@pengutronix.de>, as, Sebastien´s Patch [[PATCH 3/3] [Realtime] Remove autotools specific stuff] applied on 24/03/2008 breaks this script.

Modified File(s):
ltp/testcases/realtime/run.sh

13) Log Message:
Usually the cross compiler is set from the toplevel directory by setting the CROSS_COMPILER variable. This makefile tries to overwrite it, but wrong. It is also possible to push in CFLAGS from the toplevel by using CROSS_CFLAGS. We should use these here as well. Finally, LDFLAGS are set here but not used by the makefiles. Moving the posix libs to LDLIBS makes it build. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>

Modified File(s):
ltp/testcases/realtime/config.mk

14) Log Message:
This patch updates the matrix_mult testcase to closely follow the JVM in the concurrent case. So in the concurrent case we have 'numcpus-1' concurrent threads that are handed out work by the main thread and once we run out of concurrent threads, the main thread does the work itself. Signed-off-by: Dinakar Guniguntala <dino@in.ibm.com>

Modified File(s):
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c

15) Log Message:
mmap1.c:524: warning: format '%ld' expects type 'long int', but argument 3 has type 'double'
which actually prints as:
WARNING: bad argument. Using default 1125899906842624

Fix disktest printf format warnings (on Linux; no idea about Windows):
childmain.c:443: warning: format '%d' expects type 'int', but argument 4 has type 'size_t'
childmain.c:443: warning: format '%X' expects type 'unsigned int', but argument 5 has type 'size_t'
childmain.c:445: warning: format '%d' expects type 'int', but argument 6 has type 'size_t'
childmain.c:448: warning: format '%d' expects type 'int', but argument 6 has type 'size_t'
childmain.c:451: warning: format '%d' expects type 'int', but argument 6 has type 'size_t'
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

Modified File(s):
ltp/testcases/kernel/io/disktest/childmain.h
ltp/testcases/kernel/mem/mtest06/mmap1.c

16) Log Message:
All the syslog test cases in ltp-full-20080131 are failing for RHEL4U5 on x3850 M2 architecture. The syslogtst is failing because when only 1 argument is passed to syslogtst the condition in the test case fails to deal with it. I have tested the failed tests cases after applying the patch on the same architecture(x3850M2) and found its passing. Signed-off-by : Vinay Sridhar <vinaysridhar@in.ibm.com>

Modified File(s):
ltp/testcases/kernel/syscalls/syslog/syslogtst.c

17) Log Message:
The filename arguments in some output messages are wrong. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>

Modified File(s):
ltp/testcases/kernel/syscalls/inotify/inotify02.c

18) Log Message:
Fixes a minor issue with pi_perf testcase (testcases/realtime/func/). The wait_dat is intended to measure the amount of time it took for the high priority thread to actually obtain the lock from the time it was released by the low priority thread. The patch fixes this computation to measure it more accurately. The PASS/FAIL computation is unaffected. Signed-off-by: Ankita Garg <ankita@in.ibm.com>, Acked-by: Sripathi Kodi <sripathik@in.ibm.com>

Modified File(s):
ltp/testcases/realtime/func/pi_perf/pi_perf.c

19) Log Message:
The vmsplice01 testcase in LTP failed when run over machines with NFS mount. However after I examined the test case I found that the testcase performs vmsplice() and splice() system calls and it was only splice() that caused the failure. After discussing with Subrata, we had decided that the fact that vmsplice() succeeds must be displayed before checking if the testcase is running over NFS and exiting. Hence I have prepared a patch with the above details taken care of. Signed-off-by : Vinay Sridhar <vinaysridhar@in.ibm.com>

Modified File(s):
ltp/testcases/kernel/syscalls/vmsplice/vmsplice01.c

20) Log Message:
faccessat01 and fchmodat01 did not test the AT_FDCWD tests, but assigned fds[5]. I made them work, patch attached. btw, readlinkat01 is also buggy, but I have not yet come around to fixing it. By, Marcus Meissner <marcusmeissner@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/syscalls/faccessat/faccessat01.c
ltp/testcases/kernel/syscalls/fchmodat/fchmodat01.c

21) Log Messsage:
Some newer glibcs do not like sprintf() printing a string into itself and loop. By, Marcus Meissner <marcusmeissner@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/syscalls/nftw/lib.c
ltp/testcases/kernel/syscalls/nftw/lib64.c

22) Log Message:
some more "variable is used uninitialized" warnings fixed with this patch, by, Marcus Meissner <marcusmeissner@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/fs/doio/doio.c
ltp/testcases/kernel/syscalls/sysctl/sysctl05.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/4-1.c

23) Log Message:
This patch fixes some compiler warnings spit out by newer GCCs and fortify source (mostly some initialisations and return value checking), by, Marcus Meissner <marcusmeissner@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/fs/doio/doio.c
ltp/testcases/kernel/fs/doio/iogen.c

24) Log Message:
Various waitpid tests print the PID of the wrong array. fork_kid_pid[j] is accessed just past the end of the fork_kid_pid array, so it is better to use wait_kid_pid[i] instead, by, Marcus Meissner <marcusmeissner@users.sourceforge.net>

Modified File(s):
ltp/testcases/kernel/syscalls/waitpid/waitpid06.c
ltp/testcases/kernel/syscalls/waitpid/waitpid07.c
ltp/testcases/kernel/syscalls/waitpid/waitpid08.c
ltp/testcases/kernel/syscalls/waitpid/waitpid11.c
ltp/testcases/kernel/syscalls/waitpid/waitpid12.c
ltp/testcases/kernel/syscalls/waitpid/waitpid13.c

25) Log Message:
When I was compiling ltp-full-20080229/kernel/module/, error occured. The error like this: ...
scripts/Makefile.build:46: *** CFLAGS was changed in"ltp-full-20080229/testcases/kernel/module/delete_module/Makefile".Fix it to use EXTRA_CFLAGS. Stop.
The reason is: When we build an External module, we should use EXTRA_CFLAGS, not CFLAGS. In detail please refer to Documentation/kbuild/modules.txt. In addition,there are some trashy "include" such as:
"#include <asm/atomic.h>" in delete_module01.c
"#include <linux/config.h>" in dummy_del_mod.c
The following patch solves these problems:
Signed-off-by: Wang Fang <wangf@cn.fujitsu.com>

Modified File(s):
ltp/testcases/kernel/module/delete_module/Makefile
ltp/testcases/kernel/module/delete_module/delete_module01.c
ltp/testcases/kernel/module/delete_module/delete_module02.c
ltp/testcases/kernel/module/delete_module/delete_module03.c
ltp/testcases/kernel/module/delete_module/dummy_del_mod.c
ltp/testcases/kernel/module/delete_module/dummy_del_mod_dep.c

26) Log Message:
The ltp-full-20080229/testcases/kernel/module/delete_module/Makefile will do this:
   @set -e; for i in $(MODULES); do ln -f $$i /tmp/$$i ; done
If the ltp directory and /tmp are not in the same device, an error occurs:
   ln: creating hard link `/tmp/xxx' => `xxx': Invalid cross-device link I suffer from this.
The patch as follows:
Signed-off-by: Wang Fang <wangf@cn.fujitsu.com>

Modified File(s):
ltp/testcases/kernel/module/delete_module/Makefile

27) Log Message:
The memsize is specified by the user in Mb, but it is converted to Kb in the script, so we should convert it to Mb in the output. The following patch solves this problem: igned-off-by: Wang Fang <wangf@cn.fujitsu.com>

Modified File(s):
ltp/testscripts/ltpstress.sh

28) Log Message:
The 9th testcase of inotify02 failed due to event coalescence. We fix this by moving the IN_DELETE test in between of the 2 IN_MOVE_SELF events. Also add the test for event coalescence. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>

File(s) Modified:
ltp/testcases/kernel/syscalls/inotify/README
ltp/testcases/kernel/syscalls/inotify/inotify02.c

29) Log Message:
I ran the latest LTP(ltp-20080131) on SLES10SP1 and found a failure on the syslog testcases because of getting SIGSEGV at line 79 of testcases/kernel/syscalls/syslog/syslogtst.c.  it is caused by accessing to the second argument when only one argument is provided for syslogtst, by, jburke@redhat.com & a-tsuji@bk.jp.nec.com

Modified File(s):
ltp/testcases/kernel/syscalls/syslog/syslogtst.c

30) Log Message:
A few POSIX fixes from Dustin Kirkland in [1908313]

Modified File(s):
ltp/IDcheck.sh
ltp/runltp
ltp/runltplite.sh

31) Log Message:
cleanup build system a bit

Removed File(s):
gotlibcap.c nolibcap.c

32) Log Message:
When CREATE is not set there is no default, so it is possible to run into the test(1) statement in line 116 with an undefined CREATE, which lets test break. Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>

Modified File(s):
ltp/IDcheck.sh 

33) Log Message:
Update file capabilities tests to work on 64-bit kernels.  It switches from manually setting file xattrs to making use of libcap, by,  Serge E. Hallyn <serue@us.ibm.com>

Modified Files:
ltp/testcases/kernel/security/filecaps/Makefile
ltp/testcases/kernel/security/filecaps/verify_caps_exec.c
Added Files:
ltp/testcases/kernel/security/filecaps/makenumcapsh.c

34) Log Message:
1. Minor fixes:
        Added -i to have the number of iterations configurable. However, this number cannot be less than 100 else a calloc fails in init_stat* function, causing sigsegv afterward. The patch also adds the return code checking for these init_stat functions. Added -m args is to have the PASS/FAIL criteria configurable. 
2. Bug fix: disk write access deadlock
        High prio busy thread hogged cpus forbidding kjournald and pdflush daemons to release filesystem locks. This caused timer_thread to hang waiting for the lock.
Signed-off-by: Gilles Carry <gilles.carry@bull.net>

Modified Files:
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
ltp/testcases/realtime/func/thread_clock/tc-2.c

35) Log Message:
1. Whitespaces cleanup
2. Error checks when initializing stat containers
Signed-off-by: Gilles Carry <gilles.carry@bull.net>

Modified Files:
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c

36) Log Message:
In a lot of cases, we do not really care about the samples and histogram files and their associated gnuplot command files or do not want to save them for example on embedded platforms with limited or no storage. This patch disables generating those files by default and introduce a new parameter to the tests, namely '-s', for when we really want to. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>

Modified Files:
ltp/testcases/realtime/include/libstats.h
ltp/testcases/realtime/lib/librttest.c
ltp/testcases/realtime/lib/libstats.c

37) Log Message:
1) This patch fixes a concurrency issue in shmctl02. Same issue as in shmat02,
2) Fix return value check from shmat. In case of error, this wrong check was leading to a seg-fault. Same problem as in kill05,
3) Fixes a concurrency issue in shmget02. Same issue as in shmat02 : second key can conflict with the key from another process, 
4) Fix a NFS warning when running rename14 concurrently. In this case, due to the large number of running processes and scheduler decisions, the father task can exit before its sons. Thus, leading to the removal of a file still opened by a son... NFS don't like that, 
Signed-off-by: Renaud Loittiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/shmctl/shmctl02.c
ltp/testcases/kernel/syscalls/ipc/shmdt/shmdt01.c
ltp/testcases/kernel/syscalls/ipc/shmget/shmget02.c
ltp/testcases/kernel/syscalls/rename/rename14.c

38) Log Message:
Fixing a concurrency issue in semctl07.c. This test was using a key hard coded in the source code, leading to conflicts with other instances of the same test. This patch also add a cleanup of the semid in case of failure during the test, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com> 

Modified Files:
ltp/testcases/kernel/syscalls/ipc/semctl/semctl07.c


39) Log Message:
Fixing a concurrency issue in semop02.c. The now, well known issue due to a second key badly created, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/semop/semop02.c

40) Log Message:
Fixes a concurrency issue in semctl01. This test was using usleep to synchronize tasks. On a heavily loaded system, this synchronization is not enough to ensure execution correctness. This patch is a bit more intrusive than my previous ones.
Patch content :
* Define 2 new functions in kernel/syscalls/lib/libtestsuite.c, used to
* synchronize a father and a son using pipes.
    - create_sync_pipes: create a pair of pipes used for the synchronization,
    - wait_son_startup: function used in the father to wait for its son to start ts execution,
    - notify_startup: function used in the son to notify it has started its execution,
* Add a kernel/syscalls/lib/libtestsuite.h file to cleanly export newly
* defines functions,
* Fix the semctl01test. The idea used to synchronize : 
   - For each task created, the father waits for the son to start its execution using the newly define functions,
   - After the last son has been created, the father do a sleep(1) to give time to the sons to execute the semop function,
The final sleep does not guaranty the sons will have time to do the semop. On a REALLY heavily loaded system, this will still fail... The only solution I see to be sure the son is really blocked on the semop before the father continue its execution it to use the wchan info from /proc/<pid>/wchan file..., by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/semctl/Makefile
ltp/testcases/kernel/syscalls/ipc/semctl/semctl01.c
ltp/testcases/kernel/syscalls/lib/libtestsuite.c

41) Log Message:
Fixing some NFS issue(s),  by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/fchownat/fchownat01.c

42) Log Message:
Fix directory remove issue on NFS. On NFS unlinking AND closing all files in a directory is mandaroty before unlinking this directory. This also fix a write in a invalid array entry. fds[5] does not exist since we only defines 5 tests., by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/fchmodat/fchmodat01.c

Added Files:
ltp/testcases/kernel/syscalls/lib/libtestsuite.h

43) Log Message:
Fix directory remove issue on NFS. On NFS unlinking AND closing all files in a directory is mandaroty before unlinking this directory. This also fix a write in a invalid array entry. fds[5] does not exist since we only defines 5 tests., by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified Files:
ltp/testcases/kernel/syscalls/faccessat/faccessat01.c

44) Log Message:
LTP is failing to compile with GCC 3.3.3 due to Makefile's inconsistency. SLES9.X distros are affected by this problem.  This patch fixes how /lib/ipcmsg.h header file is referenced. It works fine with GCC 3.4.X, however, compiling headers doesn't make any sense to me. Signed-off-by: Rafael Folco <rfolco@linux.vnet.ibm.com>

Modified Files:
ltp/testcases/kernel/syscalls/ipc/msgctl/Makefile
ltp/testcases/kernel/syscalls/ipc/msgget/Makefile

45) Log Message:
Fixes the hardcoded file descriptor in the second testcase within dup203.c. Instead of assuming file descriptor 10 is closed, the fix explicitly opens and closes a file descriptor before using it as the second argument of dup2(). We saw issues on some environments where dup2(10,10) was being called, which this fixes, by, Henry Wei <hyei@mvista.com>

Modified Files:
ltp/testcases/kernel/syscalls/dup2/dup203.c

46) Log Message:
We have seen that prio_preempt testcase that is part of realtime tests occasionally hangs. This can be easily recreated on a 8-cpu system, but can be recreated on a 4-cpu system as well when run for a number of iterations. The problem occurs because the first worker thread sometimes fails to call cond_wait on the condvar through which the master thread signals it to start. Since the first thread needs to start the chain of signalling from then on, all other threads just sit in a cond_wait without ever being woken up. The fix is to have a barrier to ensure that the first worker thread doesn't miss the cond_signal. I have tested this patch by running 10s of thousands of iterations of the testcase. Without the patch I can recreate the problem fairly easily, by, Sripathi Kodi <sripathik@in.ibm.com>

Modified Files:
ltp/testcases/realtime/func/prio-preempt/prio-preempt.c

47) Log Message:
Fixing Build Failures on Fedora Machine, by, psuriset@linux.vnet.ibm.com

Modified Files:
ltp/testcases/kernel/numa/test.sh

LTP-20080229

1)  Log Message: lcov: adding support for gzipped html based on patch by dnozay@vmware.com
File(s) Modified:
ltp/utils/analysis/lcov/lcovrc
ltp/utils/analysis/lcov/man/genhtml.1
ltp/utils/analysis/lcov/man/lcovrc.5
ltp/utils/analysis/lcov/bin/genhtml

2) Log Message: Fix for Don´t call Domain type on test create, by, "Serge E. Hallyn" <serue@us.ibm.com>
File(s) Modified:
ltp/testcases/kernel/security/selinux-testsuite/misc/sbin_deprecated.patch
ltp/testscripts/test_selinux.sh

3) Log Message: Some code cleanup in PID & SYSVIPC namespace testcases, by, "Rishikesh K. Rajak" <risrajak@linux.vnet.ibm.com>
Modified File(s):
ltp/testcases/kernel/containers/pidns/pidns01.c
ltp/testcases/kernel/containers/pidns/pidns02.c
ltp/testcases/kernel/containers/pidns/pidns03.c
ltp/testcases/kernel/containers/sysvipc/shmnstest.c

4) Log Message: Some Cleanups and running hugetlb independantly
Modified File(s):
ltp/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
ltp/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
Added File(s):
ltp/runtest/hugetlb

5) Log Message: Give Execute Permission to numa01.sh, by, Pradeep K Surisetty <pradeepkumars@in.ibm.com>
Modified File(s):
ltp/testcases/kernel/numa/Makefile

6) Log Message: Let tests send sigchld to unconfined_t.  Without this, the selinux testsuite on Fedora 8 hangs at selinux_task_create.sh, by, "Serge E. Hallyn" <serue@us.ibm.com>
Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/misc/sbin_deprecated.patch

7) Log Message: str_echo function expects a file descriptor & not an address, by, Craig Meier <crmeier@ghs.com>
Modified File(s):
ltp/testcases/kernel/sched/clisrv/pthserv.c

8) Log Message: Build Error Fix by checking for installation of setcap or xattr headers, by, "Serge E. Hallyn" <serue@us.ibm.com>
Modified File(s):
ltp/testcases/kernel/security/filecaps/Makefile
ltp/testcases/kernel/security/filecaps/checkforlibcap.sh
Added Files:
ltp/testcases/kernel/security/filecaps/check_xattr.c

9) Log Message: mark test_exit as noreturn #1891129 by Marcus Meissner, by, Mike Frysinger <vapier@users.sourceforge.net>
Modified File(s):
ltp/ltp/include/test.h 
Added File(s): 
ltp/ltp/include/compiler.h

10)Log Message: Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb@us.ibm.com>
Modified File(s):
ltp/testcases/kernel/io/disktest/Getopt.c
ltp/testcases/kernel/io/disktest/Getopt.h
ltp/testcases/kernel/io/disktest/Makefile
ltp/testcases/kernel/io/disktest/Makefile.aix
ltp/testcases/kernel/io/disktest/Makefile.linux
ltp/testcases/kernel/io/disktest/Makefile.windows
ltp/testcases/kernel/io/disktest/README
ltp/testcases/kernel/io/disktest/childmain.c
ltp/testcases/kernel/io/disktest/childmain.h
ltp/testcases/kernel/io/disktest/defs.h
ltp/testcases/kernel/io/disktest/dump.c
ltp/testcases/kernel/io/disktest/dump.h
ltp/testcases/kernel/io/disktest/globals.c
ltp/testcases/kernel/io/disktest/globals.h
ltp/testcases/kernel/io/disktest/io.c
ltp/testcases/kernel/io/disktest/io.h
ltp/testcases/kernel/io/disktest/main.c
ltp/testcases/kernel/io/disktest/main.h
ltp/testcases/kernel/io/disktest/parse.c
ltp/testcases/kernel/io/disktest/parse.h
ltp/testcases/kernel/io/disktest/sfunc.c
ltp/testcases/kernel/io/disktest/sfunc.h
ltp/testcases/kernel/io/disktest/stats.c
ltp/testcases/kernel/io/disktest/stats.h
ltp/testcases/kernel/io/disktest/threading.c
ltp/testcases/kernel/io/disktest/threading.h
ltp/testcases/kernel/io/disktest/timer.c
ltp/testcases/kernel/io/disktest/timer.h
ltp/testcases/kernel/io/disktest/usage.c
ltp/testcases/kernel/io/disktest/usage.h
ltp/testcases/kernel/io/disktest/man1/disktest.1
Added File(s):
ltp/testcases/kernel/io/disktest/CHANGELOG
ltp/testcases/kernel/io/disktest/disktest.spec
ltp/testcases/kernel/io/disktest/signals.c
ltp/testcases/kernel/io/disktest/signals.h
ltp/testcases/kernel/io/disktest/man1/disktest_manual.html

11) Log Message: Pid Namespace were getting segmentation fault while running on -mm kernel. After debugging by container development team they found the exact root cause. The Page_Size was reset, by, "Rishikesh K. Rajak" <risrajak@linux.vnet.ibm.com>
Modified File(s):
ltp/testcases/kernel/containers/libclone/libclone.c

12) Log Message: Based on the discussion at LKML (http://lkml.org/lkml/2007/11/29/325), Ricardo Salveti de Araujo <rsalveti@linux.vnet.ibm.com> removed the test case that verifies if the pgoff is "valid"
Modified File(s):
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c

13) Log Message: The problem was the position of the parenthesis, which made "fd" receive the result of the < (lower than) operation, instead of the actual return value from open. This implicates a lot of trouble in any subsequent reference to fd, used in write and mmap. Because of this, mmap was returning an error number (ENODEV), instead of a valid memory address, which created the mprotect trouble. Fix by Jose Otavio Rizzatti Ferreira <joseferr@br.ibm.com>
Modified File(s):
ltp/testcases/kernel/syscalls/mprotect/mprotect02.c

14) Log Message: Patrick Kirsch <pkirsch@suse.de> personally thinks, it would be better to print out the "actual" return code from sysconf call instead of the errno, which may lead to confusion, because the actual return code from the failing sysconf is probably not 0 (as errno is defined in previous context).
Modified File(s):
ltp/testcases/kernel/syscalls/sysconf/sysconf01.c

15) Log Message: Do not store cache files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/realtime/autom4te.cache/traces.0
ltp/testcases/realtime/autom4te.cache/traces.1
ltp/testcases/realtime/autom4te.cache/requests
ltp/testcases/realtime/autom4te.cache/output.1
ltp/testcases/realtime/autom4te.cache/output.0

16) Log Message: Remove compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Modified File(s):
ltp/testcases/kernel/syscalls/pcllib/libtool
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/config.h
ltp/testcases/kernel/syscalls/pcllib/config.log
ltp/testcases/kernel/syscalls/pcllib/config.status

17) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/test/.deps/cobench.Po
ltp/testcases/kernel/syscalls/pcllib/test/.deps/cothread.Po

18) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/man/Makefile

19) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/pcl/.deps/pcl_version.Plo
ltp/testcases/kernel/syscalls/pcllib/pcl/.deps/pcl.Plo

20) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/autom4te.cache/traces.0
ltp/testcases/kernel/syscalls/pcllib/autom4te.cache/traces.1
ltp/testcases/kernel/syscalls/pcllib/autom4te.cache/requests
ltp/testcases/kernel/syscalls/pcllib/autom4te.cache/output.1
ltp/testcases/kernel/syscalls/pcllib/autom4te.cache/output.0

21) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/include/Makefile

22) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/test/Makefile

23) Log Message: punt compiled files, by, Mike Frysinger <vapier@users.sourceforge.net>
Deleted File(s):
ltp/testcases/kernel/syscalls/pcllib/pcl/Makefile

24) Log Message: This will address the problem until distros update with latest glibc which has fallocate implementation. This is not extensively tested and built with some assumption like
     o we are testing on x86* and ppc* archs
     o on 64 bit machine we will always see 64 bit kernel running
by, Nagesh Sharyathi <sharyathi@in.ibm.com>
Modified File(s):
ltp/testcases/kernel/syscalls/fallocate/fallocate01.c
ltp/testcases/kernel/syscalls/fallocate/fallocate02.c
ltp/testcases/kernel/syscalls/fallocate/fallocate03.c

25) Log Message:
Since msgmni now scales to the memory size, it may reach big values.
To avoid forking 2*msgmni processes and create msgmni msg queues, do not take
msgmni from procfs anymore.
Just define it as 16 (which is the MSGMNI constant value in linux/msg.h)

Also fixed the Makefiles in ipc/lib and ipc/msgctl: there was no dependency
on the lib/ipc*.h header files.

Signed-off-by: Nadia Derbey <Nadia.Derbey@bull.net>

Modified File(s):
ltp/testcases/kernel/syscalls/ipc/lib/Makefile
ltp/testcases/kernel/syscalls/ipc/lib/ipcmsg.h
ltp/testcases/kernel/syscalls/ipc/msgctl/Makefile
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl08.c
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl09.c

26) Log Message:
Here is a second round of cleanup and fixes for the realtime testcases.

1) Make sched_jitter use the create_fifo_thread() library function instead of an open coded solution,
2) Prio-wake calls rt_init() twice, remove the second call,
3) Make sbrk_mutex less verbose by default. One can still use the -v option to get the whole output,
4) It's better to calculate the histogram before saving it. This was introduced in an earlier commit of mine fixing the quantile calculation, 5) Fix runtime displaying of the min and max latencies (when used with -v3). While at it, remove an uneeded avg variable,
6) Various tests still have a hardcoded value for the quantile nines. Use a value automatically calculated from the number of iterations,
7) The log10() call used for automatic quantile nines calculation returns a double result. Cast it to an int. The exp10() call used in stats_quantiles_calc() for checking purposes returns a double result which is compared against a long. Cast it to a long. This allows the following comparison: data->size < (long)exp10(quantiles->nines) to really be false when quantiles->nines has been calculated as log10(data->size).
More generally, it seems that (at least with gcc 4.1.1):
        long i = 10000;
        double f = exp10(log10(i))

        yields (i < f) being true due to rounding,
8) Add latency tracing capability to pthread_kill_latency as is already done on a few other latency tests (gtod_latency, sched_latency, ...),
9) The '::' optional argument specifier for getopt used by the '-v' option is a GNU extension, is not portable and does not work. For example it's not even described in the Debian getopt(3) manpage. Make the '-v' option require a non optional argument,
10)The print buffer is only ever flushed when it is full. Add flushing when the test terminates vi atexit(),
11)The 'period missed' check of the thread first loop should not depend on the thread starting time. This is especially visible on 'slow' platforms where one cannot run the test if thread creation takes a long time. Fix it by removing this dependency. All delays are now calculated relative to when the thread starts,

Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net>
Cc: Darren Hart <dvhltc@us.ibm.com>
Cc: Tim Chavez <tinytim@us.ibm.com>
Cc: Matthieu CASTET <matthieu.castet@parrot.com>
Acked-by: Chirag <chirag@linux.vnet.ibm.com>

Modified File(s):
ltp/testcases/realtime/func/gtod_latency/gtod_latency.c
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/func/pi-tests/sbrk_mutex.c
ltp/testcases/realtime/func/pi_perf/pi_perf.c
ltp/testcases/realtime/func/prio-wake/prio-wake.c
ltp/testcases/realtime/func/pthread_kill_latency/pthread_kill_latency.c
ltp/testcases/realtime/func/sched_jitter/sched_jitter.c
ltp/testcases/realtime/func/sched_latency/sched_latency.c
ltp/testcases/realtime/lib/librttest.c
ltp/testcases/realtime/lib/libstats.c

27) Log Message: lcov: fixed problem with pre gcc-3.3 versions.
read_gcov_headers does not return valid results for pre gcc-3.3 versions. Due to an unnecessary check, parsing of gcov files was aborted. Fix by removing check, by, Peter Oberparleiter <oberpapr@users.sourceforge.net>
Modified File(s):
ltp/utils/analysis/lcov/bin/geninfo

28) Log Message: lcov: fix error when trying to use genhtml -b
genhtml fails when the data file contains an entry which is not found in the base file, by, Peter Oberparleiter <oberpapr@users.sourceforge.net>
Modified File(s):
ltp/utils/analysis/lcov/bin/genhtml

29) Log Messaage: run_auto.sh file for realtime/func/pthread_kill_latency/testcase got missed out in first release of realtime tests. This patch adds run_auto.sh for testcase which is required to run this particular test through top-level run script, by, sudhanshu <sudh@linux.vnet.ibm.com>
Added File(s):
ltp/testcases/realtime/func/pthread_kill_latency/run_auto.sh

30) Log Message: Since msgmni now scales to the memory size, it may reach big values. To avoid forking 2*msgmni processes and create msgmni msg queues, take the min between the procfs value and MSGMNI (as found in linux/msg.h).
Also integrated the following in libipc.a:
  . get_max_msgqueues()
  . get_used_msgqueues()
Signed-off-by: Nadia Derbey <Nadia.Derbey@bull.net>
Modified File(s):
ltp/testcases/kernel/syscalls/ipc/lib/ipcmsg.h
ltp/testcases/kernel/syscalls/ipc/lib/libipc.c
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl08.c
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl09.c
ltp/testcases/kernel/syscalls/ipc/msgget/Makefile
ltp/testcases/kernel/syscalls/ipc/msgget/msgget03.c
Added File(s):
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl10.c
ltp/testcases/kernel/syscalls/ipc/msgctl/msgctl11.c

31) Log Message: waitpid06.c uses a flag to detect whether something went wrong during the test. The issue is that this flag is not initialized, and I get random failure reports. Other tests might suffer from the same bug, but I did not observe it yet. The enclosed patch fixes this in a trivial way for waitpid06. Surprisingly, with my debian package I never got the error, but when I compiled myself, by, Louis Rilling <Louis.Rilling@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/waitpid/waitpid06.c

32) Log Message:
There are numerous cleanups, fixes and features went into our locally maintained version of realtime tests, since its intergration in LTP december last year. This patch merges those changes into LTP tree. The patch majorly contains :
- All features, cleanups and fixes done by IBM realtime team over last two
  month or so.
- Change in copyrights( year, symbil and limiting columns to 80 chars)
- Other few cleanups to ltp-realtime tests.
Signed-off-by : Sudhanshu Singh < sudh@linux.vnet.ibm.com>

Modified File(s):
ltp/testcases/realtime/GNUmakefile.am
ltp/testcases/realtime/run.sh
ltp/testcases/realtime/func/async_handler/async_handler.c
ltp/testcases/realtime/func/async_handler/async_handler_jk.c
ltp/testcases/realtime/func/async_handler/async_handler_tsc.c
ltp/testcases/realtime/func/gtod_latency/gtod_infinite.c
ltp/testcases/realtime/func/gtod_latency/gtod_latency.c
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c
ltp/testcases/realtime/func/measurement/preempt_timing.c
ltp/testcases/realtime/func/measurement/rdtsc-latency.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/func/pi-tests/parse-testpi1.py
ltp/testcases/realtime/func/pi-tests/parse-testpi2.py
ltp/testcases/realtime/func/pi-tests/run_auto.sh
ltp/testcases/realtime/func/pi-tests/sbrk_mutex.c
ltp/testcases/realtime/func/pi-tests/test-skeleton.c
ltp/testcases/realtime/func/pi-tests/testpi-0.c
ltp/testcases/realtime/func/pi-tests/testpi-1.c
ltp/testcases/realtime/func/pi-tests/testpi-2.c
ltp/testcases/realtime/func/pi-tests/testpi-4.c
ltp/testcases/realtime/func/pi-tests/testpi-5.c
ltp/testcases/realtime/func/pi-tests/testpi-6.c
ltp/testcases/realtime/func/pi-tests/testpi-7.c
ltp/testcases/realtime/func/pi_perf/pi_perf.c
ltp/testcases/realtime/func/prio-preempt/prio-preempt.c
ltp/testcases/realtime/func/prio-wake/prio-wake.c
ltp/testcases/realtime/func/pthread_kill_latency/pthread_kill_latency.c
ltp/testcases/realtime/func/sched_football/parse-football.py
ltp/testcases/realtime/func/sched_football/sched_football.c
ltp/testcases/realtime/func/sched_jitter/sched_jitter.c
ltp/testcases/realtime/func/sched_latency/sched_latency.c
ltp/testcases/realtime/func/thread_clock/tc-2.c
ltp/testcases/realtime/include/libjvmsim.h
ltp/testcases/realtime/include/librttest.h
ltp/testcases/realtime/include/libstats.h
ltp/testcases/realtime/include/list.h
ltp/testcases/realtime/lib/libjvmsim.c
ltp/testcases/realtime/lib/librttest.c
ltp/testcases/realtime/lib/libstats.c
ltp/testcases/realtime/perf/latency/pthread_cond_latency.c
ltp/testcases/realtime/perf/latency/pthread_cond_many.c
ltp/testcases/realtime/scripts/__init__.py
ltp/testcases/realtime/scripts/setenv.sh
ltp/testcases/realtime/stress/pi-tests/lookup_pi_state.c
ltp/testcases/realtime/stress/pi-tests/testpi-3.c
ltp/testscripts/test_realtime.sh

33) Log Message: waitpid07.c uses a flag to detect whether something went wrong during the test. The issue is that this flag is not initialized, and I get random failure reports, by, Louis Rilling <Louis.Rilling@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/waitpid/waitpid07.c

34) Log Message:
waitpid tests: Fix failure detection flag initialization.
On a similar pattern as waitpid06 and waitpid07, waitpid08-13 use a failure detection flag (called 'fail' instead of 'flag'). However except in waitpid09, this flag may be used uninitialized, which causes the test to randomly report failure. This patch ensures that the flag is reset at the beginning of each loop.
Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/waitpid/waitpid08.c
ltp/testcases/kernel/syscalls/waitpid/waitpid10.c
ltp/testcases/kernel/syscalls/waitpid/waitpid11.c
ltp/testcases/kernel/syscalls/waitpid/waitpid12.c
ltp/testcases/kernel/syscalls/waitpid/waitpid13.c

35) Log Message:
waitpid03/04: Fix condition numbers displayed when reporting errors.
The condition numbers displayed while reporting errors in waitpid03 and waitpid04 are used initialized and are not consistently updated, which may lead to useless reports.
Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/waitpid/waitpid03.c
ltp/testcases/kernel/syscalls/waitpid/waitpid04.c

36) Log Message:
waitpid02-05: remove unused defines related to failure handling. Signed-off-by: Louis Rilling <Louis.Rilling@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/waitpid/waitpid02.c
ltp/testcases/kernel/syscalls/waitpid/waitpid03.c
ltp/testcases/kernel/syscalls/waitpid/waitpid04.c
ltp/testcases/kernel/syscalls/waitpid/waitpid05.c

37) Log Message: Adding option to build TIMER test cases as well, by, Subrata Modak <subrata@linux.vnet.ibm.com>
Modified File(s):
ltp/testcases/kernel/Makefile

38) Log Message: Removing these files as they get automatically generated during build, by, Max Stirling <vicky.irobot@gmail.com>
Deleted File(s):
ltp/testcases/ballista/ballista/MakefileHost
ltp/testcases/ballista/ballista/MakefileTarget

39) Log Message: Many tests cannot be executed concurrently. I have a few patches to make it possible to execute some tests in parallel/concurrency, to check SMP safeness, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/sendfile/sendfile02.c
ltp/testcases/kernel/syscalls/sendfile/sendfile04.c

40) Log Message: Fix NFS issues in tst_rmdir (directory non empty) due to an unmapped file, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c

41) Log Message: Fix a concurrency issue due to the (false) sharing of file /dev/shm/cache. This patch just create a different file for each process and unlink the file before exiting, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c

42) Log Message: The variable dfOpts (in #324) is seting to NULL even if the df is not a symbolic link.(It has to be "-P" itself to get the output portable).And so the "df $dfOpts $dir" (line #326) command is not giving a result expected by the succeeding statements. I have tested this patch both in lvm and fdisk partitions and found its working fine, by, Sudeesh John <sudeeshjohn@in.ibm.com>
Modified File(s):
ltp/testcases/kernel/fs/doio/rwtest.sh

43) Log Message:
CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID are also supported besides CLOCK_REALTIME and CLOCK_MONOTONIC. That's the cause of the failure of clock_gettime03, timer_create02 and timer_create04. Another cause is that struct sigevent evp is assigned with invalid values when option is 1. That's the cause of the failure of timer_create02 and timer_create03. CLOCK_REALTIME_HR and CLOCK_MONOTONIC_HR have been removed in the later kernel versions, hence the failures in the test. I am still trying to find out if any kernel versions used to support these. CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID are supported from 2.6.12 kernel version onwards and the test case needs to be modified for this change. Also in timer_create02.c, setup_test() case1 needs to be modified so as to make evp NULL instead of its members. Since the testcase behaves differently for different kernel versions, a version check needs to be added for making it pass across versions. I'm removing the HR clocks from the tests along with other changes, by, Anoop V. Chakkalakkal <anoop.vijayan@in.ibm.com>

Modified File(s):
ltp/testcases/kernel/timers/clock_gettime/clock_gettime03.c
ltp/testcases/kernel/timers/clock_settime/clock_settime03.c
ltp/testcases/kernel/timers/include/common_timers.h
ltp/testcases/kernel/timers/timer_create/timer_create02.c
ltp/testcases/kernel/timers/timer_create/timer_create03.c
ltp/testcases/kernel/timers/timer_create/timer_create04.c

44) Mog Message:
This patch -try- to cleanup the mem03 test and fix a concurrency problem. Mainly, the test creates and removes files in the current directory. Since the tst_tmpdir() function was not used, several instances of the test was creating and removing files from each others !, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/memmap/mem03.c

45) Log Message: The problem is that the kernel file is vmlinux* instead of vmlinuz* on SLES, but file_test.sh always try to grep vmlinuz* under /boot/. Here is the patch and the test result with the patch, by, shenlinf <shenlinf@cn.ibm.com>
Modified File(s):
ltp/testcases/commands/ade/file/file_test.sh

46) Log Message: Here is a patch fixing concurrency issue in mremap04. Just use a shm key returned from the getipckey() function instead of a fixed hardcoded value, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>
Modified File(s):
ltp/testcases/kernel/syscalls/mremap/Makefile
ltp/testcases/kernel/syscalls/mremap/mremap04.c

47) Log Message:
LTP-kill05-bad-check-fix.patch:
  - Fix return value check from shmat. In case of error, this wrong check was leading to a seg-fault.
LTP-kill05-shmid_delete-fix.patch:
 - Fix deletion of the memory segment. Due to the change of process UID during the test, the segment was created by ROOT and deleted (or tried to be deleted) by user "bin". This is of course not possible. And it is also impossible to switch back uid to ROOT. Solution adopted : doing a fork in which the test is performed. The initial process staying with ROOT uid.
LTP-kill05-concurrency-fix.patch
 - Paranoia concurrency fix. I have not encounter any real issue, but it is probably safer to be sure each process is using a different segment. -> use tst_tmpdir, to make getipckey generating a different key for each running process, by, Renaud Lottiaux <Renaud.Lottiaux@kerlabs.com>

Modified File(s):
ltp/testcases/kernel/syscalls/kill/kill05.c

48) Log Message:
1) The pi-tests don't use the librttest infrastructure and simply duplicate code. This patch ensures that those tests use librttest.
2) The thread-clock test doesn't use the librttest infrastructure. This patch ensures that it does.
3) Adds missing headers to the following files,
Signed-Off-By: Chirag <chirag@linux.vnet.ibm.com>,
Acked-By: Dinakar Guniguntala <dino@in.ibm.com>,
Acked-By: Sebastien Dugue <sebastien.dugue@bull.net>

Modified File(s):
ltp/testcases/realtime/func/pi-tests/parse-testpi1.py
ltp/testcases/realtime/func/pi-tests/parse-testpi2.py

LTP-20080131

1)  Log Message: Some more updates to Reference Policy Checks by "Serge E. Hallyn" <serue@us.ibm.com> 
File(s) Affected:
ltp/testscripts/test_selinux.sh
File(s) Added:
ltp/testcases/kernel/security/selinux-testsuite/misc/check_sbin_deprecated.pl
ltp/testcases/kernel/security/selinux-testsuite/misc/sbin_deprecated.patch
ltp/testcases/kernel/security/selinux-testsuite/misc/update_refpolicy.sh

2) Log Message: This solves the configuration issue reported by Santwan <santwana.samantray@in.ibm.com>, and, fixed by Amit Arora <amitarora@in.ibm.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/mlockall/mlockall02.c

3) Log Message: Fix various printf strings to correct formatting and remove spaces, by, Randy Dunlap <rdunlap@xenotime.net>
File(s) Affected:
ltp/tools/apicmds/ltpapicmd.c

4) Log Message: gcov-kernel patch for linux 2.6.23, by Peter Oberparleiter <oberpapr@users.sourceforge.net>
File(s) Added:
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.23-gcov-arm-eabi.patch
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.23-gcov-arm-hack.patch
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.23-gcov.patch

5) Log Message: Filter non-word characters in function name as they would break our file format which uses comma and '=' as field separator, by Peter Oberparleiter <oberpapr@users.sourceforge.net>
File(s) Affected:
/cvsroot/ltp/utils/analysis/lcov/bin/geninfo

6) Log Message: Add dependency information for linux_syscall_numbers.h, by Mike Frysinger <vapier@gentoo.org>
File(s) Affected:
ltp/testcases/kernel/include/Makefile

7) Log Message: Testcases contributed by Sharyathi Nagesh <sharyath@in.ibm.com>
File(s) Affected:
ltp/runtest/syscalls
ltp/testcases/kernel/include/i386.in
ltp/testcases/kernel/include/ia64.in
ltp/testcases/kernel/include/powerpc.in
ltp/testcases/kernel/include/powerpc64.in
ltp/testcases/kernel/include/s390.in
ltp/testcases/kernel/include/s390x.in
ltp/testcases/kernel/include/sparc.in
ltp/testcases/kernel/include/sparc64.in
ltp/testcases/kernel/include/x86_64.in

File(s) Added:
ltp/testcases/kernel/syscalls/fallocate/Makefile
ltp/testcases/kernel/syscalls/fallocate/fallocate01.c
ltp/testcases/kernel/syscalls/fallocate/fallocate02.c
ltp/testcases/kernel/syscalls/fallocate/fallocate03.c
ltp/testcases/kernel/syscalls/fallocate/run.sh

8) Log Message: Fix for situations when it fails even on NUMA node, enabling proper identification of nodes, by psuriset <psuriset@linux.ibm.com>
File(s) Affected:
ltp/testcases/kernel/numa/numa01.sh
ltp/testcases/kernel/numa/numa_node_size.c
ltp/testcases/kernel/numa/test.sh

9) Log Message: Terminates the tests if __NR_fadvise64 is 0, by Masatake YAMATO <yamato@redhat.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise04.c

10) Log Message: Randomly generating a no. to avoid the test case to fail, by Sridhar Vinay <vinaysridhar@in.ibm.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/syslog/syslogtst.c

11) Log Message: Jeff Burke <jburke@redhat.com> wanted this unnecessary file to be removed
FIle(s) Affected:
ltp/testcases/pounder21/test_scripts/statslogging.orig

12) Log Message: Some fixes for log directory and execute permission to the script, by Sudhanshu Singh <sudh@linux.vnet.ibm.com> and Jeff Burke <jburke@redhat.com>
File(s) Affected:
ltp/testcases/realtime/README
File(s) Removed:
ltp/testscripts/realtime.sh
File(s) Added:
ltp/testscripts/test_realtime.sh

13) Log Message: Still more fix for Randomly generating a no. to avoid the test case to fail, by Sridhar Vinay <vinaysridhar@in.ibm.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/syslog/syslogtst.c

14) Log Message: "hp_func" should be protected through pthread_mutex or similar, by, Yi Xu <yxu@suse.de>
File(s) Affected:
ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/1-6.c

15) Log Message:
Huge Changes from Cai Qian <qcai@redhat.com>. Please see the Description
below:

The updated version
has the following improvments,

- simplify maintenance

- fix several bugs

- better automation

- extend support on Debian and Fedora

- merge Poornima Nayak <Poornima.Nayak@in.ibm.com> 's latest patch

- other changes

The new version simplifies code layout, and all tools under lib/
directory are standalone and reusable, all configurable variables are
under the file runkdump.conf. There are also included sample
configuration files for different distros and test components. In
addition, it avoided code duplication by merging RHEL and SLES specified
code in lkdtm module together, and add a checking before hand. The
working flow in main script has also been tidied up. verify and
verify_dump have been unified. unused file "summary" has been deleted.

In previous version,
* The part of comparing kernel version in setup will not work proper
  if the kernel grows to something like 2.7.1 or 2.8.1.
* verify_dump will not able to find previous vmcore if vmcore creation
  and vmcore verfication happen at different hours.
* Other random bugs because of code complexity.

In the new version, once you define everything in a config file, it will
run in an automatically fashion on some of systems, if there is proper
tools installed.

The code has been rewritten in POSIX shell syntax, and made more
portable, and attempted to remove hard-coded stuff as much as
possible. It has been tested fairly on RHEL5.1, SLES10sp1, Debian
unstable, and Fedora 8. If needed I can send you result logs. Sachin
has done a quick test on PPC64 machine running RHEL5.1 and the script
run fine. Poornima has done some code review.
Poornima's patch has been merged,
1. Crashkerenl reservation check is modified to support any craskernel
value.  
2. A message before system reboots
3. Added one more line to 'status' if dump verification passed.
4. Modified 'README' file
5. If kdump start fails for invalid arguments in kdump.conf is fixed
6. Replaced MAKE_OPTS with MAKE_OPTIONS.
7. Removed some unwanted statements.

Other changes included that all tests descriptions have been documented
in doc/ALL_TEST.txt. KNLD (dump over scp with link delay) test case has
been merged into KNSCP (dump over scp). Once LINK_DELAY has been defined
somewhere in configuration file, all test cases (KNSCP and KNNFS)
dumping to a network destination will take advantage of it. If
LINK_DELAY is not defined or equals to 0, KNSCP and KNNFS will just the
same as in previous version.

Cai Qian

Modified Files:
ltp/testcases/kdump/Makefile ltp/testcases/kdump/README
Added Files:
ltp/testcases/kdump/runkdump.conf
ltp/testcases/kdump/runkdump.sh
ltp/testcases/kdump/doc/ALL_TEST.txt
ltp/testcases/kdump/doc/OO_Descriptions.txt
ltp/testcases/kdump/doc/README
ltp/testcases/kdump/doc/TEST_PLAN.txt
ltp/testcases/kdump/lib/Makefile
ltp/testcases/kdump/lib/setup.sh
ltp/testcases/kdump/lib/ssh.tcl
ltp/testcases/kdump/lib/sysinfo.sh
ltp/testcases/kdump/lib/test.sh
ltp/testcases/kdump/lib/verify.sh
ltp/testcases/kdump/lib/crasher/Makefile
ltp/testcases/kdump/lib/crasher/crasher.c
ltp/testcases/kdump/lib/kprobes/Makefile
ltp/testcases/kdump/lib/kprobes/kprobes.c
ltp/testcases/kdump/lib/lkdtm/Makefile
ltp/testcases/kdump/lib/lkdtm/lkdtm.c
ltp/testcases/kdump/lib/lkdtm/lkdtm.c.orig
ltp/testcases/kdump/sample/runkdump.BASIC_LKDTM.RHEL
ltp/testcases/kdump/sample/runkdump.BASIC_LKDTM.SLES
ltp/testcases/kdump/sample/runkdump.CRASHER.RHEL
ltp/testcases/kdump/sample/runkdump.CRASHER.SLES
ltp/testcases/kdump/sample/runkdump.EXTRA_LKDTM.RHEL
ltp/testcases/kdump/sample/runkdump.EXTRA_LKDTM.SLES
Removed Files:
ltp/testcases/kdump/TEST_PLAN.txt
ltp/testcases/kdump/crash_cmds ltp/testcases/kdump/distro
ltp/testcases/kdump/kdump_propagate ltp/testcases/kdump/master
ltp/testcases/kdump/setup ltp/testcases/kdump/summary
ltp/testcases/kdump/sysinfo ltp/testcases/kdump/test
ltp/testcases/kdump/tests ltp/testcases/kdump/verify
ltp/testcases/kdump/verify_dump
ltp/testcases/kdump/rhtools/Makefile
ltp/testcases/kdump/rhtools/OO_Descriptions.txt
ltp/testcases/kdump/rhtools/crasher_mod/Makefile
ltp/testcases/kdump/rhtools/crasher_mod/crasher.c
ltp/testcases/kdump/rhtools/lkdtm_mod/Makefile
ltp/testcases/kdump/rhtools/lkdtm_mod/lkdtm.c
ltp/testcases/kdump/susetools/Makefile
ltp/testcases/kdump/susetools/OO_Descriptions.txt
ltp/testcases/kdump/susetools/crasher_mod/Makefile
ltp/testcases/kdump/susetools/crasher_mod/crasher.c
ltp/testcases/kdump/susetools/lkdtm_mod/Makefile
ltp/testcases/kdump/susetools/lkdtm_mod/lkdtm.c
ltp/testcases/kdump/testlists/crasher
ltp/testcases/kdump/testlists/lkdtm.base
ltp/testcases/kdump/testlists/lkdtm.exha

16) Log Message: A huge Update to the RT Linux Tree by Sebastien Dugu <sebastien.dugue@bull.net>
Modified Files:
ltp/testcases/realtime/func/async_handler/async_handler.c
ltp/testcases/realtime/func/async_handler/async_handler_tsc.c
ltp/testcases/realtime/func/gtod_latency/gtod_latency.c
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/func/pi_perf/pi_perf.c
ltp/testcases/realtime/func/pthread_kill_latency/pthread_kill_latency.c
ltp/testcases/realtime/func/sched_football/sched_football.c
ltp/testcases/realtime/func/sched_latency/sched_latency.c

17) Log Message: Fix for remap_file_pages(01/02) failing on 31(s390) bit linux guest running RHEL4.6, by, joseferr@linux.vnet.ibm.com
Modifiled File(s):
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c

18) Log Message: Fixing missing argument for open() function when O_CREAT is in the flag, by, Yi Xu <yxu@suse.de>
Modified File(s):
testcases/kernel/syscalls/clone/clone02.c
testcases/kernel/syscalls/fcntl/fcntl18.c
testcases/kernel/syscalls/fdatasync/fdatasync01.c
testcases/kernel/syscalls/getdents/getdents04.c
testcases/kernel/syscalls/mprotect/mprotect02.c
testcases/kernel/syscalls/mprotect/mprotect03.c
testcases/kernel/syscalls/open/open04.c
testcases/kernel/syscalls/pselect/pselect01.c
testcases/kernel/syscalls/read/read02.c
testcases/kernel/syscalls/select/select01.c
testcases/kernel/syscalls/sendfile/sendfile03.c
testcases/kernel/syscalls/splice/splice01.c
testcases/kernel/syscalls/symlink/symlink01.c
testcases/kernel/syscalls/tee/tee01.c
testcases/network/ipv6/sendfile6/testsf_c6.c
testcases/network/tcp_cmds/sendfile/testsf_c.c
testcases/kernel/fs/doio/iogen.c

19) Log Message: Fix for generation of HTML output for absolute paths, by, Subrata Modak <subrata@linux.vnet.ibm.com>
Modified File(s):
ltp/runltp
ltp/tools/genhtml.pl

20) Log Message: Initial set of Filecaps testcases from Serge, "Serge E. Hallyn" <serue@us.ibm.com>
Modified Files:
ltp/runltp
ltp/testcases/kernel/security/Makefile
Added Files:
ltp/runtest/filecaps
ltp/testcases/kernel/security/filecaps/Makefile
ltp/testcases/kernel/security/filecaps/README
ltp/testcases/kernel/security/filecaps/check_simple_capset.c
ltp/testcases/kernel/security/filecaps/checkforfilecaps.sh
ltp/testcases/kernel/security/filecaps/checkforlibcap.sh
ltp/testcases/kernel/security/filecaps/filecapstest.sh
ltp/testcases/kernel/security/filecaps/gotlibcap.c
ltp/testcases/kernel/security/filecaps/inh_capped.c
ltp/testcases/kernel/security/filecaps/nolibcap.c
ltp/testcases/kernel/security/filecaps/print_caps.c
ltp/testcases/kernel/security/filecaps/verify_caps_exec.c
ltp/testscripts/test_filecaps.sh

21) Log Message: testcase ballista gcc 4.3 conformance, by, Patrick Kirsch <pkirsch@suse.de>
Modified File(s):
ltp/testcases/ballista/ballista/compile/bparser.cpp

22) Log Message: Enhancing runltp to run testcases in desired sequence, by, Subrata Modak <subrata@linux.vnet.ibm.com>
Modified File(s):
ltp/runltp

23) Log Message: Adding volatile to avoid the compiler optimization to produce an infinite, by, Carmelo AMOROSO <carmelo.amoroso@st.com>, Haavard Skinnemoen <hskinnemoen@atmel.com>
Modified File(s):
ltp/testcases/kernel/syscalls/times/times03.c

24) Log Message: Extend the unconfined_runs_test interface in the selinux testsuite policy to allow the test programs to properly report back to the caller, by, Stephen Smalley <sds@tycho.nsa.gov>
Modified File(s):
ltp/testcases/kernel/security/selinux-testsuite/README
ltp/testcases/kernel/security/selinux-testsuite/misc/sbin_deprecated.patch

25) Log Message: added gcov-kernel patches for linux-2.6.24, by, Peter Oberparleiter <oberpapr@users.sourceforge.net>
Added File(s):
ltp/utils/analysis/gcov-kernel/linux-2.6.24-gcov-arm-eabi.patch
ltp/utils/analysis/gcov-kernel/linux-2.6.24-gcov-arm-hack.patch
ltp/utils/analysis/gcov-kernel/linux-2.6.24-gcov.patch

26) Log Message: Fix for Build Error issues on NUMA Machine in absence of important RPMs, by, psuriset <psuriset@linux.vnet.ibm.com>
Modified File(s):
ltp/testcases/kernel/numa/Makefile
ltp/testcases/kernel/numa/README
ltp/testcases/kernel/numa/numa01.sh
ltp/testcases/kernel/numa/numa_node_size.c
ltp/testcases/kernel/numa/test.sh

LTP-20071231

1)  Log Message: Update CLONE_NEWPID as value changed in 2.6.23-rc3-mm2, submitted by Sukadev Bhattiprolu <sukadev@us.ibm.com>
File(s) Affected:
ltp/testcases/kernel/containers/libclone/libclone.h

2) Log Message: New Test Cases sendfile05 sendfile06 and sendfile07 for sendfile and sendfile64 syscall, by Masatake YAMATO <yamato@redhat.com>
File(s) Affected:
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/sendfile/sendfile02.c
ltp/testcases/kernel/syscalls/sendfile/sendfile03.c
ltp/testcases/kernel/syscalls/sendfile/sendfile04.c
File(s) Added:
ltp/testcases/kernel/syscalls/sendfile/sendfile05.c
ltp/testcases/kernel/syscalls/sendfile/sendfile06.c
ltp/testcases/kernel/syscalls/sendfile/sendfile07.c

3) Log Message: Fixing the problem of the resolution for ADDRESS_OF_MAIN, by Mark Ver <markver@us.ibm.com>
File(s) Affected:
ltp/testcases/kernel/io/direct_io/diotest4.c

4) Log Message: use caps in "generated warning" since people dont read comments, by Mike Frysinger <vapier@users.sourceforge.net>
File(s) Affected:
ltp/testcases/kernel/include/linux_syscall_numbers.h
ltp/testcases/kernel/include/regen.sh

5) Log Message: Se-linux Reference Policy Updates by Stephen Smalley <sds@tycho.nsa.gov>
File(s) Affected:
ltp/testcases/kernel/security/selinux-testsuite/README
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_file.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_net.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_file.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_ioctl.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_readlink.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_rxdir.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_setnice.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_stat.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_sysctl.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_task_create.te
ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te

6) Log Message: New NUMA Testcases by psuriset@linux.vnet.ibm.com
File(s) Affected:
ltp/testcases/kernel/numa/Makefile
ltp/testcases/kernel/numa/README
ltp/testcases/kernel/numa/numa01.sh
File(s) Added:
ltp/testcases/kernel/numa/numa_node_size.c
ltp/testcases/kernel/numa/test.sh

7) Log Message: Fixing mincore the way it generates -EFAULT on s390 by setting a stack limit by "ulimit -s <value>" before its execution, by Anoop <anoop.vijayan@in.ibm.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/mincore/mincore01.c

8) Log Message: add syscall list for arm from Riaz Ur Rahaman
File(s) Affected:
ltp/testcases/kernel/include/linux_syscall_numbers.h
ltp/testcases/kernel/include/order

File(s) Added:
ltp/testcases/kernel/include/arm.in

9) Log Message: Test isn't supported in kernel versions before 2.6.16, by Marco Antonio Fernandes Junior <marcoafj@linux.vnet.ibm.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise04.c

10)Log Message: Reverting Back Stephenś Patch and Applying Jeffś Patch for controlling the tty issue. Also a minor change for the ia64 compile failure.
File(s) Affected:
testcases/kernel/security/selinux-testsuite/README
testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_file.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_net.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_file.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_ioctl.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_setnice.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_sysctl.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_task_create.te
testcases/kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te
testcases/kernel/security/selinux-testsuite/tests/execshare/selinux_execshare_parent.c
testcases/kernel/security/selinux-testsuite/tests/file/selinux_file.sh

11) Log Message: A Trivial Fix from Roger Mach <bigmach@us.ibm.com>
File(s) Affected:
ltp/testcases/pounder21/test_scripts/xterm_stress

12) Log Message: tweak config.mk comment to reflect reality, by Mike Frysinger
File(s) Affected:
ltp/Makefile

13) Log Message: Initial Set of Real Time Linux Test Cases, by Nivedita Singhvi <niv@us.ibm.com> & sudhanshu Singh <sudhanshusingh@in.ibm.com>
File(s) Added:
ltp/testcases/realtime/COPYING
ltp/testcases/realtime/GNUmakefile.am
ltp/testcases/realtime/GNUmakefile.in
ltp/testcases/realtime/OO_DESCRIPTION.txt
ltp/testcases/realtime/README
ltp/testcases/realtime/aclocal.m4
ltp/testcases/realtime/autogen.sh
ltp/testcases/realtime/configure
ltp/testcases/realtime/configure.ac
ltp/testcases/realtime/run.sh
ltp/testcases/realtime/autom4te.cache/output.0
ltp/testcases/realtime/autom4te.cache/output.1
ltp/testcases/realtime/autom4te.cache/requests
ltp/testcases/realtime/autom4te.cache/traces.0
ltp/testcases/realtime/autom4te.cache/traces.1
ltp/testcases/realtime/config/GNUmakefile.am
ltp/testcases/realtime/config/GNUmakefile.in
ltp/testcases/realtime/config/autoconf/compile
ltp/testcases/realtime/config/autoconf/config.guess
ltp/testcases/realtime/config/autoconf/config.sub
ltp/testcases/realtime/config/autoconf/depcomp
ltp/testcases/realtime/config/autoconf/install-sh
ltp/testcases/realtime/config/autoconf/missing
ltp/testcases/realtime/doc/HOWTO_ADD_TESTS
ltp/testcases/realtime/doc/TODO
ltp/testcases/realtime/func/GNUmakefile.am
ltp/testcases/realtime/func/GNUmakefile.in
ltp/testcases/realtime/func/async_handler/GNUmakefile.am
ltp/testcases/realtime/func/async_handler/GNUmakefile.in
ltp/testcases/realtime/func/async_handler/async_handler.c
ltp/testcases/realtime/func/async_handler/async_handler_jk.c
ltp/testcases/realtime/func/async_handler/async_handler_tsc.c
ltp/testcases/realtime/func/async_handler/run_auto.sh
ltp/testcases/realtime/func/gtod_latency/GNUmakefile.am
ltp/testcases/realtime/func/gtod_latency/GNUmakefile.in
ltp/testcases/realtime/func/gtod_latency/gtod_infinite.c
ltp/testcases/realtime/func/gtod_latency/gtod_latency.c
ltp/testcases/realtime/func/gtod_latency/run_auto.sh
ltp/testcases/realtime/func/hrtimer-prio/GNUmakefile.am
ltp/testcases/realtime/func/hrtimer-prio/GNUmakefile.in
ltp/testcases/realtime/func/hrtimer-prio/hrtimer-prio.c
ltp/testcases/realtime/func/hrtimer-prio/run.sh
ltp/testcases/realtime/func/matrix_mult/GNUmakefile.am
ltp/testcases/realtime/func/matrix_mult/GNUmakefile.in
ltp/testcases/realtime/func/matrix_mult/matrix_mult.c
ltp/testcases/realtime/func/matrix_mult/run_auto.sh
ltp/testcases/realtime/func/measurement/GNUmakefile.am
ltp/testcases/realtime/func/measurement/GNUmakefile.in
ltp/testcases/realtime/func/measurement/README
ltp/testcases/realtime/func/measurement/preempt_timing.c
ltp/testcases/realtime/func/measurement/rdtsc-latency.c
ltp/testcases/realtime/func/measurement/run.sh
ltp/testcases/realtime/func/periodic_cpu_load/GNUmakefile.am
ltp/testcases/realtime/func/periodic_cpu_load/GNUmakefile.in
ltp/testcases/realtime/func/periodic_cpu_load/mixed_load.sh
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load.c
ltp/testcases/realtime/func/periodic_cpu_load/periodic_cpu_load_single.c
ltp/testcases/realtime/func/periodic_cpu_load/run_auto.sh
ltp/testcases/realtime/func/pi-tests/GNUmakefile.am
ltp/testcases/realtime/func/pi-tests/GNUmakefile.in
ltp/testcases/realtime/func/pi-tests/parse-testpi1.py
ltp/testcases/realtime/func/pi-tests/parse-testpi2.py
ltp/testcases/realtime/func/pi-tests/run_auto.sh
ltp/testcases/realtime/func/pi-tests/sbrk_mutex.c
ltp/testcases/realtime/func/pi-tests/test-skeleton.c
ltp/testcases/realtime/func/pi-tests/testpi-0.c
ltp/testcases/realtime/func/pi-tests/testpi-1.c
ltp/testcases/realtime/func/pi-tests/testpi-2.c
ltp/testcases/realtime/func/pi-tests/testpi-4.c
ltp/testcases/realtime/func/pi-tests/testpi-5.c
ltp/testcases/realtime/func/pi-tests/testpi-6.c
ltp/testcases/realtime/func/pi-tests/testpi-7.c
ltp/testcases/realtime/func/pi_perf/GNUmakefile.am
ltp/testcases/realtime/func/pi_perf/GNUmakefile.in
ltp/testcases/realtime/func/pi_perf/pi_perf.c
ltp/testcases/realtime/func/pi_perf/run_auto.sh
ltp/testcases/realtime/func/prio-preempt/GNUmakefile.am
ltp/testcases/realtime/func/prio-preempt/GNUmakefile.in
ltp/testcases/realtime/func/prio-preempt/prio-preempt.c
ltp/testcases/realtime/func/prio-preempt/run_auto.sh
ltp/testcases/realtime/func/prio-wake/GNUmakefile.am
ltp/testcases/realtime/func/prio-wake/GNUmakefile.in
ltp/testcases/realtime/func/prio-wake/prio-wake.c
ltp/testcases/realtime/func/prio-wake/run_auto.sh
ltp/testcases/realtime/func/pthread_kill_latency/GNUmakefile.am
ltp/testcases/realtime/func/pthread_kill_latency/GNUmakefile.in
ltp/testcases/realtime/func/pthread_kill_latency/pthread_kill_latency.c
ltp/testcases/realtime/func/sched_football/GNUmakefile.am
ltp/testcases/realtime/func/sched_football/GNUmakefile.in
ltp/testcases/realtime/func/sched_football/parse-football.py
ltp/testcases/realtime/func/sched_football/run_auto.sh
ltp/testcases/realtime/func/sched_football/sched_football.c
ltp/testcases/realtime/func/sched_jitter/GNUmakefile.am
ltp/testcases/realtime/func/sched_jitter/GNUmakefile.in
ltp/testcases/realtime/func/sched_jitter/README
ltp/testcases/realtime/func/sched_jitter/run_auto.sh
ltp/testcases/realtime/func/sched_jitter/sched_jitter.c
ltp/testcases/realtime/func/sched_latency/GNUmakefile.am
ltp/testcases/realtime/func/sched_latency/GNUmakefile.in
ltp/testcases/realtime/func/sched_latency/run_auto.sh
ltp/testcases/realtime/func/sched_latency/sched_latency.c
ltp/testcases/realtime/func/thread_clock/GNUmakefile.am
ltp/testcases/realtime/func/thread_clock/GNUmakefile.in
ltp/testcases/realtime/func/thread_clock/run_auto.sh
ltp/testcases/realtime/func/thread_clock/tc-2.c
ltp/testcases/realtime/include/GNUmakefile.am
ltp/testcases/realtime/include/GNUmakefile.in
ltp/testcases/realtime/include/libjvmsim.h
ltp/testcases/realtime/include/librttest.h
ltp/testcases/realtime/include/libstats.h
ltp/testcases/realtime/include/list.h
ltp/testcases/realtime/include/rttests_config.h.in
ltp/testcases/realtime/lib/GNUmakefile.am
ltp/testcases/realtime/lib/GNUmakefile.in
ltp/testcases/realtime/lib/libjvmsim.c
ltp/testcases/realtime/lib/librttest.c
ltp/testcases/realtime/lib/libstats.c
ltp/testcases/realtime/perf/GNUmakefile.am
ltp/testcases/realtime/perf/GNUmakefile.in
ltp/testcases/realtime/perf/latency/GNUmakefile.am
ltp/testcases/realtime/perf/latency/GNUmakefile.in
ltp/testcases/realtime/perf/latency/cpunoise.sh
ltp/testcases/realtime/perf/latency/cpunoise2000.sh
ltp/testcases/realtime/perf/latency/disknoise.sh
ltp/testcases/realtime/perf/latency/pthread_cond_latency.c
ltp/testcases/realtime/perf/latency/pthread_cond_many.c
ltp/testcases/realtime/perf/latency/pthread_cond_many_histogram.sh
ltp/testcases/realtime/perf/latency/run.sh
ltp/testcases/realtime/scripts/__init__.py
ltp/testcases/realtime/scripts/parser.py
ltp/testcases/realtime/scripts/run_c_files.sh
ltp/testcases/realtime/scripts/setenv.sh
ltp/testcases/realtime/stress/GNUmakefile.am
ltp/testcases/realtime/stress/GNUmakefile.in
ltp/testcases/realtime/stress/pi-tests/GNUmakefile.am
ltp/testcases/realtime/stress/pi-tests/GNUmakefile.in
ltp/testcases/realtime/stress/pi-tests/lookup_pi_state.c
ltp/testcases/realtime/stress/pi-tests/testpi-3.c
ltp/testcases/realtime/tools/ftqviz.py
ltp/testscripts/realtime.sh

14) Log Message: Updates for Some Copyright and License Declarations
File(s) Affected:
ltp/testcases/realtime/GNUmakefile.am
ltp/testcases/realtime/OO_DESCRIPTION.txt
ltp/testcases/realtime/README
ltp/testcases/realtime/autogen.sh
ltp/testcases/realtime/configure.ac
ltp/testcases/realtime/run.sh

15) Log Message: Initial set of PID Namespace testcase contributed by "Rishikesh K. Rajak" <risrajak@linux.vnet.ibm.com>
File(s) Added:
ltp/testcases/kernel/containers/pidns/Makefile
ltp/testcases/kernel/containers/pidns/README
ltp/testcases/kernel/containers/pidns/check_pidns_enabled.c
ltp/testcases/kernel/containers/pidns/pidns01.c
ltp/testcases/kernel/containers/pidns/pidns02.c
ltp/testcases/kernel/containers/pidns/pidns03.c
ltp/testcases/kernel/containers/pidns/runpidnstest.sh
ltp/testcases/kernel/containers/pidns/runtests_noltp.sh

File(s) Affected:
ltp/testcases/kernel/containers/Makefile
ltp/testcases/kernel/containers/container_test.sh

16) Log Message: Changed the way Copyrights and License agreements are declared
File(s) Affected:
ltp/testcases/kernel/containers/README
ltp/testcases/kernel/containers/TEST_PLAN.txt
ltp/testcases/kernel/containers/check_for_unshare.c
ltp/testcases/kernel/containers/libclone/Makefile
ltp/testcases/kernel/containers/libclone/libclone.c
ltp/testcases/kernel/containers/libclone/libclone.h
ltp/testcases/kernel/containers/sysvipc/Makefile
ltp/testcases/kernel/containers/sysvipc/check_ipcns_enabled.c
ltp/testcases/kernel/containers/sysvipc/runipcnstest.sh
ltp/testcases/kernel/containers/sysvipc/runtests_noltp.sh
ltp/testcases/kernel/containers/sysvipc/shmnstest.c
ltp/testcases/kernel/containers/utsname/Makefile
ltp/testcases/kernel/containers/utsname/README
ltp/testcases/kernel/containers/utsname/check_utsns_enabled.c
ltp/testcases/kernel/containers/utsname/runtests_noltp.sh
ltp/testcases/kernel/containers/utsname/runutstest.sh
ltp/testcases/kernel/containers/utsname/utstest.c

LTP-20071130

1)  Log Message: lcov: fix for problem resulting in lcov aborting with "ERROR: reading string"
File(s) Affected:
/cvsroot/ltp/utils/analysis/lcov/bin

2) Log Message: Update to OpenHPI 2.10.1 (see www.openhpi.org for more info)
File(s) Affected:
ltp/testcases/open_hpi_testsuite

3) Log Message: This patch by Jeff Mahoney <jeffm@suse.com> changes the test to use the read-only end of the pipe with PROT_READ permissions, which passes the FMODE_READ check on the file descriptor and returns -ENODEV.
File(s) Affected:
ltp/testcases/open_posix_testsuite/conformance/interfaces/mmap/23-1.c

4) Log Message: Yi Yang <yang.y.yi@gmail.com> fixed some anomalies for ext2/ext3 and creat system call
File(s) Affected:
ltp/testcases/kernel/fs/doio/growfiles.c
ltp/testcases/kernel/syscalls/creat/creat05.c

5) Log Message: Removing Propreitary and Confidential Information to Suit to GPLv2 License
File(s) Affected:
testcases/kernel/ipc/ipc_stress/message_queue_test_01.c
testcases/kernel/ipc/ipc_stress/message_queue_test_02_ctl.c
testcases/kernel/ipc/ipc_stress/message_queue_test_02_get.c
testcases/kernel/ipc/ipc_stress/message_queue_test_02_rcv.c
testcases/kernel/ipc/ipc_stress/message_queue_test_02_snd.c
testcases/kernel/ipc/ipc_stress/message_queue_test_04.c
testcases/kernel/ipc/ipc_stress/message_queue_test_05.c
testcases/kernel/ipc/ipc_stress/pipe_test_01.c
testcases/kernel/ipc/ipc_stress/pipe_test_02.c
testcases/kernel/ipc/ipc_stress/semaphore_test_01.c
testcases/kernel/ipc/ipc_stress/semaphore_test_02.c
testcases/kernel/ipc/ipc_stress/semaphore_test_03.c
testcases/kernel/ipc/ipc_stress/shmem_test_01.c
testcases/kernel/ipc/ipc_stress/shmem_test_02.c
testcases/kernel/ipc/ipc_stress/shmem_test_03.c
testcases/kernel/ipc/ipc_stress/shmem_test_04.c
testcases/kernel/ipc/ipc_stress/shmem_test_05.c
testcases/kernel/ipc/ipc_stress/shmem_test_06.c
testcases/kernel/ipc/ipc_stress/shmem_test_07.c
testcases/kernel/ipc/ipc_stress/signal_test_01.c
testcases/kernel/ipc/ipc_stress/signal_test_02.c
testcases/kernel/ipc/ipc_stress/signal_test_03.c
testcases/kernel/ipc/ipc_stress/signal_test_04.c
testcases/kernel/ipc/ipc_stress/signal_test_05.c
testcases/kernel/ipc/ipc_stress/signal_test_06.c
testcases/kernel/ipc/ipc_stress/signal_test_07.c
testcases/kernel/sched/clisrv/pthserv.c
testcases/kernel/sched/clisrv/readline.c
testcases/kernel/sched/clisrv/writen.c
testcases/kernel/sched/sched_stress/sched_driver.c
testcases/kernel/sched/sched_stress/sched.c
testcases/kernel/sched/sched_stress/sched.h
testcases/kernel/sched/sched_stress/sched_tc0.c
testcases/kernel/sched/sched_stress/sched_tc1.c
testcases/kernel/sched/sched_stress/sched_tc2.c
testcases/kernel/sched/sched_stress/sched_tc3.c
testcases/kernel/sched/sched_stress/sched_tc4.c
testcases/kernel/sched/sched_stress/sched_tc5.c
testcases/kernel/sched/sched_stress/sched_tc6.c

6) Log Message: Make the test working on busybox system, where 'df' command
doesn't support -P option, neither accept a directory as input,
Submitted by Carmelo AMOROSO <carmelo.amoroso@st.com>
File(s) Affected:
ltp/testcases/kernel/fs/doio/rwtest.sh

7) Log Message:
This patch allows network stress tests to be run on different subnet
configuration by using some macros for IP addresses configuration.
It doesn't affect default values.
Submitted by Carmelo AMOROSO <carmelo.amoroso@st.com>
File(s) Affected:
ltp/testcases/network/stress/broken_ip/broken_ip4-checksum
ltp/testcases/network/stress/broken_ip/broken_ip4-dstaddr
ltp/testcases/network/stress/broken_ip/broken_ip4-fragment
ltp/testcases/network/stress/broken_ip/broken_ip4-ihl
ltp/testcases/network/stress/broken_ip/broken_ip4-protcol
ltp/testcases/network/stress/broken_ip/broken_ip4-totlen
ltp/testcases/network/stress/broken_ip/broken_ip4-version
ltp/testcases/network/stress/dns/dns4-stress
ltp/testcases/network/stress/ftp/ftp4-download-stress
ltp/testcases/network/stress/ftp/ftp4-upload-stress
ltp/testcases/network/stress/http/http4-stress
ltp/testcases/network/stress/icmp/uni-basic/icmp4-uni-basic01
ltp/testcases/network/stress/interface/if4-addr-change
ltp/testcases/network/stress/interface/if4-alias-adddel
ltp/testcases/network/stress/interface/if4-alias-addlarge
ltp/testcases/network/stress/interface/if4-mtu-change
ltp/testcases/network/stress/interface/if4-route-adddel
ltp/testcases/network/stress/interface/if4-route-addlarge
ltp/testcases/network/stress/interface/if4-updown
ltp/testcases/network/stress/multicast/grp-operation/mcast4-grpope01
ltp/testcases/network/stress/multicast/grp-operation/mcast4-grpope02
ltp/testcases/network/stress/multicast/grp-operation/mcast4-grpope03
ltp/testcases/network/stress/multicast/grp-operation/mcast4-grpope04
ltp/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
ltp/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
ltp/testcases/network/stress/multicast/query-flood/mcast4-queryfld01
ltp/testcases/network/stress/multicast/query-flood/mcast4-queryfld02
ltp/testcases/network/stress/multicast/query-flood/mcast4-queryfld03
ltp/testcases/network/stress/multicast/query-flood/mcast4-queryfld04
ltp/testcases/network/stress/multicast/query-flood/mcast4-queryfld05
ltp/testcases/network/stress/multicast/query-flood/mcast4-queryfld06
ltp/testcases/network/stress/route/route4-change-dst
ltp/testcases/network/stress/route/route4-change-gw
ltp/testcases/network/stress/route/route4-change-if
ltp/testcases/network/stress/route/route4-ifdown
ltp/testcases/network/stress/route/route4-redirect
ltp/testcases/network/stress/route/route4-rmmod
ltp/testcases/network/stress/ssh/ssh4-stress
ltp/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport01
ltp/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport01
ltp/testcases/network/stress/tcp/uni-basic/tcp4-uni-basic01
ltp/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport01
ltp/testcases/network/stress/udp/uni-basic/udp4-uni-basic01
testscripts/networkstress.sh

8) Log Message: Patch to check file permission first, and then skip write-only
files,and report them as INFO. Submitted by Cai Qian <qcai@redhat.com>
File(s) Affected:
ltp/testcases/kernel/fs/proc/proc01.c

9) Log Message:
Patch to skip read of all /proc/<pid> directories except /proc/self.
Therefore, it make sure that at least one /proc/<pid> has been read,
and also the directory will stay as long as the life time of the test.
Submitted by Cai Qian <qcai@redhat.com>
File(s) Affected:
ltp/testcases/kernel/fs/proc/proc01.c

10) Log Message: Create testfile in tmpdir to be consistent with other tests by Kumar Gala <galak@kernel.crashing.org>
File(s) Affected:
ltp/testcases/kernel/syscalls/splice/splice01.c
ltp/testcases/kernel/syscalls/tee/tee01.c

11) Log Message: Close the fd's we open when running on NFS to avoid warnings, submitted by Kumar Gala <galak@kernel.crashing.org>
File(s) Affected:
ltp/testcases/kernel/syscalls/creat/creat01.c
ltp/testcases/kernel/syscalls/open/open04.c
ltp/testcases/kernel/syscalls/writev/writev06.c

12) Log Message:Close fd's to make running on NFS work, submitted by Kumar Gala <galak@kernel.crashing.org>
File(s) Affected:
ltp/testcases/kernel/syscalls/creat/creat05.c

13) Log Message: Add a lib routine to tell us if we are running on NFS Submitted by Kumar Gala <galak@kernel.crashing.org>
File(s) Affected:
ltp/include/test.h
File(s) Added:
ltp/lib/tst_is_cwd_nfs.c

14) Log Message: Adds arm to the architectures where SHMBLA != PAGESIZE, submitted by Khem Raj <kraj@mvista.com>
File(s) Affected:
ltp/testcases/kernel/mem/shmt/shmt09.c

15) Log Message: New posix_fadvise and fadvise64 Testcases contributed by Masatake YAMATO <yamato@redhat.com>
File(s) Affected:
ltp/runtest/syscalls
New File(s) Addes:
ltp/testcases/kernel/syscalls/fadvise/Makefile
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise01.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise02.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
ltp/testcases/kernel/syscalls/fadvise/posix_fadvise04.c

16) Log Message:
Existing code in LTP Kdump has been enhanced to test dump on network and
different partitions. The attached patch supports following features
-Dump on EXT3 partition, partition referenced by partition name, Label and
UUID
-Dump on raw partition
-Dump on Network dump server
-Test dump filtering feature of Kdump
-Test Link Delay feature of Kdump
-Result analysis has been implemented  for local dumping and network
dumping.
-Result analysis has been implemented for filtering as well as link delay.
But the analysis part can be enahnced further
-'setup' file has been modified
      * To accept inputs from user or file
      * To automate configuration of bootloader file to reserve memory for
crashkernel
      * To test basic or exchausted list of LKDTM test
      * To accept user inputs for dumping on different partitions and for
network dumping
-'master' file has been modified
      *To invoke result analysis code of dumping in different destinations
      *to remove cronjob when execution is done, this is a bug fix
-'test' file has been modifed
      *To set kdump.conf file based on user input and trigger crash
-'Makefile' has been modified not to run 'setup'
-Added new files
      *kdump_propogate ->To add ssh public keys to network dump server
      *verify_dump ->To verify dump in different partitions and network
dumping
      *lkdtm.orig is replaced with lkdtm.base for basic testcases of lkdtm,
lkdtm.exha for exhausted list of lkdtm testcases.

Submitted by: Poornima Nayak <Poornima.Nayak@in.ibm.com>

File(s) Affected:
ltp/testcases/kdump/Makefile ltp/testcases/kdump/README
ltp/testcases/kdump/TEST_PLAN.txt ltp/testcases/kdump/master
ltp/testcases/kdump/setup ltp/testcases/kdump/test
File(s) Added:
ltp/testcases/kdump/kdump_propagate
ltp/testcases/kdump/verify_dump
ltp/testcases/kdump/testlists/lkdtm.base
ltp/testcases/kdump/testlists/lkdtm.exha
File(s) Removed:
ltp/testcases/kdump/testlists/lkdtm.orig

17) Log Message: Fix endless loop hit messages for kdump test case, by Cai Qian <qcai@redhat.com>
File(s) Affected:
ltp/testcases/kdump/rhtools/lkdtm_mod/lkdtm.c

18) Log Message: Fix for vmcore generation and vmcore verification are at different hours, by Cai Qian <qcai@redhat.com>
File(s) Affected:
ltp/testcases/kdump/master

19) Log Message: Changes that allows adp to run top on batch mode instead of interactively, submitted by Rafael Folco <rfolco@linux.vnet.ibm.com>
File(s) Affected:
ltp/testscripts/adp.sh

20) Log Message: Changes to prevent fcntl14 test case to crash on uclinux on blackfin board, submitted by Vivi <violetleigh@gmail.com>
File(s) Affected:
ltp/testcases/kernel/syscalls/fcntl/fcntl14.c

21) Log Message: New HTML format for LTP Output
File(s) Affected:
ltp/runltp
File(s) Added:
ltp/tools/genhtml.pl
ltp/tools/html_report_header.txt

22) Log Message: Add IA64 support to kdump test case, submitted by Cai Qian <qcai@redhat.com>
File(s) Affected:
ltp/testcases/kdump/setup

23) Log Message: Patch to fix summary script of LTP kdump (can't retrieve LOG correctly), submitted by Lin Feng Shen (shenlinf@cn.ibm.com)
File(s) Affected:
ltp/testcases/kdump/summary

24) Log Message: Fix for master script of LTP kdump (Which tries to copy /proc/config.gz though it's not available), submitted by Cijurajan Kollanoor (cijurajan@in.ibm.com)
File(s) Affected:
ltp/testcases/kdump/master

25) Log Message: Report TCONF for swapon/off test when run on tmpfs or nfs, submitted by Kumar Gala <galak@kernel.crashing.org>
File(s) Affected:
testcases/kernel/syscalls/swapoff/swapoff01.c
testcases/kernel/syscalls/swapoff/swapoff02.c
testcases/kernel/syscalls/swapon/swapon01.c
testcases/kernel/syscalls/swapon/swapon02.c
testcases/kernel/syscalls/swapon/swapon03.c

26) Log Message: This does testing for the missing functionalities of MADV_REMOVE, MADV_DONTFORK & MADV_DOFORK, submitted by Pavan, pnaregun@in.ibm.com
File(s) Added:
ltp/testcases/kernel/syscalls/madvise/madvise03.c

27) Log Message: Added an Option to mail-back LTP reports, by Subrata Modak <subrata@linux.vnet.ibm.com>
File(s) Affected:
ltp/runltp

28) Log Message: Added sendfile64 support and new testcase sendfile04.c in this regard, by Masatake YAMATO <yamato@redhat.com>
File(s) Affected:
runtest/syscalls
testcases/kernel/syscalls/sendfile/Makefile
testcases/kernel/syscalls/sendfile/sendfile02.c
testcases/kernel/syscalls/sendfile/sendfile03.c
File(s) Added:
ltp/testcases/kernel/syscalls/sendfile/sendfile04.c

29) Log Message: Proper Inputs for Memory Reservation for Crask Kernel on various architectures, by Poornima Nayak <Poornima.Nayak@in.ibm.com>
File(s) Affected:
ltp/testcases/kdump/setup

LTP-20071031

1)  Log Message:
lcov: workaround for gcc 4.1.0 .gcno file oddness by Peter Oberparleiter (oberpapr@users.sourceforge.net)
scott.heavner@philips.com wrote:
I'm trying to use lcov 1.6 with gcov/gcc 4.1.0. The geninfo parser was
aborting on a small number of .gcno files. I've patched my local copy so
that geninfo prints out the offset of the error and skips the remainder of
the problem file

File(s) Affected:
ltp/utils/analysis/lcov/bin/geninfo

2) Log Message: Carmelo (carmelo.amoroso@st.com) fixed OPEN_MAX macro issue, from kernel 2.6.23 onwards
File(s) Affected:
ltp-full-20070930/testcases/kernel/syscalls/fork/fork09.c
ltp-full-20070930/testcases/kernel/ipc/ipc_stress/pipe_test_02.c

3) Log Message: Ported this to LTP Format
File(s) Affected:
ltp/runtest/syscalls
File(s) Added:
ltp/testcases/kernel/syscalls/remap_file_pages/Makefile
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages01.c

4) Log Message: Open Posix Test suite updation by Patrick Kirsch <pkirsch@suse.de>
File(s) Affected:
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_close/1-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_close/2-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_close/3-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/1-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/2-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/4-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/5-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_open/1-4.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/1-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/1-2.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/2-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/4-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/5-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/6-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/1-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/2-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/4-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/1-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/1-2.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/11-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/12-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/3-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/5-1.c
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/7-1.c

5) Log Message: Olof Johansson <olof@lixom.net> corrected the message when there are no entries in /etc/group for 'nobody' and 'bin'
File(s) Affected:
ltp/testcases/kernel/syscalls/creat/creat08.c

6) Log Message: Andi Kleen <ak@novell.com> changed the way IN_MOVE_SELF works with old kernel
File(s) Affected:
ltp/testcases/kernel/syscalls/inotify/inotify02.c

7) Log Message: Ricardo (rsalveti@linux.vnet.ibm.com) added another testcase for remap_file_pages() syscall for better error checking
File(s) Affected:
ltp/runtest/syscalls
File(s) Added:
ltp/testcases/kernel/syscalls/remap_file_pages/remap_file_pages02.c

8) Log Message:
Better Ways to Integrate "ltp/tools/genload/stress" with  "ltp/runltp" by
Ricardo and Subrata,
This is the second version of Subrata's patch, this is intended to
fully exploit all the features provided by "ltp/tools/genload/stress".

New option:
 -D Run LTP under additional background Load on Secondary Storage

Options that have a different interface:
 -i Run LTP under additional background Load on IO Bus
 -m Run LTP under additional background Load on Main memory

Remember that this change will break the script interface.
File(s) Affected:
ltp/runltp

9) Log Message: Breno Leitao (leitao@linux.vnet.ibm.com) fixed these for running on NFS mounted systems
File(s) Affected:
ltp/testcases/kernel/syscalls/chdir/chdir01.c
ltp/testcases/kernel/syscalls/creat/creat03.c
ltp/testcases/kernel/syscalls/creat/creat05.c
ltp/testcases/kernel/syscalls/dup2/dup202.c
ltp/testcases/kernel/syscalls/dup2/dup203.c
ltp/testcases/kernel/syscalls/execve/execve04.c
ltp/testcases/kernel/syscalls/flock/flock01.c
ltp/testcases/kernel/syscalls/flock/flock02.c
ltp/testcases/kernel/syscalls/flock/flock03.c
ltp/testcases/kernel/syscalls/flock/flock04.c
ltp/testcases/kernel/syscalls/flock/flock05.c
ltp/testcases/kernel/syscalls/flock/flock06.c
ltp/testcases/kernel/syscalls/fork/fork07.c
ltp/testcases/kernel/syscalls/mprotect/mprotect02.c
ltp/testcases/kernel/syscalls/mprotect/mprotect03.c
ltp/testcases/kernel/syscalls/open/open04.c
ltp/testcases/kernel/syscalls/open/open05.c
ltp/testcases/kernel/syscalls/read/read04.c
ltp/testcases/kernel/syscalls/readv/readv01.c
ltp/testcases/kernel/syscalls/readv/readv02.c
ltp/testcases/kernel/syscalls/recvmsg/Makefile
ltp/testcases/kernel/syscalls/recvmsg/recvmsg01.c
ltp/testcases/kernel/syscalls/rmdir/rmdir02.c
ltp/testcases/kernel/syscalls/write/write03.c
ltp/testcases/kernel/syscalls/write/write05.c
ltp/testcases/kernel/syscalls/writev/writev01.c
ltp/testcases/kernel/syscalls/writev/writev02.c
ltp/testcases/kernel/syscalls/writev/writev03.c
ltp/testcases/kernel/syscalls/writev/writev04.c
ltp/testcases/kernel/syscalls/writev/writev05.c

LTP-20070930

1)  Log Message: "seebs@users.sf.net" wanted to fix some anomalies in "acct01" testcase 
File(s) Affected:
ltp/testcases/kernel/syscalls/acct/acct01.c

2)  Log Message: "risrajak@linux.vnet.ibm.com" made modifications to check whether the Kernel is UTSNAMESPACE or SYSVIPC_NAMSPACE enabled
File(s) Affected:
ltp/testcases/kernel/containers/container_test.sh
ltp/testcases/kernel/containers/sysvipc/Makefile
File(s) Added:
ltp/testcases/kernel/containers/sysvipc/check_ipcns_enabled.c

3)  Log Message: "rsalveti@linux.vnet.ibm.com" fixed exit code for inotify01 and inotify02 when running with kernel < 2.6.13
File(s) Affected:
ltp/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c

4)  Log Message: Fixing "ioperm02" testcase for kernel comparisns
File(s) Affected:
ltp/testcases/kernel/syscalls/ioperm/ioperm02.c

5)  Log Message: "Sivakumar.C@in.ibm.com" induced time for Statistics collection in RHEL
File(s) Affected:
ltp/testcases/kernel/numa/numa01.sh

6)  Log Message: Removing these Testcases as they do not satisfy GPLv2 License Agreement
File(s) Deleted:
ltp/testcases/network/nfs/cthon04
        Makefile README READWIN.txt Testitems domount.c getopt.c runtests server tests.h tests.init unixdos.h
ltp/testcases/network/nfs/cthon04/basic
        Makefile runtests runtests.mvs subr.c test1.c test2.c test3.c test4.c test4a.c test5.c test5a.c test5b.c test6.c test7.c test7a.c test7b.c test8.c test9.c
ltp/testcases/network/nfs/cthon04/basic/console
        build.bat test1.mak test2.mak test3.mak test4a.mak test4.mak test5a.mak test5b.mak test5.mak test6.mak test7a.mak test7b.mak test7.mak test8.mak test9.mak
ltp/testcases/network/nfs/cthon04/basic/dos
        build.bat test1.mak test2.mak test3.mak test4a.mak test4.mak test5a.mak test5b.mak test5.mak test6.mak test7a.mak test7b.mak test7.mak test8.mak test9.mak
ltp/testcases/network/nfs/cthon04/basic/scripts
        basic2.bat basic3.bat basic.bat cthon00.mst cthon01.mst cthon02.mst cthon03.mst cthon04.mst cthon.bat runcthon.prl
ltp/testcases/network/nfs/cthon04/general
        large4.sh large.c Makefile makefile.tst mkdummy nroff.in rmdummy runtests runtests.wrk stat.c
ltp/testcases/network/nfs/cthon04/lock
        Makefile runtests tlock.c
ltp/testcases/network/nfs/cthon04/special
        bigfile2.c bigfile.c dupreq.c excltest.c freesp.c fstat.c holey.c Makefile negseek.c nfsidem.c nstat.c op_chmod.c op_ren.c op_unlk.c READWIN.txt rename.c
        rewind.c runtests runtests.wrk stat2.c stat.c telldir.c touchn.c truncate.c
ltp/testcases/network/nfs/cthon04/special/console
        build1.bat build.bat dupreq.mak excltest.mak fstat.mak holey.mak negseek.mak nfsidem.mak nstat.mak op_chmod.mak op_ren.mak op_unlk.mak rename.mak
        rewind.mak stat2.mak stat.mak touchn.mak truncate.mak
ltp/testcases/network/nfs/cthon04/special/dos
        build1.bat build.bat dupreq.mak excltest.mak fstat.mak holey.mak negseek.mak nfsidem.mak nstat.mak op_chmod.mak op_ren.mak op_unlk.mak rename.mak
        rewind.mak stat2.mak stat.mak touchn.mak truncate.mak
ltp/testcases/network/nfs/cthon04/special/scripts
        run.bat
ltp/testcases/network/nfs/cthon04/tools
        dirdmp.c dirprt.c Makefile pmapbrd.c pmaptst.c README tcp.c tcpd.c udp.c udpd.c

7)  Log Message: This guides you to the new location of CTHON04, as, these Testcases has been removed from LTP for want of GPLv2 License Agreement
File(s) Added:
ltp/testcases/network/nfs/CTHON04_README

8)  Log Message: ¨ciju@linux.vnet.ibm.com¨ fixed some Script errors while configuring ltp-kdump
File(s) Affected:
ltp/testcases/kdump/master
ltp/testcases/kdump/setup

9)  Log Message: KDUMP Scripts must be made executable before testing (Initial CVS Checkin error)
File(s) Affected:
ltp/testcases/kdump/Makefile

10) Log Message: Dont use the optional POSIX postfix operator as some crappy shells actually omit it, by ¨vapier@gentoo.org¨
File(s) Affected:
ltp/testcases/network/generate.sh

11) Log Message: Included Mandatory Failed file generation and creation of both outout and failed files even if absolute path is not an option to runltp
File(s) Affected:
ltp/runltp

12) Log Message: Ricardo cleaned up duplicate code for enhancements in output and failed files generation
File(s) Affected:
ltp/runltp

13) Log Message: Updating  Credits to include new contributions from members
File(s) Affected:
ltp/CREDITS

14) Log Message: Jeff Burke wanted additional INFO when the test fails in the calloc portion of the test
File(s) Affected:
ltp/testcases/kernel/mem/mem/mem02.c

15) Log Message: Randy temporarily fixed the var_args expander in lib/tst_res.c
File(s) Affected:
ltp/lib/tst_res.c

16) Log Message: Patrick fixed the too chort char array
File(s) Affected:
ltp/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/5-1.c

17) Log Message: Ricardo Fixed the way by which tst_resm should be called from Shell Test Script
File(s) Affected:
ltp/runtest/tcp_cmds
ltp/testcases/network/tcp_cmds/ping/ping01

18) Log Message: James Puderer fixed -d option in LTP for better handling of temporary directory
File(s) Affected:
ltp/runltp

19) Log Message: issue a warning if unable to actually test if F_SETLEASE is not defined
File(s) Affected:
ltp/testcases/kernel/syscalls/fcntl/fcntl23.c
ltp/testcases/kernel/syscalls/fcntl/fcntl24.c
ltp/testcases/kernel/syscalls/fcntl/fcntl25.c
ltp/testcases/kernel/syscalls/fcntl/fcntl26.c
ltp/testcases/kernel/syscalls/fcntl/fcntl27.c
ltp/testcases/kernel/syscalls/fcntl/fcntl28.c

20) Log Message: add -D_GNU_SOURCE since we have tests in here that test GNU-specific features (like F_SETLEASE)
File(s) Affected:
ltp/testcases/kernel/syscalls/fcntl/Makefile

21) Log Message: Update to OpenHPI 2.10.0 (see www.openhpi.org for more info)
File(s) Affected:
ltp/testcases/open_hpi_testsuite

LTP-20070831

1)  Log Message: "rsalveti@br.ibm.com" fixed write05 that failed with LTP 20070331 on Fedora 7 GA
File(s) Affected:
ltp/testcases/kernel/syscalls/write/write05.c

2)  Log Message: "dmarlin@redhat.com" corrected fail message in data_space testcase
File(s) Affected:
ltp/testcases/kernel/mem/vmtests/data_space.c

3)  Log Message: "liudeyan@cn.ibm.com" made mmap1 to be terminated by Ctrl-C
File(s) Affected:
ltp/testcases/kernel/mem/mtest06/mmap1.c

4)  Log Message: "suzuki@in.ibm.com" fixed times03, where it failed to generate report on user time on RHEl5.1 early build(2.6.18-32.el5)
File(s) Affected: ltp/testcases/kernel/syscalls/times/times03.c

5)  Log Message: gcov-kernel: added eabi-compatibility patch, renamed .diff to .patch by "oberpapr@users.sourceforge.net"
File(s) Added:
ltp/utils/analysis/gcov-kernel/linux-2.6.21-gcov-arm-eabi.patch
ltp/utils/analysis/gcov-kernel/linux-2.6.22-gcov-arm-eabi.patch
File(s) Deleted:
ltp/utils/analysis/gcov-kernel/linux-2.6.21-gcov-arm-eabi.diff

6)  Log Message: lcov: fixed spec file
File(s) Affected:
ltp/utils/analysis/lcov/rpm/lcov.spec

7)  Log Message: gcov-kernel: removed outdated FAQ entry
File(s) Affected:
ltp/utils/analysis/gcov-kernel/FAQ

8)  Log Message: gcov-kernel: added Makefile
File(s) Added: ltp/utils/analysis/gcov-kernel/Makefile

9)  Log Message: lcov: Makefile for release 1.6
File(s) Affected:
/cvsroot/ltp/utils/analysis/lcov/Makefile

10) Log Message: lcov: Makefile for post-release
File(s) Affected:
/cvsroot/ltp/utils/analysis/lcov/Makefile

11) Log Message: lcov: add experimental option "--norecursion"
File(s) Affected:
/cvsroot/ltp/utils/analysis/lcov/bin/geninfo
/cvsroot/ltp/utils/analysis/lcov/bin/lcov

12) Log Message: Changes to make testcases/kernel/numa/numa01.sh executable
File(s) Affected:
ltp/testcases/kernel/numa/Makefile

13) Log Message: "carmelo.amoroso@st.com" changed the Default values for MAXSIZE and csize
File(s) Affected:
ltp/testcases/kernel/mem/vmtests/stack_space.c

14) Log Message: "brenohl@br.ibm.com" wanted to handle file descriptors properly
File(s) Affected:
ltp/testcases/kernel/syscalls/mkdir/mkdir03.c
ltp/testcases/kernel/syscalls/mmap/mmap09.c
ltp/testcases/kernel/syscalls/open/open07.c
ltp/testcases/kernel/syscalls/sendfile/sendfile03.c

15) Log Message: "rsalvetidev@linux.vnet.ibm.com" says that this version can handle when the distro has MAX_SWAPFILES as 30 or 32
File(s) Modified:
ltp/runtest/ltplite ltp/runtest/stress.part3
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/swapon/swapon02.c
File(s) Added:
ltp/testcases/kernel/syscalls/swapon/swapon03.c

16) Log Message: Containers Testcases Plan
File(s) Added:
ltp/testcases/kernel/containers/TEST_PLAN.txt

17) Log Message: LTP-KDUMP Test-Case Plan
File(s) Added:
ltp/testcases/kdump/TEST_PLAN.txt

18) Log Message: Update to OpenHPI 2.9.3 (www.openhpi.org for more info)
File(s) Affected:
ltp/testcases/open_hpi_testsuite/


LTP-20070731

1)  Log Message: lcov: preparations for new release by "oberpapr@users.sourceforge.net"
- updated CHANGES file
- added compat-libtool + no-compat-libtool option
- changed libtool default to on (due to popular request)
- added checksum option
- changed checksum default to off (to reduce cpu time + file size)
- added geninfo_checksum option to lcovrc, deprecated geninfo_no_checksum
- added geninfo_compat_libtool option to lcovrc
- minor update of README file
File(s) Affected:
ltp/utils/analysis/lcov/CHANGES
ltp/utils/analysis/lcov/README
ltp/utils/analysis/lcov/lcovrc
ltp/utils/analysis/lcov/bin/geninfo
ltp/utils/analysis/lcov/bin/lcov

2)  Log Message: update manpage by "oberpapr@users.sourceforge.net"
File(s) Affected:
ltp/utils/analysis/lcov/man/lcov.1

3)  Log Message: "sachinp@in.ibm.com" has fixed a probe point definition from 'll_rw_lock' to 'll_rw_block'
File(s) Affected:
ltp/testcases/kdump/susetools/lkdtm_mod/lkdtm.c

4)  Log Message: man page update by "oberpapr@users.sourceforge.net"
File(s) Affected:
ltp/utils/analysis/lcov/man/genhtml.1
ltp/utils/analysis/lcov/man/geninfo.1
ltp/utils/analysis/lcov/man/lcov.1

5)  Log Message: lcov: another update in preparation for a new release by "oberpapr@users.sourceforge.net"
File(s) Affected:
ltp/utils/analysis/lcov/bin/lcov
ltp/utils/analysis/lcov/man/lcovrc.5
ltp/utils/analysis/lcov/CHANGES
ltp/utils/analysis/lcov/lcovrc

6)  Log Message: fixed bug that would not delete .gcda files when using -z, by "oberpapr@users.sourceforge.net"
File(s) Affected:
ltp/utils/analysis/lcov/CHANGES
ltp/utils/analysis/lcov/bin/lcov

7)  Log Message: lcov: - add new option --initial to get zero coverage data from graph files by "oberpapr@users.sourceforge.net"
File(s) Affected:
ltp/utils/analysis/lcov/CHANGES
ltp/utils/analysis/lcov/bin/geninfo
ltp/utils/analysis/lcov/bin/lcov
ltp/utils/analysis/lcov/man/geninfo.1
ltp/utils/analysis/lcov/man/lcov.1

8)  Log Message: "carmelo.amoroso@st.com" fixed the anomaly when "SHLBA != getpagesize()", like in SH architecture
File(s) Affected:
ltp/testcases/kernel/mem/shmt/shmt09.c

9)  Log Message: "hdeller@users.sf.net" fixed unitialized variable useage in "lseek09" testcase
File(s) Affected:
ltp/testcases/kernel/syscalls/lseek/lseek09.c

10) Log Message: "naveenspen@gmail.com" pointed out that syslog_cmd="/etc/init.d/syslog" should be used irrespective of any Distro
File(s) Affected:
ltp/testcases/kernel/syscalls/syslog/syslog01
ltp/testcases/kernel/syscalls/syslog/syslog02
ltp/testcases/kernel/syscalls/syslog/syslog03
ltp/testcases/kernel/syscalls/syslog/syslog04
ltp/testcases/kernel/syscalls/syslog/syslog05
ltp/testcases/kernel/syscalls/syslog/syslog06
ltp/testcases/kernel/syscalls/syslog/syslog07
ltp/testcases/kernel/syscalls/syslog/syslog08
ltp/testcases/kernel/syscalls/syslog/syslog09
ltp/testcases/kernel/syscalls/syslog/syslog10

11) Log Message: "rsalveti@linux.vnet.ibm.com" pointed out to have same "fsx-linux" testcase for "fs", "ltp-aiodio" and "nfs"
File(s) Affected:
ltp/testcases/kernel/io/ltp-aiodio/fsx-linux.c
ltp/testcases/network/nfs/fsx-linux/fsx-linux.c

12) Log Message: Randy Dunlap writes: Fix printf format warnings
File(s) Affected:
ltp/testcases/network/stress/ns-tools/Makefile
ltp/testcases/network/stress/ns-tools/ns-igmp_querier.c
ltp/testcases/network/stress/ns-tools/ns-mcast_join.c
ltp/testcases/network/stress/ns-tools/ns-mcast_receiver.c
ltp/testcases/network/stress/ns-tools/ns-tcpserver.c

13) Log Message: getsockopt() takes a socklen_t, not an int, as its optlen
File(s) Affected:
ltp/testcases/network/stress/ns-tools/ns-tcpclient.c
ltp/testcases/network/stress/ns-tools/ns-tcpserver.c
ltp/testcases/network/stress/ns-tools/ns-udpserver.c

14) Log Message: cleanup file
File(s) Affected:
ltp/testcases/kernel/syscalls/gethostid/gethostid01.c

15) Log Message: back out uclinux changes to something that doesnt spit warnings as reported by Randy Dunlap
File(s) Affected:
ltp/testcases/kernel/syscalls/gethostid/gethostid01.c

16) Log Message: fixup gcc warnings by removing silly pieces of code
File(s) Affected:
ltp/testcases/kernel/mem/mtest06/mmap1.c
ltp/testcases/kernel/mem/mtest06/mmap2.c
ltp/testcases/kernel/mem/mtest06/mmap3.c
ltp/testcases/kernel/mem/mtest06/shmat1.c

17) Log Message: Randy Dunlap writes: Convert mmap1 to use standard test results output format. Correct several typos.
File(s) Affected:
ltp/testcases/kernel/mem/mtest06/Makefile
ltp/testcases/kernel/mem/mtest06/mmap1.c

18) Log Message: gcov-kernel: adding gcov-kernel patch for 2.6.22
File(s) Addes:
ltp/utils/analysis/gcov-kernel/linux-2.6.22-gcov-arm-hack.patch
ltp/utils/analysis/gcov-kernel/linux-2.6.22-gcov.patch

19) Log Message: [1754301] Helge Deller writes: mark hppa/parisc as expecting a segv as well
File(s) Affected:
ltp/testcases/kernel/syscalls/mmap/mmap03.c

20) Log Message: Randy Dunlap writes: convert output to match the standard LTP output
File(s) Affected:
ltp/testcases/kernel/fs/linktest/linktest.pl

21) Log Message: close stdout to remove noise
File(s) Affected:
ltp/testcases/kernel/mem/mtest05/dummy.c

22) Log Message: Randy Dunlap writes: Convert mmstress to use the standard results format
File(s) Affected:
ltp/testcases/kernel/mem/mtest05/Makefile
ltp/testcases/kernel/mem/mtest05/mmstress.c

23) Log Message: "rsalveti@linux.vnet.ibm.com" updated the contact information at ltp-howto doc
File(s) Affected:
ltp/doc/ltp-howto.lyx
ltp/doc/ltp-howto.txt

24) Log Message: "rsalveti@linux.vnet.ibm.com" wants to update this with kernel/fs/fsstress/fsstress.c
File(s) Affected:
ltp/testcases/network/nfs/nfs_fsstress/fsstress.c

25) Log Message: "suzuki@in.ibm.com" added SIGNAL and Address Fault handling capability for all architectures
File(s) Affected:
ltp/testcases/kernel/mem/mtest06/mmap1.c

26) Log Message: "rsalveti@linux.vnet.ibm.com" added more options to 'runltp'
File(s) Affected:
ltp/runltp
ltp/doc/man1/pan.1
ltp/pan/pan.c

27) Log Message: Upgrade to Posix Testsuite 1.5.2
File(s) Affected/Added:
ltp/testcases/open_posix_testsuite

28) Log Message: Fixing Proper Freeing of Memory Chunks
File(s) Affected:
ltp/tools/genload/stress.c

LTP-20070630

1)Log Message: "carmelo.amoroso@st.com" points out the wrong usage of the option -s
File(s) Affected: ltp/testcases/kernel/mem/mtest06/mmap1.c

2)Log Message: "carmelo.amoroso@st.com" pointed out that id (returned by shmget) has to be used for all shm operations
File(s) Affected: ltp/testcases/kernel/mem/mtest06/shmat1.c

3)Log Message: "rsalveti@linux.vnet.ibm.com" fixed the way "inotify" should compile in kernels below 2.6.13
File(s) Affected: ltp/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c

4)Log Message: Removing 'alarm04' testcase call, as alarm04 has been removed to be no-more-valid
File(s) Affected: ltp/runtest/ltplite
ltp/runtest/stress.part3

5)Log Message: "sachinp@in.ibm.com" rectified kdump lkdtm tests for powerpc architecture with RedHat distribution
File(s) Affected: ltp/testcases/kdump/rhtools/lkdtm_mod/lkdtm.c

6)Log Message: "rahaman.riaz@gmail.com" fixed some Thread Handling Anomaly
File(s) Affected: ltp/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/12-1.c

7)Log Message: "rahaman.riaz@gmail.com" fixed ways by which OPEN POSIX displays warnings
File(s) Affected: open_posix_testsuite/conformance/interfaces/sem_unlink/2-2.c
open_posix_testsuite/conformance/interfaces/sigaltstack/9-1.c

8)Log Message: "yxu@suse.de" corrected the way by which pthread_exit() handles pointer argument
File(s) Affected: ltp/testcases/kernel/io/disktest/threading.h

9)Log Message: "rsalveti@linux.vnet.ibm.com" fixed the problem reported at bug [1732287] mtest06/mmap1.c missing run_once check in do loop
File(s) Affected: ltp/runtest/ltplite
ltp/runtest/mm
ltp/runtest/stress.part1
ltp/testcases/kernel/mem/mtest06/mmap1.c

10)Log Message: gcov-kernel: add patches to support arm eabi-compliant gcc
File(s) Affected: /ltp/utils/analysis/gcov-kernel/linux-2.6.18-gcov-arm-eabi.patch
/ltp/utils/analysis/gcov-kernel/linux-2.6.19-gcov-arm-eabi.patch
/ltp/utils/analysis/gcov-kernel/linux-2.6.20-gcov-arm-eabi.patch
/ltp/utils/analysis/gcov-kernel/linux-2.6.21-gcov-arm-eabi.diff

11)Log Message: "dmonakhov@openvz.org" added this test case to check for "fault in pages readable" functionality
File(s) Affected: ltp/runtest/stress.part3
ltp/runtest/syscalls
ltp/runtest/ltplite
File(s) Added:    ltp/testcases/kernel/syscalls/writev/writev06.c

12)Log Message: "risrajak@linux.vnet.ibm.com" added sysvipc (conatainers) namespace testcases
File(s) Added:    ltp/testcases/kernel/containers/sysvipc/Makefile
ltp/testcases/kernel/containers/sysvipc/runipcnstest.sh
ltp/testcases/kernel/containers/sysvipc/runtests_noltp.sh
ltp/testcases/kernel/containers/sysvipc/shmnstest.c
File(s) Affected: ltp/README ltp/testcases/kernel/containers/Makefile
ltp/testcases/kernel/containers/README
ltp/testcases/kernel/containers/container_test.sh

13)Log Message: Randy Dunlap writes: Convert kernel/sched/pthreads/*.c to use the standard message output functions instead of printf().
File(s) Affected: ltp/testcases/kernel/sched/pthreads/pth_str01.c
ltp/testcases/kernel/sched/pthreads/pth_str02.c
ltp/testcases/kernel/sched/pthreads/pth_str03.c

14)Log Message: "rdunlap@xenotime.net" did "mmstress" cleanups to make output unbuffered so that it is not produced repetitively and erroneously
File(s) Affected: ltp/testcases/kernel/mem/mtest05/mmstress.c

15)Log Message: "krisw@us.ibm.com" wants to solve segfault problem with "mount03" on SLES10
File(s) Affected: ltp/testcases/kernel/syscalls/mount/Makefile
ltp/testcases/kernel/syscalls/mount/mount03.c

16)Log Message: as Ricardo Salveti de Araujo points out, dont set CC so it can easily be overridden
File(s) Affected: ltp/testcases/kernel/containers/utsname/Makefile

17)Log Message: "Andreas Dilger" updated "fsx-linux" testcase to include new feature(s) including distributed filesystem coherency
Log Message:    Copyright Statements once added cannot be deleted, however, many Copyright Statements can co-exist
File(s) Affected: ltp/testcases/kernel/fs/fsx-linux/fsx-linux.c

18)Log Message: Fix from "rdunlap@xenotime.net" to use standard test results output
File(s) Affected: ltp/testcases/kernel/mem/mem/mem01.c
ltp/testcases/kernel/mem/mtest01/Makefile
ltp/testcases/kernel/mem/mtest01/mtest01.c
ltp/testcases/misc/math/float/main.c

19)Log Mesage:  "serue@us.ibm.com" fixes conatiner testing with 'unshare' support for lower kernel versions
File(s) Affected: ltp/testcases/kernel/containers/Makefile
ltp/testcases/kernel/containers/container_test.sh

20)Log Message: Fix for Bug no "1736357",tar file is not multiplatform, pointed out by "Neil Brewitt"
File(s) Added:    ltp/testcases/network/nfsv4/locks/deploy_info
File(s) Deleted:  ltp/testcases/network/nfsv4/locks/DEPLOY

21)Log Message: "serue@us.ibm.com" fixes conatiner testing with 'unshare' support for lower kernel versions
File(s) Added:    ltp/testcases/kernel/containers/check_for_unshare.c

22)Log Message: Update to OpenHPI 2.9.2
File(s) Addedd/Modified/Deleted: ltp/testcases/open_hpi_testsuite/

LTP-20070531

-Removing "alarm04.c" & "sig_rev.c" as they are no more valid, fixes Bug no."1236586", pointed by <Sharyathi Nagesh>
ltp/runtest/syscalls
ltp/testcases/kernel/syscalls/alarm/Attic/alarm04.c
ltp/testcases/kernel/syscalls/alarm/Attic/sig_rev.c

-<krisw@us.ibm.com> fixed problem with "expect" in "su01" testcase
ltp/testcases/commands/su/su01_s1

-<muvarov@gmail.com> modified to run kdump tests on non RH and SUSE machines
ltp/testcases/kdump/distro
ltp/testcases/kdump/master
ltp/testcases/kdump/setup

-<muvarov@gmail.com> added summary file for printing results table, and, added reboot command to test script
ltp/testcases/kdump/setup
ltp/testcases/kdump/summary
ltp/testcases/kdump/test

-Removing unwanted Config Variables from 'setup' script as submitted by <sachinp@in.ibm.com>
ltp/testcases/kdump/setup

-<muvarov@gmail.com> removed unnecessary info from summary script
ltp/testcases/kdump/summary

-<doug.chapman@hp.com> points that “clone2” should be used in case of IA64 for the Utsnamespace testcases
ltp/testcases/kernel/containers/libclone/libclone.c
ltp/testcases/kernel/containers/libclone/libclone.h
ltp/testcases/kernel/containers/utsname/check_utsns_enabled.c

-Patch for libclone.h for fixing compilation error on 32 bit Z-series machines, submitted by <amitarora@in.ibm.com>
ltp/testcases/kernel/containers/libclone/libclone.h

-Restoring Hostname to Original after "UTSTEST", fix by <serue@us.ibm.com>
ltp/testcases/kernel/containers/utsname/Makefile
ltp/testcases/kernel/containers/utsname/runtests_noltp.sh
ltp/testcases/kernel/containers/utsname/runutstest.sh

-Applied Patch to fix the wrong usage of pthread_exit, pointed out by <carmelo.amoroso@st.com>
ltp/testcases/kernel/io/disktest/threading.h
ltp/testcases/kernel/mem/mtest05/mmstress.c
ltp/testcases/network/nfs/nfsstress/make_tree.c

-Fix for Bug no. "1537172" => Improper condition decision of mmap(), as reported by <Kongh - bstqc-kh>
ltp/testcases/kernel/ipc/ipc_stress/shmem_test_02.c

-<Nadia Derbey> corrected the checksums for these testcases
ltp/testcases/kernel/ipc/ipc_stress/shmem_test_02.c
ltp/testcases/kernel/ipc/ipc_stress/shmem_test_03.c
ltp/testcases/kernel/ipc/ipc_stress/shmem_test_07.c

-Fix for Bug No. "1537169" => Doesn't handle the special Signal : 34, reported by <Kongh - bstqc-kh>
ltp/testcases/kernel/ipc/ipc_stress/signal_test_05.c

-Fix for Bug No. "1542453", default value of param x doesn't work in 'mmap1', pointed out by <bstqc-victor>
ltp/testcases/kernel/mem/mtest06/mmap1.c

-<carmelo.amoroso@st.com> fixes -v option, thread handling, usage of OPT_MISSING macro, etc
ltp/testcases/kernel/mem/mtest06/mmap1.c

-<carmelo.amoroso@st.com> fixed wrong use of "pthread_exit" input argument and the related "pthread_join"
ltp/testcases/kernel/mem/mtest06/mmap3.c

-<nadia.derbey@bull.net> fixed the use of shmid, exit(0) and readable output
-<carmelo.amoroso@st.com> fixed wrong use of exit_value, shared memory region and pthread_join
ltp/testcases/kernel/mem/mtest06/shmat1.c

-Fix for some anomalies in 'shm_test" case as pointed out by 'Nadia Derbey <Nadia.Derbey@bull.net>'
ltp/testcases/kernel/mem/mtest07/shm_test.c

-<carmelo.amoroso@st.com> fixed ways by which Threads are handled
ltp/testcases/kernel/mem/mtest07/shm_test.c

-Fixing "gethostid01" to work fine on both 32-bit and 64-bit machines, pointed out by <brenohl@br.ibm.com>
ltp/testcases/kernel/syscalls/gethostid/gethostid01.c

-<avagin@sw.ru> submitted new Testcases for "inotify" syscall on both file(s) and folder(s)
ltp/testcases/kernel/syscalls/inotify/Makefile
ltp/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c

-<avagin@sw.ru> added README for "inotify" testcase
ltp/testcases/kernel/syscalls/inotify/README

-<rsalveti@linux.vnet.ibm.com> added proper indentation, EBUSY error and functions in correct place
ltp/testcases/kernel/syscalls/swapon/swapon02.c

-gcov-kernel: adding gcov-kernel patch for 2.6.18
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.18-gcov-arm-hack.patch,
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.18-gcov.patch

-lcov: minor help text update
/cvsroot/ltp/utils/analysis/lcov/bin/lcov

-gcov-kernel: adding gcov-kernel patch for 2.6.19
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.19-gcov-arm-hack.patch,
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.19-gcov.patch

-gcov-kernel: adding gcov-kernel patch for 2.6.20
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.20-gcov-arm-hack.patch,
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.20-gcov.patch

gcov-kernel: adding gcov-kernel patch for 2.6.21
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.21-gcov-arm-hack.patch,
/cvsroot/ltp/utils/analysis/gcov-kernel/linux-2.6.21-gcov.patch

LTP-20070430

-Integration of UTS Namespace Testcases to LTP as submitted by <risrajak@linux.vnet.ibm.com>
ltp/README
ltp/runtest/containers
ltp/runltp
ltp/testcases/kernel/Makefile
ltp/testcases/kernel/containers/Makefile
ltp/testcases/kernel/containers/README
ltp/testcases/kernel/containers/container_test.sh
ltp/testcases/kernel/containers/libclone/Makefile
ltp/testcases/kernel/containers/libclone/libclone.c
ltp/testcases/kernel/containers/libclone/libclone.h
ltp/testcases/kernel/containers/utsname/Makefile
ltp/testcases/kernel/containers/utsname/README
ltp/testcases/kernel/containers/utsname/check_utsns_enabled.c
ltp/testcases/kernel/containers/utsname/runtests_noltp.sh
ltp/testcases/kernel/containers/utsname/runutstest.sh
ltp/testcases/kernel/containers/utsname/utstest.c
ltp/testscripts/test_containers.sh

-Integrating "KDUMP" testcases to LTP Test Suite as Submitted by <sachinp@linux.vnet.ibm.com>
ltp/README
ltp/testcases/Makefile
ltp/testcases/kdump/README
ltp/testcases/kdump/crash_cmds
ltp/testcases/kdump/distro
ltp/testcases/kdump/master
ltp/testcases/kdump/setup
ltp/testcases/kdump/sysinfo
ltp/testcases/kdump/test
ltp/testcases/kdump/tests
ltp/testcases/kdump/verify
ltp/testcases/kdump/rhtools/Makefile
ltp/testcases/kdump/rhtools/OO_Descriptions.txt
ltp/testcases/kdump/rhtools/crasher_mod/Makefile
ltp/testcases/kdump/rhtools/crasher_mod/crasher.c
ltp/testcases/kdump/rhtools/lkdtm_mod/Makefile
ltp/testcases/kdump/rhtools/lkdtm_mod/lkdtm.c
ltp/testcases/kdump/susetools/Makefile
ltp/testcases/kdump/susetools/Attic/OO_Description.txt
ltp/testcases/kdump/susetools/crasher_mod/Makefile
ltp/testcases/kdump/susetools/crasher_mod/crasher.c
ltp/testcases/kdump/testlists/crasher
ltp/testcases/kdump/testlists/Attic/i386-basic
ltp/testcases/kdump/testlists/Attic/i386-lkdtt
ltp/testcases/kdump/testlists/Attic/i386-manual
ltp/testcases/kdump/testlists/lkdtm.orig
ltp/testcases/kdump/testlists/Attic/ppc64-basic
ltp/testcases/kdump/testlists/Attic/ppc64-lkdtt
ltp/testcases/kdump/testlists/Attic/ppc64-manual
ltp/testcases/kdump/testlists/Attic/x86_64-basic
ltp/testcases/kdump/testlists/Attic/x86_64-lkdtt
ltp/testcases/kdump/testlists/Attic/x86_64-manual

- <sachinp@in.ibm.com> removed unwanted files from ltp/testcases/kdump/testlists directory
ltp/testcases/kdump/testlists/Attic/i386-basic
ltp/testcases/kdump/testlists/Attic/ppc64-basic
ltp/testcases/kdump/testlists/Attic/x86_64-basic

-Patch Submitted by <sachinp@linux.vnet.ibm.com> which removes the lkdtt code and adds lkdtm code
ltp/testcases/kdump/test
ltp/testcases/kdump/susetools/Makefile
ltp/testcases/kdump/susetools/Attic/OO_Description.txt
ltp/testcases/kdump/susetools/OO_Descriptions.txt
ltp/testcases/kdump/susetools/lkdtm_mod/Makefile
ltp/testcases/kdump/susetools/lkdtm_mod/lkdtm.c
ltp/testcases/kdump/testlists/Attic/i386-lkdtt
ltp/testcases/kdump/testlists/Attic/i386-manual
ltp/testcases/kdump/testlists/Attic/ppc64-lkdtt
ltp/testcases/kdump/testlists/Attic/ppc64-manual
ltp/testcases/kdump/testlists/Attic/x86_64-lkdtt
ltp/testcases/kdump/testlists/Attic/x86_64-manual

-Patch Submitted by <sachinp@linux.vnet.ibm.com> for some configuration settings as pointed out by <jburke@redhat.com>
-<sachinp@in.ibm.com> added options to select/run crasher/lkdtt tests on SLES
-Patch Submitted by <sachinp@linux.vnet.ibm.com> which removes the lkdtt code and adds lkdtm code
ltp/testcases/kdump/setup

- Patch Applied as submitted by <jburke@redhat.com> for 1)Changed the way runltp makes the temp directory, and 2) removing LOCTMP and adding in the LTPTMP in its place and clean up files when it is done
ltp/runltp
ltp/testcases/commands/tar/tar_tests.sh

-Applied Patch submitted by "elliot_lee", against bug no. "[ 1697311 ] Compile error of 'lib/parse_opts.c' "
ltp/	

-Fix for Bug no. 1671695, Check return codes everywhere, as pointed out by 'Markus Elfring'
ltp/lib/tst_tmpdir.c

-Modifications to prevent Warnings during compilation
ltp/lib/write_log.c

-Changes to include 'egrep' as pointed out by 'kmaffey' [LTP Bug no. 1701305, logrotate_tests.sh fails on CentOS 4.4]
ltp/testcases/commands/logrotate/logrotate_tests.sh

-Patch Submitted by <sachinp@linux.vnet.ibm.com> for some configuration settings as pointed out by <jburke@redhat.com>
ltp/testcases/kdump/README

-Fix for Bug No 1592647, incorrect testcase diotest4-4, as pointed out by "Vagin Andrey"
ltp/testcases/kernel/io/direct_io/diotest4.c

-remove silly reliance on -DLINUX
ltp/testcases/kernel/mem/vmtests/Makefile
ltp/testcases/kernel/mem/vmtests/data_space.c
ltp/testcases/kernel/mem/vmtests/stack_space.c

-Applied Patch to change the way shmat() operates, pointed out/submitted by YI XU<yxu@suse.de>
ltp/testcases/kernel/sched/process_stress/process.c

-Fix for BUG no. "[1607899]" exit02 uses strcmp() on unterminated string, as pointed out by "ndade"
-Fixed Bug No. ['1607881', "exit02 child does close() when description says it does not"], as pointed out by <Nicolas Dade>
ltp/testcases/kernel/syscalls/exit/exit02.c

-Fix for Bug no. '1221744' (fork12 race condition), as pointed by "Carl van Schaik"
ltp/testcases/kernel/syscalls/fork/fork12.c

-Applied Patch as submitted by "creese123" for bug no. ["1694484", semop01 corrupting get_arr.array]
ltp/testcases/kernel/syscalls/ipc/semop/semop01.c

-Fix for Bug no. "1687908"(raised by 'bdubbs'), patch submitted by <doug.chapman@hp.com>
ltp/testcases/kernel/syscalls/mincore/mincore01.c

-Fix for BUG no. "[1608461]" pipe10 calls strcmp() on unterminated string, as pointed out by "ndade"
ltp/testcases/kernel/syscalls/pipe/pipe10.c

-Fix for BUG no. "[1608492]" read04 calls strcmp() on unterminated string as submitted by "ndade"
ltp/testcases/kernel/syscalls/read/read04.c

-Modifications to prevent Warnings during compilation
ltp/testcases/kernel/syscalls/rename/rename14.c

-Fixing 'sysfs01' testcase to make it ask for File System Index of 'proc' instead of 'ext2' as pointed out by <doug.chapman@hp.com>
ltp/testcases/kernel/syscalls/sysfs/sysfs01.c

-Addressing the Issue when RHOST can be an IP_ADDRESS, as pointed out by "Ambar Seksena" <ambar.seksena@calsoftinc.com>
ltp/testcases/network/rpc/rusers/rusers01

-Patch for S390-31/64 Architecture, submitted by "B. N. Poornima"<bnpoorni@in.ibm.com>
ltp/testscripts/ltpstress.sh

LTP-20070331

-make sure people dont try and patch the generated file 
regen.sh

-use POSIX redirection as pointed out by Will Newton 
Makefile

-A fix for bug #29491.  Made more robust for use with the use of initgroups 
fchown04.c

-Fix for Bug no. [ 1671695 ] "Check return codes everywhere" as pointed out by "Markus Elfring" 
write_log.c

-Helge Deller writes: use TST_SIZE rather than sizeof(palfa) as sizeof() evaluates to 27 (+1 for the NUL byte) 
read04.c

-A fix for Bug #31162.  Passes the correct address location to the mincore call.
mincore01.c

-remove silly reliance on -DLINUX 
Makefile, data_space.c, stack_space.c

-cleanup 
sysfs01.c, sysfs02.c, sysfs03.c, sysfs04.c, sysfs05.c, sysfs06.c

-Riaz Rahaman writes: make sure the call to malloc() worked 
semget05.c

-Fix for Bug No. 1427780 (link07 fails) as pointed out correctly by 'Patrick Wyzorski' 
tst_tmpdir.c, link07.c

-A fix for Bug 29304.  The test has been adjusted to handle PPC.  Also in file07 a change was made to check for "tar archive" instead of "GNU tar archive" because sometimes a "POSIX tar archive" is created. 
file_test.sh

-Helge Deller writes: rename parisc to hppa and add tee/vmsplice/splice syscall numbers 
hppa.in, linux_syscall_numbers.h, order, parisc.in

-A patch by Ricardo Salveti De Araujo  that corrects the problem of a dhcpd test failsing when the eth0 device is not used 
dhcpd_tests.sh

-overhaul test case completely and make sure we reset errno as pointed out by Riaz Rahaman 
sysconf01.c

-Removing the size of negative 1 test.  This fixes bug # 28825 
hugeshmget02.c, shmget02.c

-A patch submitted by Raghuveer Raghavendra  to fix the problem of a Child process is waiting for the SIGTERM signal. 
rename14.c

-Henry Yei writes: Adds malloc check and frees memory during cleanup 
semop01.c

-cleanup tests, revert nanosleep() workaround for broken kernels, and fix time comparison as pointed out by Helge Deller 
gettimeofday01.c, gettimeofday02.c

-fixup /proc/sys/kernel/sem so it works properly as pointed out by Henry Yei 
semget05.c

-Carmelo AMOROSO writes: &bad_addr is passed to sysfs when in reality we want to pass bad_addr 
sysfs06.c

-Helge Deller writes: add support for hppa 
Makefile, shmt02.c, shmt04.c, shmt05.c, shmt06.c, shmt07.c, shmt09.c

-Helge Deller writes: use __builtin_return_address(0) rather than "main" to avoid arch-specific details 
diotest4.c

-cleanup code 
shmt02.c, shmt03.c, shmt04.c, shmt05.c, shmt06.c, shmt07.c, shmt08.c, shmt09.c, shmt10.c, semop01.c

LTP-20070228

-Helge Deller writes: when calling open() with O_CREAT, the mode must be
 specified.  vmsplice01.c

-A patch from Yi Xu to add a nanosleep between the first gettimeofday and the 
 next gettimeofday to make sure there has been a measurable time 
 (for gettimeofday function) elapsed gettimeofday02.c

-Corrected problem found by Thomas Schulz.  The syslog.conf file is now backed
 up before any changes are made. syslog05

-Cleaned up lines 161 - 171.  Reading the pid-max value from 
 /proc/sys/kernel/pid_max. getsid02.c

-Passing a 1 instead of 0 to genload with the -hdd option for the -i option.
  This prevents a recursive loop. runltp

-tweak CPPFLAGS so we can find all of our headers 
 Makefile

-The attached patch (from Carol Hebert) corrects some errors and adds some 
 additional tests to the IPMI testcase in pounder2.  
 ipmitool

-Removing the Ping test portion of this test because it is unneeded and 
 causes failures. mc_member

-as pointed out by Helge Deller, make sure we only check the number of bytes 
 that we wrote read04.c

-random updates from Jane Lv for uClinux 
 access05.c, chdir04.c, chroot03.c, creat06.c, execve03.c, semop05.c, 
 shmat01.c,shmctl01.c, link04.c, lstat02.c, mkdir03.c, mknod06.c, open08.c, 
 read02.c, rename08.c, rmdir02.c, rmdir03.c, rmdir05.c, stat03.c, stat06.c, 
 statfs02.c, symlink03.c, truncate03.c

	
LTP-20061222

-fix from Steven J. Hill use memset() instead of bzero() 
netsync.c

-cleanup style 
lftest.c

-fix by Will Newton to just use a normal anonymous mapping 
mmap09.c

-do not use variable names the same as system functions (like stime() or utime()) 
pan.c, tag_report.c, pipeio.c, fptest01.c, netpipe.c

-fix from Jane Lv: large buffers on the stack make uClinux cry 
lftest.c

-A fix for Bug 29489 that updates syslogtst.c for syslog-ng on SLES 10 
syslogtst.c

-Multiple Makefiles had clean up changes made 

-scrub references to _syscall2 
sysfs01.c, sysfs02.c, sysfs03.c, sysfs04.c, sysfs05.c, sysfs06.c

-use = rather than == when testing for equality in portable shell scripts as the latter is not POSIX 
ar01, cron_allow01, cron_deny01, su01, fs_di, fsxtest, bsigntest.sh, digsigtest.sh, twiddletest.sh, verify_seclvl.sh, syslog01, syslog02, syslog03, syslog04, syslog05, syslog06, syslog07, syslog08, syslog09, syslog10, tcore.sh, mc_commo, fsx.sh, nfs01, nfs02, nfs03, nfs04, nfsstat01, nfsstress, ftp03, ftp04, ftp05, rwho01, run.sh, run.sh, run.sh, run.sh, run.sh, tpm_tools.sh, mkrootfs

-put -L path to ltp in LDLIBS for now (even though it is wrong) ... need to find out what LDFLAGS isnt properly being incremented 
Makefile

-this uses bashisms so make sure we require bash 
rwtest.sh

-use memcmp() instead of legacy bcmp() 
fsx-linux.c, fsx-linux.c, symlink01.c, fsx-linux.c

-use syscall() instead of _syscall#() 
HTaffinity.c

-Rename mknod01.c to mknodat01.c for bug # 30083 
mknod01.c, mknodat01.c

-tweak cnt decrement to be POSIX friendly 
generate.sh

LTP-20061121

-Removed an invalid errno value check. 
 diotest4.c

-Fixed the setting of LTPROOT for the bin directory, not just the 
 ltp/testcase/network/multicast/mc_cmds directory for bug 25273 
 mc_cmds

-descend into timers subdir when cleaning 
 Makefile

-This patch amends pounder to build kernel 2.6.18 instead of 2.6.15. 
 build_kernel, memtest.patch, build_kernel, memtest

-dynamically calculate TST_TOTAL rather than hardcoding it 
shmctl01.c, shmctl02.c, shmctl03.c

-Fix from Jane Lv to move large arrays off the stack and into global 
 data section:
 getgroups01.c, getgroups04.c

-This patch makes the pounder control program handle SIGHUP by killing children
 when we're told that the tty closed, else you close the pounder window and 
 various parts of it keep running. 
 run.c

-The readme file has been updated for nfs 
 README

-Disable this test case for kernels below 2.6.17 and not 2.6.16. 
 vmsplice01.c

-This is a patch that allows pounder to record the contents of sysfs when it 
 starts, thus enabling us to take a better snapshot of the system state when
 pounder starts.  It also adds "lspci" into the PCI Device Tree heading per 
 user request. 
 get_hw_info

-Since 2.6.17, _syscall* isn't exported into the user space any more, so all 
 the test cases using _syscall* will fail to be compiled This patch 
 remove _syscall5 from llseek.c and convert to syscall provided by libc.It 
 also includes some cleanups and makes the build cleaner and removes the 
 warning for 
 scsimain.c, llseek.c, scsimain.c

-Backed out the "fix" in Bug 1592647, b/c I don't think the testcase is 
 actually broken. 
 diotest4.c

-touchup code a little to make the expected behavior of test4 more obvious 
 setrlimit01.c


-The random syscall generator has a bug on x86-64 where it only generates 
 random bits for the upper 32 bits of the syscall argument, and then truncates
 the upper 32 bits anyway!  This patch replaces the rand() weirdness with a 
 function that generates N bytes of random data instead. It also adds a -z 
 flag in case one *wants* the zero-arguments behavior; Max Asbock and Russ 
 Weight requested it because zero is a quick way to find kernel code paths
 that don't check userland pointers. 
 CHANGELOG, randasys.c, random_syscall

-Applied fix for Bugs item #1592647 
diotest4.c

-A patch by Jacky Malcles  (The IA-64 architecture sets SHMLBA to 1MB and) The 
 value of the pointer address passed to shmat being set in such a way that
 rounding down to the nearest multiple of SHMLBA results above the current 
 heap. 
 shmt09.c


-Made a change to a comment above the change for 1.11 
 mc_cmds

-Disabling the ping test for now.  The test can pass without this additional 
 check and can cause failures on some distros. 
 mc_commo


-A patch by Suzuki Kp, that removed the definition of HZ from user space for 
 Bug # 28023. 
 adjtimex02.c


-Comment out set -x to remove debug output 
 nfsstat01

LTP-20061017

-A fix for Bug 23587 where the connectathon test failed on linux client with cifs mount to Windows2003 R2 server 
op_chmod.c

-For Linux, 3 is a valide value for the scheduler, as found in the /linux/includ/sched.h file.   For testing and invalid_policy, the invalid_policy value should not be 3 
17-5.c

Ssem_post/5.-1.c According to its intention, #3, call sleep(1) and then alarm(1).  Moving sleep before alarm causes the test to pass  sem_post/8-1.c Although step 3 intended,  The children lock the semaphore. * Make sure the two children are waiting."  Without that caeratn piece of cde which explicity make children wat.  the test will PASS and the children are waiting.  Sem_unlink_1_1 and sem_unline_2_1 "Sem_unlink" is too long for the name of a semaphore for certain architectures 
5-1.c, 8-1.c, 1-1.c, 2-1.c

-When calling pthread_attr_setscope, PHREAD_SCOPE_PROCESS is not supported by linux, change it to PTHREAD_SCOPE_SYSTEM and the test will pass 
20-1.c, 21-1.c, 21-2.c

-Removed the  ":" after 'v' in the getopts line because it is not using optarg. 
runltplite.sh

-Added code to disable tests that will not run on kernels below 2.6.16 
faccessat01.c, fchmodat01.c, fchownat01.c, fstatat01.c, futimesat01.c, linkat01.c, mknod01.c, openat01.c, readlinkat01.c, renameat01.c, symlinkat01.c, tee01.c, unlinkat01.c, vmsplice01.c

-When calling pthread_attr_setscope, PHREAD_SCOPE_PROCESS is not supported by linux, change it to PHTREAD-SCOPE_SYSTEM for testing and then the test passes. 
22-1.c, 22-2.c

-A patch by David Stevens that fixes: 1) Removes signedness warning by changing the type of valsize from int to socklen_t 2) Correct but in ancillary data - sorce data is unit8_t, memcopy size is "sizeof(int)"; this results in garbage and TBROK on PPC64 
asapi_06.c

-A fix for bugs 27174 and 27177.  This fixes the problem of reading HugePages_Free 
hugemmap01.c, hugemmap04.c

-Correcting error messages 
ltpapicmd.c

-This patch by Darrick Wong fixes complier warnings and overflow problems related to the use of large number #defines on some architectures. 
inconsistency-check.c


-When calling pthread_attr_setscope, PTHREAD_SCOPE_PROCESS is not supported by linux, change it to PTHREAD_SCOPE_SYSTEM for testing 
15-1.c, 15-2.c


-A fix for bug #27618 that addresses two issues: 1) PAGE_SIZE which was normally 4096, but on the machine it found to 64k ! 2) The size of the file, offset passed. If those values, happen to be on the *Page boundary*, mmap would be happy. But in our case, it was not ! 
fsx-linux.c

-Changing include <posixtest.h> to include "posixtest.h" 
1-1.c

-A patch by Darrick Wong that adds a set of rudimentary IPMI tests to pounder.  They check that the in-kernel IPMI driver can access the machine's BMC/SP (if there is one), query it for status and check for various IPMI 2.0 features. 
default-tests.tar.gz, ipmitool, ipmitool	

LTP-20060916

-Code was added to disable tests that will not run on kernels versions lower
 than 2.6.16
 fstatat01.c, vmsplice01.c, unlinkat01.c, mkdirat01.c, mkdirat01.c, 
 readlinkat01.c,futimesat01.c,renameat01.c,openat01.c, openat01.c, fchownat01.c
 symlinkat01.c,faccessat01.c, timer_create02.c, fchmodat01.c, splice01.c, 
 tee01.c, mknod01.c

-The following new test cases for 2.6.16 kernels and above were created by
 Yi CDL Yang
 fstatat01.c, vmsplice01.c, unlinkat01.c, mkdirat01.c, mkdirat01.c, 
 readlinkat01.c,futimesat01.c,renameat01.c,openat01.c, openat01.c, fchownat01.c
 symlinkat01.c,faccessat01.c, timer_create02.c, fchmodat01.c, splice01.c, 
 tee01.c, mknod01.c

-Changes were made to several files to make them easier to read 
 change_owner.mode.sh

-Changes were made to remove  DOS ^M 
 ltp-run-files.txt, self_exec.c, Makefile, load_tagp.sh, str_agp.h, tagp.h, 
 Makefile, user_tagp.h, pci-exp-tests-HOWTO, Makefile, README, runtest_off.sh,
 runtest_on.sh, README, Makefile, README, common.h, README.1ST, mem03.c, 
 README, ltpClient.c, ltpServer.c

-Changes made by Jacky Malcles that let ltp-aiodio.sh fun this scenario 
 ltp-aiodio.part3

-Changes made to  linux __NR_ logic here 
 Makefile, i386.in, ia64.in, linux_syscall_numbers.h, order, parisc.in, 
 powerpc.in, powerpc64.in, regen.sh, s390.in, s390x.in, sparc.in, sparc64.in, 
 stub-list, x86_64.in

-Changes were made to Define _GNU_SOURCE if not already defined 
 chmod05.c, chmod06.c, fchmod05.c, fchmod06.c, fcntl17.c, llseek01.c, 
 llseek02.c, mount03.c

-Generate script into generic shell and make sure we still work even if host 
 lacks perl 
 Makefile, generate.sh

-A patch by jiang guowei for mmap1.c.  It makes the option -v valid.Otherwise,
 when you type mmap1 -v in command line,it will show:invalid option.More 
 detail,please see bug 1541053. 
 mmap1.c

-Applied a patch to fix bug #14744 
 kill02.c

- Changed Makefile to standard LTP makefile and fixed a build problem with the
  new lock tests 
  ltp/testcase/network/nfsv4/lock/Makefile

- Changes made to several Makefiles to force CFLAGS/LIBS to be evaluated 
  once rather than everytime they are used 

-Standardize makefiles (punt UCLINUX/COLDFIRE cruft, build everything with 
  "-Wall" and user-optimizations, remove pointless targets in favor of 
  implicit ones, etc...) Makefiles

-Adding files for Mitsu's networking tests. 
 00_Descriptions.txt, Makefile, broken_ip4-checksum, broken_ip4-dstaddr, 
 broken_ip4-fragment, broken_ip4-ihl, broken_ip4-protcol, broken_ip4-totlen, 
 broken_ip4-version, broken_ip6-dstaddr, broken_ip6-nexthdr, broken_ip6-plen, 
 broken_ip6-version, Makefile, 00_Descriptions.txt, Makefile,
 route4-change-dst,route4-change-gw, route4-change-if, route4-ifdown, 
 route4-redirect, route4-rmmod, route6-change-dst, route6-change-gw,
 route6-change-if, route6-ifdown, route6-redirect, route6-rmmod

-Add a common header for __NR defines 
 fchownat01.c, fstatat01.c, futimesat01.c, mkdirat01.c, mknod01.c, 
 openat01.c, splice01.c, tee01.c, common_timers.h

-Added a patch by Mitsuru Chinen that added the Absolute path to execute sshd 
 daemon ssh4-stress

-This patch adds brackets because some versions of ssh requires square brackes
 around the IPv6 address.
 ssh-stress03-rmt

-Changes are made to try to load .ko modules before .o as pointed out by HK 
 ltpacpi.sh, load_tagp.sh, load_tbase.sh, load_tmod.sh, load_tdrm.sh, 
 load_tbio.sh

-Additional changes for  uClinux fixes from Jane Lv 
 access05.c, chdir04.c, chroot03.c, creat06.c, mkdir03.c, mknod06.c, 
 nanosleep03.c, open08.c, pause02.c, rename08.c, rmdir02.c, sigrelse01.c, 
 sockioctl01.c, stat03.c, statfs02.c

-Made changes to clean up the makefile, clean up source code warnings, and 
 add better libc/libepoll detection 
 CheckVer.c, Makefile, epoll-ltp.c

- A fix by Jeff Bailey for my previous breakage of install target in Multiple 
  Makefiles

-A patch was created tomake errno failure message more helpful 
 sysctl03.c

-A patch that sets the constant PAGE_SIZE to the kernel its running on 
 fsx-linux.c

-Changes were made to remove extraneous whitespace 
 Makefile, pth_str01.c, pth_str02.c, pth_str03.c

-A patch was created to move common defines/functions/etc... to one header 
 file so we have to get it right just once 
 clock_gettime02.c, clock_gettime03.c, clock_settime02.c, clock_settime03.c, 
 common_timers.h, timer_create02.c, timer_create03.c, timer_create04.c, 
 timer_delete02.c, timer_delete03.c, timer_settime02.c, timer_settime03.c

-Adding files for Mitsur's networking tests 
 00_Descriptions.txt, Makefile, mcast4-grpope01, mcast4-grpope02, 
 mcast4-grpope03, mcast4-grpope04, mcast6-grpope01, mcast6-grpope02, 
 mcast6-grpope03, mcast6-grpope04, 00_Descriptions.txt, Makefile, 
 mcast4-pktfld01,mcast4-pktfld02, mcast6-pktfld01, mcast6-pktfld02, 
 00_Descriptions.txt, Makefile, mcast4-queryfld01, mcast4-queryfld02, 
 cast4-queryfld03, mcast4-queryfld04, mcast4-queryfld05, mcast4-queryfld06, 
 mcast6-queryfld01, mcast6-queryfld02, mcast6-queryfld03, mcast6-queryfld04, 
 mcast6-queryfld05, mcast6-queryfld06

-A change was made to use __linux__ preprocessor from toolchain itself rather 
 than a local custom _LINUX 
 Makefile, sched_tc0.c, sched_tc1.c, sched_tc2.c, sched_tc3.c, sched_tc4.c, 
 sched_tc5.c, sched_tc6.c

-A fix type of option_message 
 reboot01.c

-Changes were made to cleanup source code 
 domount.c, getopt.c

-A patch that addes new functionality into the NFSvf lock tests. -fixes bugs -
 adds the capability to stress a server with multiple clients 
 DEPLOY, Makefile, README, VERSION, locktests, locktests.c, locktests.h, 
 locktests.py, netsync.c, locktests-2.tar.gz

-Changes to shmt09 were made by Marc Tardiff.  Refer to the cvs log file 
 for more details. Tested successfully on sparc and i386 architectures. 
 
-Changes were made to shmt09 to account for ppc64

-Added a warning to those who wish to fiddle 
tests.init

-Changes were made to declare splice for new vmsplice test 
 i386.in, ia64.in, linux_syscall_numbers.h, powerpc.in, powerpc64.in, 
 s390.in, sparc.in, sparc64.in, stub-list, x86_64.in

-Changes were made to add cast to shutup warning 
 timer_delete03.c, timer_settime03.c

-A fix was made to remove trailing whitespace 
 clock_gettime02.c, clock_gettime03.c, clock_settime02.c, clock_settime03.c, 
 timer_create02.c, timer_create03.c, timer_create04.c, timer_delete02.c, 
 timer_delete03.c, timer_settime02.c, timer_settime03.c

-Fixes taken from Yi CDL Yang and create a CLOCK list for people to use 
 as well as a func to turn a clock value into a string 
 common_timers.h

-Changes were made to unify the generate.sh scripts and use the new top level 
 make-files script 
 generate.sh, Makefile, generate.sh, Makefile, generate.sh, nfs02, Makefile,  
 generate.sh, Makefile, generate.sh, Makefile, generate.sh, Makefile, 
 generate.sh

-Patches were submitted Mitsuru Chinen writes: As an end-of-line semicolon 
 is missing, compiling asapi_06.c is failed. 
 asapi_06.c

-Patches were submitted Mitsuru Chinen writes: It seems that the contents 
 of runtest/ipv6_lib gets old. Currently, there is no test named lib6, 
 but more tests are available in testcases/network/lib6 directory. 
 ipv6_lib

=======
LTP-20060918

-Code was added to disable tests that will not run on kernels lower 
 than 2.6.16
 fstatat01.c, vmsplice01.c, unlinkat01.c, mkdirat01.c, mkdirat01.c, 
 readlinkat01.c,futimesat01.c,renameat01.c,openat01.c, openat01.c, fchownat01.c
 symlinkat01.c,faccessat01.c, timer_create02.c, fchmodat01.c, splice01.c, 
 tee01.c, mknod01.c

-The following new test cases for 2.6.16 kernels and above were created by
 Yi CDL Yang
 fstatat01.c, vmsplice01.c, unlinkat01.c, mkdirat01.c, mkdirat01.c, 
 readlinkat01.c,futimesat01.c,renameat01.c,openat01.c, openat01.c, fchownat01.c
 symlinkat01.c,faccessat01.c, timer_create02.c, fchmodat01.c, splice01.c, 
 tee01.c, mknod01.c

-Changes were made to several files to make them easier to read 
 change_owner.mode.sh

-Changes were made to remove  DOS ^M 
 ltp-run-files.txt, self_exec.c, Makefile, load_tagp.sh, str_agp.h, tagp.h, 
 Makefile, user_tagp.h, pci-exp-tests-HOWTO, Makefile, README, runtest_off.sh,
 runtest_on.sh, README, Makefile, README, common.h, README.1ST, mem03.c, 
 README, ltpClient.c, ltpServer.c

-Changes made by Jacky Malcles that let ltp-aiodio.sh fun this scenario 
 ltp-aiodio.part3

-Changes made to  linux __NR_ logic here 
 Makefile, i386.in, ia64.in, linux_syscall_numbers.h, order, parisc.in, 
 powerpc.in, powerpc64.in, regen.sh, s390.in, s390x.in, sparc.in, sparc64.in, 
 stub-list, x86_64.in

-Changes were made to Define _GNU_SOURCE if not already defined 
 chmod05.c, chmod06.c, fchmod05.c, fchmod06.c, fcntl17.c, llseek01.c, 
 llseek02.c, mount03.c

-Generate script into generic shell and make sure we still work even if host 
 lacks perl 
 Makefile, generate.sh

-A patch by jiang guowei for mmap1.c.  It makes the option -v valid.Otherwise,
 when you type mmap1 -v in command line,it will show:invalid option.More 
 detail,please see bug 1541053. 
 mmap1.c

-Applied a patch to fix bug #14744 
 kill02.c

- Changed Makefile to standard LTP makefile and fixed a build problem with the
  new lock tests 
  ltp/testcase/network/nfsv4/lock/Makefile

- Changes made to several Makefiles to force CFLAGS/LIBS to be evaluated 
  once rather than everytime they are used 

-Standardize makefiles (punt UCLINUX/COLDFIRE cruft, build everything with 
  "-Wall" and user-optimizations, remove pointless targets in favor of 
  implicit ones, etc...) Makefiles

-Adding files for Mitsu's networking tests. 
 00_Descriptions.txt, Makefile, broken_ip4-checksum, broken_ip4-dstaddr, 
 broken_ip4-fragment, broken_ip4-ihl, broken_ip4-protcol, broken_ip4-totlen, 
 broken_ip4-version, broken_ip6-dstaddr, broken_ip6-nexthdr, broken_ip6-plen, 
 broken_ip6-version, Makefile, 00_Descriptions.txt, Makefile,
 route4-change-dst,route4-change-gw, route4-change-if, route4-ifdown, 
 route4-redirect, route4-rmmod, route6-change-dst, route6-change-gw,
 route6-change-if, route6-ifdown, route6-redirect, route6-rmmod

-Add a common header for __NR defines 
 fchownat01.c, fstatat01.c, futimesat01.c, mkdirat01.c, mknod01.c, 
 openat01.c, splice01.c, tee01.c, common_timers.h

-Added a patch by Mitsuru Chinen that added the Absolute path to execute sshd 
 daemon ssh4-stress

-This patch adds brackets because some versions of ssh requires square brackets
 around the IPv6 address.
 ssh-stress03-rmt

-Changes are made to try to load .ko modules before .o as pointed out by HK 
 ltpacpi.sh, load_tagp.sh, load_tbase.sh, load_tmod.sh, load_tdrm.sh, 
 load_tbio.sh

-Additional changes for  uClinux fixes from Jane Lv 
 access05.c, chdir04.c, chroot03.c, creat06.c, mkdir03.c, mknod06.c, 
 nanosleep03.c, open08.c, pause02.c, rename08.c, rmdir02.c, sigrelse01.c, 
 sockioctl01.c, stat03.c, statfs02.c

-Made changes to clean up the makefile, clean up source code warnings, and 
 add better libc/libepoll detection 
 CheckVer.c, Makefile, epoll-ltp.c

- A fix by Jeff Bailey for my previous breakage of install target in Multiple 
  Makefiles

-A patch was created to make errno failure message more helpful 
 sysctl03.c

-A patch that sets the constant PAGE_SIZE to the kernel its running on 
 fsx-linux.c

-Changes were made to remove extraneous whitespace 
 Makefile, pth_str01.c, pth_str02.c, pth_str03.c

-A patch was created to move common defines/functions/etc... to one header 
 file so we have to get it right just once 
 clock_gettime02.c, clock_gettime03.c, clock_settime02.c, clock_settime03.c, 
 common_timers.h, timer_create02.c, timer_create03.c, timer_create04.c, 
 timer_delete02.c, timer_delete03.c, timer_settime02.c, timer_settime03.c

-Adding files for Mitsuru's networking tests 
 00_Descriptions.txt, Makefile, mcast4-grpope01, mcast4-grpope02, 
 mcast4-grpope03, mcast4-grpope04, mcast6-grpope01, mcast6-grpope02, 
 mcast6-grpope03, mcast6-grpope04, 00_Descriptions.txt, Makefile, 
 mcast4-pktfld01,mcast4-pktfld02, mcast6-pktfld01, mcast6-pktfld02, 
 00_Descriptions.txt, Makefile, mcast4-queryfld01, mcast4-queryfld02, 
 cast4-queryfld03, mcast4-queryfld04, mcast4-queryfld05, mcast4-queryfld06, 
 mcast6-queryfld01, mcast6-queryfld02, mcast6-queryfld03, mcast6-queryfld04, 
 mcast6-queryfld05, mcast6-queryfld06

-A change was made to use __linux__ preprocessor from toolchain itself rather 
 than a local custom _LINUX 
 Makefile, sched_tc0.c, sched_tc1.c, sched_tc2.c, sched_tc3.c, sched_tc4.c, 
 sched_tc5.c, sched_tc6.c

-A fix type of option_message 
 reboot01.c

-Changes were made to cleanup source code 
 domount.c, getopt.c

-A patch that adds new functionality into the NFSvf lock tests. -fixes bugs -
 adds the capability to stress a server with multiple clients 
 DEPLOY, Makefile, README, VERSION, locktests, locktests.c, locktests.h, 
 locktests.py, netsync.c, locktests-2.tar.gz

-Changes to shmt09 were made by Marc Tardiff.  Refer to the cvs log file 
 for more details. Tested successfully on sparc and i386 architectures. 
 
-Changes were made to shmt09 to account for ppc64

-Added a warning to those who wish to edit it 
tests.init

-Changes were made to declare splice for new vmsplice test 
 i386.in, ia64.in, linux_syscall_numbers.h, powerpc.in, powerpc64.in, 
 s390.in, sparc.in, sparc64.in, stub-list, x86_64.in

-Changes were made to add cast to silence warnings 
 timer_delete03.c, timer_settime03.c

-A fix was made to remove trailing whitespace 
 clock_gettime02.c, clock_gettime03.c, clock_settime02.c, clock_settime03.c, 
 timer_create02.c, timer_create03.c, timer_create04.c, timer_delete02.c, 
 timer_delete03.c, timer_settime02.c, timer_settime03.c

-Fixes taken from Yi CDL Yang and create a CLOCK list for people to use 
 as well as a func to turn a clock value into a string 
 common_timers.h

-Changes were made to unify the generate.sh scripts and use the new top level 
 make-files script 
 generate.sh, Makefile, generate.sh, Makefile, generate.sh, nfs02, Makefile,  
 generate.sh, Makefile, generate.sh, Makefile, generate.sh, Makefile, 
 generate.sh

-Patches were submitted Mitsuru Chinen writes: As an end-of-line semicolon 
 is missing, compiling asapi_06.c is failed. 
 asapi_06.c

-Patches were submitted Mitsuru Chinen writes: It seems that the contents 
 of runtest/ipv6_lib gets old. Currently, there is no test named lib6, 
 but more tests are available in testcases/network/lib6 directory. 
 ipv6_lib

>>>>>>> 1.90
LTP-20060822

-Added files for Mitsuru's Chinen's nfs patch: 
ns-mcast.h, ns-mcast_join.c, ns-mcast_receiver.c, network_stress.appl,
 network_stress.broken_ip, network_stress.icmp, network_stress.interface, 
network_stress.multicast, network_stress.route, network_stress.tcp, 
network_stress.udp ns-icmp_redirector.c, ns-icmpv4_sender.c, 
ns-icmpv6_sender.c, ns-igmp_querier.c
	
-Made changes to avoid hardcoding test count 
mkdir03.c, open08.c

-Changed the test to account for SLES 10.  Now the syslog tests will test 
 syslog-ng or syslogd depending on which one is present.  The update was     
 made for syslog01 - syslog10. 

-Corrected the copyright information to reflect SGI, instead of Cray, which
 was purchased by SGI years ago for files get_high_address.c, search_path.c

-Removed the Ping test. The ping test is now skipped on SLES, but does not 
  affect the execution of the rest of the test in mc_commo	

-Using syscall() rather than _syscall#() macros for the following files:
  sysfs01.c, sysfs02.c, sysfs03.c, sysfs04.c, sysfs05.c, sysfs06.c,  
  sysctl01.c, sysctl03.c, sysctl04.c, sysctl05.c
	
-Added a fix to eliminate whitespaces in getdents02.c, getdents03.c, 
getdents04.c	

-Added a fix to re-order testcases a little to account for uclinux in 
access05.c, lstat02.c, mknod06.c

-A Correction was made to the name of the testcase in code...was incorrectly 
called signal_test_03  and changed to signal_test_02.c

-A fix to  get the max pid value at runtime rather than compile time hardcode 
wait402.c, setpriority04.c,Makefile, getsid02.c

-A fix to remove extraneous include 
swapon02.c

- mc_cmds had two fixes.  The test now uses [ae]th[01] in the ping command 
using the -I option. Also the loop to determine which ethernet interface 
is needed was moved to ensure that the correct ethernet interface was selected.

-A patch was addded that allows the following files to get the PID_MAX value 
from /proc/sys/kernel/pid-max: 
access05.c, fcntl15.c, gethostid01.c, lstat02.c, mknod06.c, setrlimit02.c, 
setsockopt01.c, stat03.c, truncate03.c	

LTP-20060717
 - The tarball default-tests.tar.gz is a replacement for
   testcases/pounder21/default-tests.tar.gz.  This new pounder config
   enables the magic sysrq key when pounder starts.   
 - A patch submitted by Derek Wong to reduce the memory requirements of
   pounder's ramsnake test.
 - A patch submitted by Will Newton that allows for compatibility changes
   gcc 2.95.2 in th following files:
     lib.c, lib64.c, test.c, test64.c, test_func.c, test_func64.c, tools.c
 - Fixed ColdFire Makefile mistake in the syscall and syscalls/mmap directory
 - Added a note for uClinux users in the top level Makefile
 - A fix for failures in fcntl27 and fcntl28 for bugs 21614 and 23235.
 - A fix submitted for make_tree.c by Jacky Malcles that fixes this
   testcase by setting envp
  - A fix submitted to Jacky Malcles that fixes read_checkzero.c.  The lseek
   function allows the file offset to be set beyond the end of the existing
   end-of-file of the file.  If data is later written at this point,
   subsequent reads of the data is in the gap returns bytes of zeros until
   data is actually written into the gap.
 - In the testcase semget05.c the value of MAXIDS was changed for the specific
   machine by reading the system limit for SEMMNI - The maximum number of
   semaphore sets. This is a fix for bug 24745
 - A fix submitted by Amit K. Amora that initializes the alarm received
   code and allows the test to pass more than just once on 2.6.17-rc6
   alarm05.c,
 - A fix was submitted by Andy Echols for pan.c to fix an infinite
   loop problem that occurs  in pan if runltp tries to run a test
   that isn't present.
 - A fix was submitted to cast TEST_RETURN to gid_t to avoid implicit casts
   which tend to cause problems with the testcase  setregid03.c,
 - A patch submitted by Jacky Malcles that fixes the problem where
   i0_getevents() return value is not checked and may return 0 if
   no events are available and may generate a SIGSEGV in the testcase
   aiodio_append.c,
 - Backed out the _USC_LIB change for several Makefiles because it was
   breaking on the PowerPc platform on Fedora Core
 - Added code to ignore looking for PID_MAX on powerpc, s390, and i386 to
   fix build problems on newer kernel versions on the following files:
    sysctl05.c, setpriority04.c sysfs01.c, sysfs02.c, sysfs03.c, sysfs04.c,
    sysfs06. getdents01.c, sysctl03.c getsid02.c, sysctl01.c,wait402.c
 - TCP.c was changed to delete broken whitespace and also the call for
   accept(2) takes a socklen_t, not an int
 - Changes were added to the following files to use memset() instead of
   bzero():
   tlibio.c, write_log.c, doio.c, iogen.c, fsstress.c, fsx-linux.c,
   pthcli.c, pthserv.c, pth_str01.c, pth_str03.c, recvmsg01.c, sendmsg01.c,
   crash01.c, crash02.c, pingpong6.c,test_getname.c,fancy_timed_loop.c, 
   infinite_loop.c, run.c, timed_loop.c, snake.c, rpc1.c,pipeio.c, mc_recv.c
 - Changes were added to the following files to use memcpy() instead of
    bcopy():
    serverCommunication.cpp, member.c, rpc1.c,pipeio.c,mc_recv.c
-  A series of  patches created by Mitsuru Chinen that  created some addtional 
   network stress tests. 
-  A change submitted by Liang Shuang that fixes su01_su for the arm 
   architecture
LTP-20060615
-Added a patch from Darrick Wong to reduce the memory requirements of 
 pounder's ramsnaketes
-Added a patch for crash01.c from Olof Johansson <olof@lixom.net>
 POWER5 has coherent icache, but POWER4, PPC970 and some other processors
 lack it. The standard dcbst/icbi/isync is needed to avoid using the not
 so random (or stale) data instead.
-Test.h was moved to common headers to eliminate the need for every test file to
 declare Tst_count extern
-Usctest.h was changed to eliminate scope issues when actually using TEST()
-Added a patch from Mike Gahangan to clean up a makefile with an extra build 
 target variable.  
-Added a patch from Issac Wilcox that can keeps the test from returning a false
 failure
-Made changes to setregid02, setregid03 and setregid04 to use gid_t instead 
 of int where appropriate
-Made changes to setresgid01, setresgid02,setresgid03, setresuid01,setresuid02,
 and setresuid03  to pull the [gs]etre* prototypes from headers rather than 
 defining them ourself
-Made changes to setreuid01,setreuid02,setreuid03,setreuid04,and setreuid05
 to use uid_t instead of int where appropriate
- Added a change to getpriority01 to combine the TEST_RETURN and TEST_ERRNO 
  if check so that we always display PASS or FAIL messages as pointed out 
  by Isaac Wilcox
- Added a patch to make the output of fork07 deterministic.
  Specifically, make sure stdout is flushed before forking 100 times,
  else you can get 101 copies of the output.  This only seems to happen
  if glibc notices that stdout is a regular file, but in my test setup
  stdout is always redirected to a file and compared with something.
-Changed the declaration for setup and cleanup from extern in the 
 following files:

 alarm01,chdir02,chown01,close08,creat09,dup0,dup04,execl01,execle01,execlp01,
 execv01,execve01,execvp01,fchmod01,fchown01,fcntl02,fcntl03,fcntl04,fcntl05,
 fcntl09,fcntl10,fcntl23,fcntl24,fcntl25,fcntl26,fcntl27,fcntl28,fork01,
 fpathconf01,fstat01,fstatfs01,fsync01,getcontext01,getdtablesize01,getegid01,
 geteuid01,getgid01,getgroups02,gethostid01,gethostname01,getpagesize01,
 getpgrp01,getpeername01,getpid01,getppid01,link07,lstat01,mkdir08,open03,
 pause01,read01,readlink02, readlink03,rename02,rmdir04,select03,setgid01,
 setpgid01,setpgid02,setregid01,setuid02,stat05,statfs01,statvfs01,symlink02,
 symlink03,symlink04,symlink05,sync01,time01,time02,times01,umask01,uname01,
 unlink05,wait02,write01,setreuid01,setreuid02,getuid01,link05,

LTP-20060515
-Added a -e option to print out the date of the ltp release.  Also
 the date of the version of LTP will be printed in log files.	
-A patch for parse_opts.c was removed because it caused several test cases to fail
-Added a patch from Jacky Malcles to correct typos in ltp-aiodio.sh
-Added a patch from Jacky Malcles to fix aiodio_append.c
-Added a patch from Bibo Mao that fixes setrlimit03
-Added a patch that fixes file_test.sh.  
-Added a patch that fixes gethostid01
-A problem that was  reported by Jane Lv, mmap() returns an unsigned value (MAP_FAILED) upon error, so checking with <= 0 will not work was fixed in link04.c, lstate02.c mkdir01, mkdir03, mknod06, open08 read02.c rmdir06.c stat03.c statfs03 symlink03.c sysfs06.c truncate03.c uplink07.c write03.c and writev01.c - writev05.c
- Patches submitted by Thomas Gleixner to initialize interval values in setitimer03

LTP-20060412
-Removed a patch for parse_opts.c that caused many test cases to fail.  
-Applied a patch by Jacky Malcles that added a fourth scenario for ltp-aiodio.sh
-Fixed ld01 from failing on Assertions 1-7 for bug 22167
-Applied a fix for Lin Feng Shen to eliminate white spaces that caused mail02 to fail
- A fix created by Jacky Malcles that eliminates warning messages when complied on 64 bit platform
-Applied a patch to re-enable writing on arm per by Joe Pearson / Nick Pollitt
-Applied three patches by Joy Latten to the security test suite
-Applied patches from Robert Williamson to fix fcntl127. This test
should now  be positive test versus negative...based on the properties of
 the open() call in the setup() 
-Applied Patch from Robbie Williamson that fixed fcntl128.  This testcase was changed the test to expect no errors.  The fcntl() call should succeed regardless
-Applied a patch from gettimeofday01 to gettimeofday02 to fix the occasional failure
-Applied a fix to madvise02 by Jacky Malcles to eliminate the need for a special execution of the testcase for ia_64
-Applied a patch fixes the test 4 of mincore01.c that failed in 32 bit on a 64 bit kernel.
-Patches applied to pread02 to fix broken white spacing
-Applied a patch from Jane Lv for pread03.c.  This fixed a missed step to initialize the read buffer array.
-Applied Patches submitted by Thomas Gleixner to initialize interval values to prevent setitimer01 and 02 from failing
-Applied updates from Darrick Wong for Pounder for Pounder21.  Documentation was  added to get pounder up and running quickly
-Feature added to Pounder21 that enables the sysrq key at the beginning of every pounder run

LTP-20060306
- Applied an update to allow people to automatically declare the CREATE variable in IDcheck.sh.
- export a bunch of settings by default that since they are harmless
- allow people to store custom settings in config.mk
- move rec_signal/send_signal out of zoolib.h and into pan.c since only pan.c uses them and more than just pan.c includes zoolib.h
- Fix from Jackie Malcles, no such file or directory error
- make sure clean descends into the templates dir
- cleanup CRLFs from end of lines, 
- fix dependency tracking so targets arent rebuilt all the time
- Applied LDFLAG cleanup patch from Mike Frysinger.
- set default Debug level to off
- fix warning: growfiles.c:357: warning: unused variable `opterr'
- use errno.h instead of doing extern int errno
- cut extraneous newlines from test output
- kill off unused strings msg1 and msg2
- cleanup test output by adding a lot more useful debug info
- use proper test output routines rather than homebrewed printf statements
- use proper tst_* functions for output
- fix for defect 21622, insufficient timeout value
- tighten up uClinux disabled messages
- fixes by Jane Lv to disable EFAULT related tests on uClinux
- cleanup debug output that shouldnt be shown at normal runtime
- make the -F option a bit smarter
- remove extraneous output and improve output when we do issue messages
- Jane Lv writes: I have patched flock03.c and sched_setparam05.c to replace fork() by vfork() on uClinux.
- calculate TST_TOTAL based upon the number of elements in the test array instead of hardcoding the value
- use TFAIL instead of TINFO to report test failures in getcwd02
- fix test on x86_64 and make error output a bit more helpful in gettimeofday
- New Memory mapping testcases.
- Jane Lv writes: use FORK_OR_VFORK() instead of fork() so this stuff works on uClinux
- need to define _GNU_SOURCE before including features.h or sigset prototype is missed
- patched flock03.c and sched_setparam05.c to replace fork() by vfork() on uClinux.
- use syscall() instead of _syscall2() to improve portability
- define INVALID_ADDRESS to get rid of warnings on 32bit hosts and make it more sane in general
- Fix for defect 21134, look for syslog-ng instead of syslogd on some systems.
- if a test failed as a non-root user and the reason was EPERM, then mark the test as PASS, not FAIL 
  (security-minded kernels often restrict kernel buffer access for non-root users)
- fix test on 64bit hosts in syslog12


LTP-20060205
- Added new fcntl() test contributed by Jacky Malcles to test opening with O_WRONLY
- Fix typo in nfs run script, nfs03 ran twice instead nfs04
- Added the LTP's Database Opensource Test Suite to the testsuite.
- Applied patch from Mike Frysinger that disables ballista if no perl 
  is installed on the system and fixes the clean target.
- Applied LDFLAG fix from Mike Frysinger
- Applied patch from Mike Frysinger to ensure Makefile properly respect CFLAGS/LDFLAGS
- fixed some RH/Suse specific messages
- Updates for mmc security tests
- Updates for device driver testsuites from Amit Khanna (Intel)
- Applied memory leak fix in fsx-linux.c
- Fix for uClinux to fix execute error
- Fix to prevent not enough (pages) dups error in some cases
- Applied patch from Jacky Malcles: during its life fcntl23 has changed:
  used to open the file with O_RDWR and now is opening with O_RDONLY
- Added new fcntl() test contributed by Jacky Malcles to test opening with O_WRONLY
- Fixed gethostid01 so the second 64 bit check doesn't clobber the first 64 bit check by using a bitmask
- fix for defect 21050, the logic on line 211 was reversed causing the 64bit code to get run on a 64bit system
- Fixes for uClinux to fix fork and invalid memory access errors
- Fix for defect 21072, fixing the offset on some systems
- Applied patch from Mike Frysinger to resolve issue with UNALIGNED being defined multiple times for ARM targets.
- Patch to fix race condition on 64bit systems, fixes bugzilla 19013
- Fix for defect 21046, testcase should fail ENOMEM passes due to insufficient pages
- Applied patch from Jane Lv to disable test for uClinux.
- Fix for defect 21065, the kernel changed the return for tests 4 & 9. Added dual tests on failure so new/old kernels should both pass
- Fix to get rid of ugly messages during the make
- Fix for defect 21068, check for the existance of either syslogd or syslog-ng before failing and reporting an error
- Applied patch from Mike Frysinger to resolve problem with defining a local syslog() function when the tests are built statically.
- Fix for defect 20348, waitpid12 hangs occasionally
- Applied patch from Jeff Burke:
  Here is a patch that modifies the following files:
   testcases/network/nfsv4/acl/acl1.c - Fix for segfault in a printf.
   testcases/network/nfsv4/acl/create_users.py - Fix for help syntax
     (backwards -u users -g groups).
   testcases/network/nfsv4/acl/runtest - Fix for useradd command and also
      a echo command.
   testcases/network/nfsv4/acl/test_long_acl.py - Fix for output, the  #
      of entries was munged with the word entries.
- Add sctp testcase updates
- Initial drop of pounder21 testsuite

LTP-20060105
- Updates from Jennifer Monk to enable compiling w/o errors using XLC
- Applied Coldfire patch from Jody McIntyre:
 - Make the fdopen workaround blackfin-specific (not needed on Coldfire.)
 - getdents01: gcc 2.95 does not like declarations in the middle
   of functions, so move getdents to the top.
 - Add LDFLAGS to the following Makefiles:
 - Add -D_USC_LIB_ for Coldfire builds to the following Makefiles: creat,
   execve, fchdir, kill, mkdir, open, rename, rmdir, sched_setscheduler,
   vhangup, ipc/lib.  This avoids symbol conflicts reported by gcc 2.95.
 - Skip the following syscall tests on Coldfire: madvise, mlock, munlock.
   These system calls are not implemented.
 - IPC: Modify the headers and Makefiles to avoid duplicate definitions of
   msgkey on Coldfire.
 - msgctl08, msgctl09: Lower MAXNPROCS to a value that will fit in the
   Coldfire's memory.
 - mallopt01: Define __MALLOC_STANDARD__ on Coldfire.
 - Skip mmap01 on Coldfire since it requires sbrk(), which is not available.
 - rename02: Remove private do_file_setup and use the library version to avoid
   symbol conflicts.
 - kill07: Declare semkey as extern on Coldfire to avoid symbol conflicts.
 - kill11: Move *msg declaration since gcc 2.95 does not understand C99.
 - sigaction01: Move -lc in the Makefile after -lpthread.
- Applied changes suggest by Jacky Malcles to keep gf18 from running longer than it needs.
- Applied a suggested solution from Jacky Malcles to allow growfiles to run correctly in 64bits.
- Applied a memory leak fix to fsx-linux tests.
- Applied patch from Marc Unangst to resolve issues with leaking file descriptors in inode01.c
- Update aio-stress.c tests from Chris Mason
- Applied patch from Bibo,Mao to use RT signal instead of SIGUSR1 to inform parent process that 
  the child process has finished memory allocation.
- New security tests from Michael Harlow
- Applied patch from David Marlin to close the last file descriptor created in order to 
  make one file descriptor available for loading a needed library.
- Added one line to gethostid, if 'hostid' includes fffffff, then we ignore.
- Applied fix for Sourceforge bug ID 1332508 in getsid02
- Appliec changes from Jane Lv for uClinux.
- Applied patch from Mark Ver to allow proper execution on s390x platform.
- Updates to ASAPI tests from David Stephens for new glibc and RFC 3542
- Renamed create_file.c to nfs04_create_file.c to resolve duplicate name problem with network stress tests.
- Updates to Makefile for acl testsuite
- Initial add of acl testsuite from Bull
- Updates from sridhar to sctp testsuite
- Comment out CFLAGS overrides in network-stress Makefile, it was causing build breaks in 64bit compiles


LTP-20051205
- New networkStress testcase files
- Security test updates for cleanup and testcase improvements
- New nfsV4 testsuite
- Updates for nfsV4 testsuite
- Updates for open_hpi_testsuite
- Corrected out of memory error msg in ltpstress.sh


LTP-20051103
- fix from Bryce Harrington to corect a Makefile and path problem on some systems
- Updated aiocp to the latest level. See  http://developer.osdl.org/daniel/AIO/
- Corrected a logical typo in the mmapstress test found by John Clemens:
- Changes for cleanup of digsig testcases
- Applied patch from Jacky Malcles to allow the test to execute correctly with
  the new 2.6 kernel.
- Fix for defect failure in fcntl23.c to lock readonly file, changed to open file RDONLY
- Fix gethostid01 to return correct code in 64 bit mode
- fix madvise01 testcase error where it may not run out of memory
- Applied patch [ ltp-Bugs-1168107 ] from Shyam Chandrasekaran:
- Fix bug in settimer01.c
- Fix write04.c to work on ia64
- Cleanup to not include redundant sys/socket.h after linux/socket.h
- Add NetworkStress testcases from IBM Japan


LTP-20051004
- this patch touchs up the output of ver_linux if gcc, fdformat, or mount is missing
- New testcases for tpm
- Fix compile error with strsep on some systems.
- Add a missing include file and corrects an fprintf
  format type to eliminate warning messages.  It also performs some minor
  whitespace cleanup.
- patch attached fixes it so writetest is rebuilt whenever writetest.c is updated
- patch typecasts in writetest - the values given to printf to (long long int)
- patch initializes some uninitialized variables and adds a
  return statement (non-void function) to eliminate warning messages.
- patch process.c adds a missing include file, function return types
  and returns, cleans up structure initializations, and removes unused
  variables to eliminate warning messages.  The debug print macro is also
  modified to handle a variable number of arguments.
- patch basically stubs out the GetContext function for uClibc and allows for any
  other system to be added accordingly since uClibc doesn't provide the function 
  on later builds.
- Added code to check whether or not "ffffffff" is returned on some 64bit
  machines.
- Fix for defect 17215 in nanosleep02
- patch adds a missing include file, function return types
  and returns, and typecasts some variables to eliminate warning messages.
  GNU_SOURCE is also added to CFLAGS in the makefile, since otherwise
  the 'pselect' declaration is not found in some build environments.
- Fix for defect 17723 pTrace01.c
- patch adds missing include files and declares return types
  to eliminate warning messages for setfsuidxx.c
- TEST_ERRNO fix to display as a long int.
- Change sigrelse01 tests to eliminate duplicate function prototypes.
- Change to sigrelse01 to use time.h vs define in program.
- Fix for defect 17974, Strace/Ptrace hangs
- patch adds missing include files, function prototypes and
  returns, and removes unused variables to eliminate warning messages.
  It also corrects some sprintf format warnings and replaces 'abortx' with
  a version that accepts a variable number of arguments.
- The "generate.sh" script was mistakenly removed...added it back.
- Updates to check for connection failure vs unauthorized access fail in ftp02_s1, ftp03, ftp04, ftp05
- Cleanup - Removed the datafile directory, because this is created using the generate.sh
  script..which is called in the Makefile


LTP-20050907
- Added test for statvfs()
- Applied a load of patches submitted to the mailing list by Gentoo's Mike Frysinger
- Applied patch from Erik Andersee:
  if __NR_fremovexattr isnt defined by the current linux headers,
  acl_file_test.c will fail to build
- Relocated getcontext() test from getcontext01 to just getcontext.  
  Also added the directory to the list of tests not ran on uclinux.
- Applied patch to madvise02 for tmp memory
- Applied patch to mallopt01 to fix logging error.
- fix for defect 17723, change sleep to an at least vs an exact amount
- Correct testcase return on RHEL 3 & 4 2.6.13-rc6-mm1
- Applied IA64 patch received from Jacky Malcles to write03-04
- Added -n option to allow disabling networking stress to ltp-stress


LTP-20050804
- Applied fix from Greg Edwards for 64bit execution.
- self_exec magic required to run child functions on uClinux
- Applied patch from Mike Frysinger:trying to do a build on uClibc will abort in lib/tlibio.c because we dont
  provide aio.h find attached a patch which updates the check to include UCLIBC alongside
  UCLINUX
- remove call to create.sh script that checks for obscure c++ rpms
- remove all references to and creation of non-std /usr/local/bin/perl5
- fix ballista.cpp to not core dump with std c++ lib
- fix to add librt to MakefileTarget for running aio_suspend test:missing clock_gettime on linux
- remove printf.h and stdio.h from testcases/commands/ade/ld/rd1.c.
- Change to fix the addition of 2 minutes without going over 60 for the seconds
- patch to fix up the install target in disktest to match the install targets of everything else
- patch to fix writetest Makefile to not always rebuild the writetest binary 
  regardless of whether you ran `make` or `make install` or whatever
- newer toolchains complain about redefining 'log' since it's a math function
  provided by the libc find attached a simple patch to rename the 'log' variable in
  testcases/kernel/ipc/ipc_stress/message_queue_test_04.c to 'logit'
- when running make in silent mode (make -s) the verbose mode of AR 'gets in the
  way' attached patch drops the -v and adds -c so that ar wont display the 'ar:
  creating blah.a' message either
- the current mallocstress.c emits a warning about newsize being used
  uninitialized because gcc doesnt detect the abort(0) path 
  find attached a simple patch to prevent the warning from being issued
- Running nptl01 can fail if the test lasts longer than 300 seconds, patch to lower interations to 100000.
- Fixed clone04 to return correct failure code.


LTP-20050707
- Applied fixes by Paul J.Y. Lahaie to implement support for UCLinux
- suppresses the warning  "head: `-1' option is obsolete; use `-n 1'..."
- Updated the TEST() macro to return long, instead of int for use with 64bit architectures.
- Removed umount04.
- Security updates for ppc and 390 systems
- The K42 open source operating system bug fix for panic when alarm is cancelled.
- Applied some zSeries specific patches.
- Applied patches to allow NFSv4 testing:
- Define gettid() to syscall(__NR_gettid).

LTP-20050608
- Added test for getcontext()
- Added additional test for mlockall().
- Added getdtablesize() test.
- Added pselect01 test.
- Added new fcntl tests to scenario.
- fs_inod - Raised the maximum file size for the random setting to 500Mb.
- upgrade disktest to version 1.2.8
- Clearify the comment explaining the second call to alarm() in
  testcases/kernel/syscalls/alarm/alarm06.c 
- Corrected a bug in fcntl24.c and added new tests fcntl25, fcntl26, and fcntl27.
- Change to 1024 default if IO_BITMAP_BITS not defined
- Applied fix for conditions where ENOMEM test scenarios were failing.
- mlockall03 is a Test for checking basic error conditions for mlockall(2)
  starting from linux 2.6.9
- NGROUPS_MAX defined in limits.h is not the max number of groups in the
  system, it the max number guaranteed.  Thus, if the system actually
  allows more, the test case doesn't produce the expected failure.
- test3 in setrlimit02.c:Test attempts to increase hard limit of RLIMIT_NOFILE resource.
  The rlim_max used by setrlimit() is expected to be greater than current hard limit to get EPERM.
- nfsstress - Corrected so the test can find gettid()'s definition.
- PTS Version 1.5.1 Released
- Removed old version of Open POSIX Test Suite (OPTS).
- Updated the open_posix_testsuite:


LTP-20050505
- Added DBAT testsuite, limited LTP tests for build verification - runltplite
- fix the bug on test table selinux when run the ltpmenu.
- Added new getpagesize() test.
- New test creates a data file of specified or random size and copies
  the file to a random directory depth on a designated filesystem.
  The two files are compared and checked for differences.
- Make nptl01 timeout and report failure rather than just hanging in the event of a fail.
- Moved SELinux testsuite from misc to the kernel/security directory.
- acct01 - Updated test to allow for execution on zSeries machines.
- ioperm01 - Fixed bug will cause ioperm01 receive SEGV and report "BROK" instead of "FAIL" when this test failed.
- nfs04 - use 'cmp' instead of 'diff' because I think byte comparison is better for the type of file created for this test.
- Fixed ftp01 and telnet01 seems designed to run with non-root user connection
  when the user name is set to RUSER environment variable.
  However, it is incomplete.ftp01 creates a directory whose permission is root.
  So, non-root user cannot write in the directory.
  telnet01 always consider the prompt is '#'

LTP-20050405
- Fixed '-d' option to runltp.sh
- Added optional ltp (fivextra) extended testsuite
- Added digital signiture testcases from the security team
- Applied patch from Gernot Payer to fix, mincore01, shmget02, capset02
- Applied suggested check from Carl van_Schaik to clone02.
- Added seLinux testsuite from security team and Stephen Smalley.
- Added NFS cthon04 tests needed files.


LTP-20050307
- Added -v option to LTP, fixed -s option
- Removed fcntl16 until testcase can be fixed/changed.
- Fix for defect 14136, growfiles expanding a file past the 2G limit on ext2
- Applied patch from Marcus Meissner for SF bug #1114114
- Applied patch from David Miller for sigaction problems
- Applied a patch from Suzuki Kp to resolve some race/signal handling conditions
- In adapting specific LTP tests to uClinux running on Analog Devices'
  Blackfin processor, we found a problem in mount01 where malloc was not
  reserving space for the trailing null byte and strncpy was being called
  without enough bytes to account for the trailing null byte.  The
  following patch fixes the problem
- Increased USER_PRECISION to 2200 to take into account the processes switching time nanosleep02
- The attached patch fixes a swapon cross compile build error I ran into
  recently. I verified that RH9 self hosted and cross compile builds now
- Removed the include of <asm/atomic.h> back out.  Most distros and kernels
  can build and execute the test without it now.
- Change for defect 13778, when the /var/log/messages file is first moved, the first write fails
- The SIGINT sighandler will set the "intinitr" flag to 1 for the children. But if the
  "runtime" is small( a command line argument passed, the testcases were running
  for 5 secs here), it may happen that the SIGINT may be recieved before the
  child initialize the flag to 0, and which may lead to a hang
- Change to exclude lib6 directory from default build since it breaks earlier Distros
- Added code to handle cases where certain distros don't define AI_V4MAPPED in /usr/include/netdb.h



LTP-20050207
- runltp now exports $TMPDIR as a copy of $TMP, certain exceptions caused these to be different.
- extra functions for LTP libs are to make these tests fail with a more
  informative message when attempts to create swap on tmpfs are made.
- IPV6 testcase updates from David Stevens
- Applied patch from Jacky Malcles that fixes an inconsistency regarding synchronization.
- Make proc01 skip kcore
- Fix gives an hint to the probable solution if capset01 test fails
- Fix for race conditions in synchronization between children and parent on fcntl15.
- Applied patch from Jacky Malcles to allow test to run on ia64.
- The test llseek sets RLIMIT_FSIZE to a small number, this fix to
  restore it to its original value.
- Fix IPV6 Makefile install path problem

LTP-20050107
- Porting changes from John Kohl to help support compatablility LTP on Solaris, HP-UX and AIX.
- Add scsi virtual devices testsuite using scsi_debug
- Changes to fix defect 13205 - testcase (seg fault) fails when MALLOC_CHECK_=3 environment varible is turned on .
  Removed test for ppc64 as special exception, now passes child_stack+CHILD_STACK_SIZE as parameter to clone on ppc64
- Applied patch from Prashant Yendigeri that fixes execution path problem.
- Fix for defect 11968 - test seg faults on a SMP system (8-way)
- Removed a prior applied patch from getdents01, that broke the testcases.
- Applied patch from Ricky Ng-Adam to fix ioperm01 testcase.
- Applied patch from Jacky Malcles for madvise02.
- Applied fixes to error messages from Adam Lackorzynski.waitpidXX
- Applied cleanup patch from Prashant Yendigeri for writexx testcases.

LTP-20041203
- Change to fix file creation error on certain filesystems.
- gf15 and gf18 failed on both 32-bits and 64-bits, 
  Growfile used lseek and fstat to operate file. When file grows
  beyond 4G,lseek and fstat would fail on 32-bits machine.
- Added fs-bench by Hironobu SUZUKI and additional JFFS
  testscript by G.BANU PRAKASH.
- Added mongo filesystem test by namesys and additional testscript from G.BANU PRAKASH.
        /etc/init.d/cron restart
- Applied patch from Jacky Malcles to allow test to run on IA64.
- settimeofday01 fails on some platforms(ia64,41611	x86-64) occasionally.
  The testcase did not consider the situation when CONFIG_TIME_INTERPOLATION is enabled.
- Remove case from password query since the distros use both upper and lower case P/p.


LTP-20041105
- Added extensive syscall testsuite (Ballista)
- Added new tests to EPoll testsuite
- Applied long path name patch from Michael Vieths
- Removed the requirement to have "." listed as the first directory, since it is not a documented requirement.
- GetDents01 - Used _syscall3() to allow this test to run on non-x86 archs.
- Applied message formatting patch from Gordon Jin.
- Applied IA64 specific patch from Jacky Malcles.
- Fixes from Chris Wright for swapon02 failures
- Restored the compile settings for Linux2.4/GLIBC2.2 and created a new one for Linux/GLIBC2.3 Removed -fwritable-strings 
  and -DGLIBC=22 flags from compile.
- Applied a patch from Zhao Kai that added a pause to allow for testing on installations with improved PAM security.


LTP-20041007
- Applied fix from patch 1037010, submitted by mator.
- Changes from Kris Wilson on RH specific changes
- Changes from the security team testcases
- Add HOWTO for pci tests
- Changes for pci testcases
- Disable -std=c99 and -peandtic flags in writetest's Makefile.  Some users of very old gcc versions 
  had problems with this, but it looks like those versions of gcc will still compile it ok.
- Fix typo and add log statement if a failure on loading the test module
- Changes requested from the security team for fix PPC64 error
- Small fix to chown03 and fchown04.  tst_tmpdir() call was happening in a spot that would cause 
  it to break under certain automation environments.
- un-spamify fork11 test
- Fix getrlimit02.  Rajeev Tiwari <rajeevti@in.ibm.com> pointed out that RLIMIT_NLIMIT was now too 
  low in the usr include files for newer kernels to cause this to fail.  Defined a new high one that 
  ought to work for the forseeable future.
- Overhaul madvise02.  Removed some invalid testcases, fixed one case that was an invalid failure, and a lot of cleanup
- Changes from SuSE for mincore tests
- Changes from Ihno for Itainium failures
- Changes from SuSE for setdomainname tests
- Changes submitted from SuSE for sethostname
- Changes to fix statfs03 error on trying to write to protected directory
- Change to fix defect 10947, failure on tmp directory
- Applied IA64 specific patch from Jacky Malcles:



LTP-20040908
- Modified runalltests.sh to call runltp.sh. runalltests.sh is now deprecated and will be removed early next year.
- Modified tst_tmpdir to ensure 777 permissions on test directory.
- Changes to ltp-aiodio.part3 for testcase run parameters
- Changes for 2.6.X so only delete modules is run, query and create are obsolete
- Updated runtest scenario with the latest SCTP tests.
- uncommented swapon() tests.
- added new paging tests, mincore and madvise
- Change to fix aio-stress problem will io errors on a short read during the random read portion
- Change to only print out a pass/fail instead of # of iterations pass/fail
- Added IA64 specific code for shmt09.
- Change to not do /dev/ptmx group write on arm arch.
- Applied patch from Ling, Xiaofeng to allow the test to use TDIRECTORY correctly.
- Corrected test 1 to show EPERM error pointed out by Ling, Xiaofeng.
- Change to close fileHandle prior to cleanup to correct testcase failure in NFS filesystems
- Change sleep time from 1 second to 10 seconds to allow system to pass
- Change to define RUSAGE_BOTH if not defined, RH removed from user space and other distros still support.
- Add arm arch to the ALIGNED typedefs
- Changes from Ihno for llseek01.c to check TEST_RETURN vs TEST_ERRNO
- use ltp functions in f00f test for better output parsing
- Fix Makefile to link open_files into the bin directory
- Get rid of extra = of "must be Root user" check
- Change the awk $4 to an $NF to support debian only returning 3 terms
- Change to tcpdump to check IFNAME define

LTP-20040804
- Corrected TCbin definition.
- Changes to check for RedHat install when setting up environment variables
- Changed ROOT_PASSWORD to PASSWD to match other testcases.
- Change to check and exclude test if running on a 390 system since test is invalid on that platform
- Fix build errors in modify_ldt01 and modify_ldt02
- Additional security testcases

LTP-20040707
- Added a new test for bind() written by Dan Jones.
- Jacky Malcles added support for ext3 and some cleanup code.
- Fixes to fix DMAPI defect
- Changes for eliminating dmapi.h
- Applied patch from Gary Williams to change malloc() to calloc() b/c some
  archs don't like the use of uninitialized memory.
- Fix typo and change i to a 1 in the bufcmp function in diotest_routines.c
- Applied patch from Gary Williams that added an optional forth arguement to
 semctl as a union, not a pointer to pointer, b/c pointer to pointer causes ppc
 to explode.  Union will automagically interpret the union as a pointer as
 necessary....now works on multiple archs.
- Made sure that the shm segment is cleaned up if the shmat() fails.
- Applied patch from Wu Zhou to correctly cleanup in case of a failure.
- Added definition for SHM_HUGETLB for cases where this is not defined.
- Applied patch from Steve Hill and Gary Williams for MIPS.
- Applied a timing fix to allow the test to run on more architectures.
- Applied results cleanup patch from Gary Williams.
- Corrected the logic in the test to use -lepoll or not.
- Applied PASS message cleanup patch from Gary Williams
- Fix invalid syntax "if undefined" in modify_ldt tests
- Applied patch from Gary Williams for personality() tests to initialize
  PER_LINUX so we can clearly see if the desired changes occur.
- Updated to Posixtestsuite-1.4.3


LTP-20040603
- Minor corrections to the NUM_PROCS patch
- Added the ability to pass NUM_PROCS to the -c option for runalltests.sh
- Fix genload in runalltests.sh, it was trying to run it in all caps, but the binary is all lower case.  
  Should actually run genload now.
- Patch from Alastair McKinstry to allow LTP to build on Linux/HPPA
- Changes for parameters passed to aio-sparse for correct offsets and restrictions on sizes.
- Add new security tests to syscalls testsuite
- In acl_file_test.c and acl_link_test.c syscalls regarding xattrs are still
   done via syscall, although libc functions are available. Furthermore I found
   out that on older distros for non-intel architectures both attr/xattr.h and
   constants like __NR_getxattr are not available, so in this case the these
   testcases are not built.
- Updates for the DMPAI testsuite ppc64 support.
- Fix failure on rwtest versions rwtest03 and rwtest04 due to mmap running out of resources.
- Made changes to get thread ID vs get PID for NPTL threads for unique filenames where child/parent PIDs are the same.
- Changes to diotest5 and diotest_routines to eliminate random/intermitant failures on data compare.
- Fixed memory leak in mmstress testcase.
- Changed clone02 to use tid instead of pid to eliminate failures on NPTL threads(same PIDs for parent/child)
- Changed fcntl15 getpid to gettid (syscall(gettid)) to get unique thread ID vs common PID in NPTL threads.
- Added adp testcases.



LTP-20040506
- Corrected a bug fix, so that the runalltests.sh script ends correctly and returns a
  0 or 1 depending on PASS/FAIL result.
- Applied bug fixes from Gernot Payer
- Changes for parameters passed to aio-sparse for correct offsets and restrictions on sizes.
- Changes to fix error "invalid argument" on parameters for aiodio_sparse tests
- Relocated the acl tests to /kernel/fs
- Added initial drop of DMapi testcases
- Applied fix from Joe Habermann for the "v" option, where in some cases the
  routine, sy_mmrw, will pass sbuf.st_size for the msync length without first
  having done the fstat to populate sbuf.
- Changes to have the directio run a pre-defined number of iterations for more complete testing
- Fix too many open filehandle problem on direct io tests
- Created a second test that checks how huge pages are mapped in 32-bit and
  64-bit processes.
- Added new test for testing that a normal mmap cannot be mapped into a
  high memory region.
- Added test to map a file to the max size possible.
- Made the tests 64bot friendly.
- Added tests for shmat() calls using hugetlb.
- Corrected tests to allow EACCES or EPERM, which is documented in POSIX.
- Update open_posix_tests to 1.4.1


LTP-20040405
- Added nptl scenario.
- Added ltp-run-files.txt file to identify testcases/scripts that are NOT run using runalltests.sh
- Added EAL2 (security) testsuite.
- Applied daemon typo patch from Andrew R. Reiter.
- Fixed a bug so that sysinfo() works on 32bit machines with +4GB of memory.
- Updated the nptl tests to only execute on NPTL enabled systems.
- Added a new test for testing a specific problem seen in certain version of NPTL where 
pthread_cond_timedwait() can hang. This was written by 	Neil Richards of IBMUK.
- Fix EPoll PROTECT_FUNC macro to get around compiler bug for varible parameter list
- Fix for bug 7007, pickup correct NGROUPS
- Applied patch from Yaroslav Popovitch that addresses problems related
to the __syscall2 definition and 2.6 kernel based systems with glibc-kernheaders-2.4-8.43.
- Fix for bug 7009, failure on ppc64
- Changed NFS test to use /tmp instead of /mnt.
- Corrected sctp Makefile to allow for cross-compiled options to be passed down.
- Fixed bug 7011 on reiserfs


LTP-20040304
- This patch makes rwtest generate a PASS/FAIL  (Chris Dearman) 
  message in the output 
  log.  Updated the runtest/* scripts that use rwtest.  also
  changed the iogen01 test to use rwtest instead of invoking iogen/doio
  directly.
- Added AIO/DIO testcases from OSDL, SUSE
- Changes to AIO/DIO                            ( Marty Ridgeway )
  changes to aio-stress test runs
- Applied patches from Chris Dearman to set 
  PASS/FAIL messages for ltp-stress.            ( Chris Dearman )
- Created 2 new testcases to test the fcntl()   ( Robbie Williamson )
  call with the F_SETLEASE option. 
- tcp_cmds - Changed the ipchains test to       ( Robbie Williamson )
  iptables. 
- mmstress - Applied patch from Jacky Malcles and Gary Williams to remove the path 
  constraints when calling "dummy". 
- added new ltp epoll testcases                  ( Marty ridgeway )
- Added tests for GETLEASE, and SETLEASE w/FD_UNLCK ( Robbie Williamson )
- sendmsg01 - Removed test number 11, b/c it was not testing for EINVAL correctly. ( Robbie Williamson )
- setregid02 - Changes to accept now valid user ID ( Marty Ridgeway )
  and update testcase msg to reflect test group vs user 
- dhcpd_tests - Appled syntax error patch.          ( Hubert Lin )
- Updates to SCTP and new tests added.              ( Marty Ridgeway )
- Update to OpenHPI 0.5.0                           ( Robbie Williamson )
- Added Dan Carpenter's "Strace Test" 


LTP-20040206
- Applied documentation cleanup patch.		( Randy Dunlap )
- Fixed the "-t" default option in 		( Hubert Lin )
  runalltests.sh
- Relocated the aio tests to all reside		( Robbie Williamson )
  in one location under kernel/io.
- Fixed a 2.6 related compile error in the	( Marty Ridgeway )
  device driver test tbase.c file. 
- Updated the diotests to compile with gcc	( Mark Meissner )
  3.4.
- Fixed race condition and stability of the	( Gary Williams )
  mmstress.c.
- Corrected pth_str02's return value checking   ( Gary Williams )
  and results handling.
- Updated open08 to use an FHS specified file.	( Randy Hron )
- Fixed a buffer overflow problem in pipe07.    ( Erik Andersen )
- Fixed setregid02's test case id.		( Paul Larson )
- Relaxed the expected results for string01.	( Marty Ridgeway )
- Removed the EFAULT test from syslog12 b/c	( Andi Kleen )
  it was unpredictable and didn't acheive the	  
  intended test result.
- Fixed an issue with data generation in 	( Michael Wolf )
  gentan.c of float_trigo.
- Added tests for iptables.			( Hubert Lin )
- Updated mc_cmds to use 'netstat -i -n'.	( Hubert Lin )
- Corrected the "this_file" variable in the	( Jacky Malcles )
  rpc testcases.
- Corrected a typo in rusers test.		( Jacky Malcles )
- Fixed execution bug in ltpSockets.sh.		( Robbie Williamson )
- Updated the rlogin and telnet tests to	( Hubert Lin )
  execute correctly.
- Updated the xinetd tests to run under RHEL.	( Ming Gao )
- Corrected path locations in ltpfslvm.sh.	( Robbie Williamson )

 
LTP-20040108
- Fixed broken -l option in runalltests.sh.	( Paul Larson )
- Fixed netpipe typo in runalltests.sh.		( Paul Larson )
- Fixed memory leak in parse_opts.c library.	( Randy Hron )
- Removed personality() system call tests from  ( Robbie Williamson )
  the runalltests.sh and ltpstress.sh scripts.
- Cleaned up file_test.sh for improved 		( Glen Foster )
  execution.
- Cleaned up mail_tests.sh for improved		( Glen Foster )
  execution.
- Fixed the direct I/O tests to correctly	( Robbie Williamson )
  check if direct I/O is supported on the tested 
  filesystem.
- Fixed a typo and correct return value in	( Jay Turner )
  clone07.c.
- Fixed coding error in getcwd03.c.		( Erik Andersen )
- Fixed problem of incorrect use of fclose(),   ( Erik Andersen )
  instead of pclose() in msgctl08.c and 
  msgctl09.c.
- Removed usmblks test from mallopt01.c.	( Erik Andersen )
- Updated the modify_ldt() tests to build	( Robbie Williamson )
  according to what struct is defined in
  asm/ldt.h: user_desc or modify_ldt_ldt_s
- Updated pipe07.c to check the number of used	( Robbie Williamson )
  file descriptors and adjust itself accordingly
  before executing.
- Updated sendfile03 to allow for situations	( Robbie Williamson )
  where the execution environment has more than
  STDIN, STDOUT, and STDERR in use.
- Removed assumptions about the width of a uid_t( Erik Andersen )
  and gid_t in the setregid02.c, setresuid03.c,
  and setreuid06.c.
- Fixed string01.c to not expect implementation	( Erik Andersen )
  specific results.
- Updated swapon02.c to build in environments 	( Robbie Williamson )
  where MAX_SWAPFILES must be specified.
- Updated mc_cmds and tcpdump01 to handle 	( Ming Gao )
  multiple interfaces better.


LTP-20031204
- Allowed the test driver to ignore all		( Robbie Williamson )
  real-time signals.
- Removed the obsolete time() and stime() tests ( Robbie Williamson ) 
  from the default runalltests.sh and 
  ltpstress.sh scripts.
- Updated "file_test.sh" with fixes to improve  ( Glen Foster )
  execution and portability.
- Updated "cpio_tests.sh" with fixes to improve ( Glen Foster )
  execution and portability.
- Updated "cron_tests.sh" with fixes to improve ( Glen Foster )
  execution and portability.
- Updated "mail_tests.sh" with fixes to improve ( Glen Foster )
  execution and portability.
- Added Asynchronous I/O (aio) testcases.	( Marty Ridgeway )
- Added file & directory ACL control and 	( Marty Ridgeway )
  management testcases.
- Added testcases for low-level SCSI & virtual  ( Marty Ridgeway )
  SCSI devices.	
- Updated direct IO tests to return TCONF if	( Robbie Williamson )
  the tested filesystem does not support dio.
- Updated acct01 & sockioctl01 to handle 	( Robbie Williamson )
  situations where /dev/tty0 does not exist.
- Updated fsync02 to ensure max_block is always ( Robbie Williamson )
  greater than data_blocks.
- Updated getgroups03 to allow for better 	( Susanne Wintenberger )
  stability and platform portabilty.
- Updated the modify_ldt testcases to allow the ( Robbie Williamson )
  tests the ability to build on installations
  that use type "user_desc" instead of 
  "modify_ldt_s_s".
- Applied IA64 specific fixes to sigaltstack()  ( Jacky Malcles )
  tests.
- Updated some of the utime() tests to sleep 	( Glen Foster )
  longer than one second (2) to ensure proper 
  execution on IA64.
- Updated some of the write() tests to make the	( Susanne Wintenberger )
  invalid address test 64bit portable.
- Added new NFS stress test: nfs_fsstress.	( Robbie Williamson )
- Updated OpenHPI testsuite.			( Kevin Gao )
- Updated ltpstress.sh to change the maximum	( Robbie Williamson )
  number of user processes to "unlimited"
  before testing begins (ulimit -u).
 

LTP-20031106
- Fixed bugs in runalltests.sh with creating	( Manoj Iyer ) 
  the results directory and locating 'pan'.
- Created new NFS test, nfs04, which tests	( Robbie Williamson )
  file integrity when copying across mounts.
- Updated the SCTP testcases.			( Marty Ridgeway )
- Fixed bugs in 'tar' shell tests.		( Glen Foster )
- Applied patch to 'doio' for machines that	( Jun Sun )
  have virtually indexed cache and cache 
  aliasing problems
- Updated mem01 and mtest01 to execute on s390  ( Robbie Williamson )
  better.
- Added missing parenthesis to mmstress.	( Manoj Iyer )
- Added code to chown03 & fchown04 to set the   ( Robbie Williamson )
  environment variable, "change_owner", if it
  is not already set.
- Set the clone stack size to 16384 for all	( Robbie Williamson )
  clone() tests.
- Applied IA64 specific patch to clone04.	( Jacky Malcles )
- Removed test8 from stat06 b/c it was not	( Robbie Williamson )
  valid under the SUSv3.
- Added some extra documentation to swapon02    ( Robbie Williamson )
  on how to handle glibc 2.2.5.
- Resolved bug #834027 with sync02.		( Robbie Williamson )
- Added option to log 'iostat' data during	( Robbie Williamson )
  testing using "ltpstress.sh".			


LTP-20031002
- Enabled better binary compatibility between	( Robbie Williamson )
  executions on NPTL and Linuxthreads.
- Created README for device drivers test	( Marty Ridgeway )
  executions.
- Resolved bugs #807255 & #807400 for fs_maim.	( Hien Nguyen )
- Updated disktest to version 1.1.12		( Brent Yardley )
- Corrected the headers for capset and capget.  ( Robbie Williamson )
- Applied IA-64 fix to clone06 and munlock02.	( Jacky Malcles )
- Fixed compile warning for gettimeofday01.	( Andreas Jaeger )
- Applied testcase stability patch to pipe()	( Erik Andersen )
  testcases.
- Fixed rlogin01 and telnet01 so that they	( Paul Larson ) 
  correctly detect when they pass.	
- Applied updates to the OpenHPI test suite.    ( Kevin Gao )
- Updated the Open POSIX test suite to 1.3.0.	( Robbie Williamson )
- Changed ltpstress to use all installed RAM    ( Robbie Williamson )
  plus 1/2 swap space by default.



LTP-20030905

- Corrected "-d" option for runalltests.sh      ( David Smith )
- Corrected ade commands tests to allow for     ( Xu Cheng
  cross platform ppc64 execution.		  Robbie Williamson )
- Fixed compile errors for device driver	( Marty Ridgeway )
  tests seen on 2.5.73 kernels and above.	( Marty Ridgeway )
- Initial drop of drivers/base code.
- Added Device Simulator Framework.		( Marty Ridgeway
						  David Cruz
						  Sean Ruyle )
- Removed the need to include sys/stropts.h     ( Robbie Williamson )
  in the syscall tests.  
- Modified acct01 to use tty0 to allow for	( Paul Larson )
  testing in environments without a controlling
  terminal.
- Modified alarm03 to allow the timer to be 	( George Ansinger
  rounded up to the next second.		  Paul Larson )
- Corrected ifdef settings for PowerPC64 by	( Robbie Williamson )
  changing all __ppc64__ to __powerpc64__
- Corrected pthread id display in the float_    ( Robbie Williamson )
  tests.
- Updated mc_cmds and tcpdump01 to support	( Xu Cheng
  multiple interfaces.				  Robbie Williamson )
- Applied patches: #788275, #788323, 788727,	( David Smith )
  and 788836.
- Updated OpenHPI testsuite.			( Kevin Gao )
- Removed the top-LTP tool from being built	( Robbie Williamson )
  using `make all` or `make install`.
- Removed the open_posix and open_hpi		( Robbie Williamson )
  testsuites from being built using `make all`
  or `make install`.

LTP-20030807

- Reorganized and updated the testcase		( Robbie Williamson )
  descriptions under /doc
- Updated the tst_rmdir API to use		( Robbie Williamson )
  remove() instead of rmdir().
- Added support for the __ARM_ARCH_4T__ 	( Ramesh Subramanian )
  architecture.
- Updated clone() tests to allow them		( Robbie Williamson )
  to execute on ppc64.
- Created new clone07 test to check for		( Robbie Williamson )
  glibc bug.
- Rewrote the generate.sh scripts to perl	( Randy Hron
  for faster execution.				  Robbie Williamson )
- Updated "fsstress" to allow setting the	( Robbie Williamson )
  number of loops to run and cleanup options.
- Removed case from diotest4 for read/writes	( Robbie Williamson )
  with negative counts. Not in SUS.
- Fixed chown03 testcase to allow for better	( Paul Larson )
  execution stability.
- Added check to mmapstress tests to see if 	( Robbie Williamson )
  roundup() is defined, before defining it.
- Cleaned up sched_stress.			( Randy Hron )
- Modified diotest4 to test dio to /dev/null	( Robbie Williamson )
  but not record it as a pass or fail.
- Removed extra "\n"s from creat09.		( Paul Larson )
- Updated syscall tests that used their own	( Randy Hron )
  strcpy() definition, instead of string.h's.
- Fixed fchown04 testcase to allow for better	( Paul Larson )
  execution stability.
- Updated fcntl14 to allow for better execution	( Ramesh Subramanian )
  stability & remove possibility of false fails.
- Applied Xtensa architecture specific patches. ( Joe Taylor )
- Updated memory tests to allow for distros	( Robbie Williamson )
  that allow non-root users to m(un)lockall 
  within the RLIMIT_MEMLOCK resource limit.
- Changed the way munlock02 attempts to access  ( Robbie Williamson )
  outside it's memory space to a more reliable
  method.
- Corrected an expected error return for a case ( Andrew Morton 
  in recvmsg01 and sendmsg01.			  Paul Larson )
- Corrected compiler warnings in the multicast  ( Robbie Williamson )
  test, mc_opts.
- Corrected syntax error reported in 		( Robbie Williamson )
  Bug #773670.
- Corrected unitialized variable problem in 	( Ramesh Subramanian )
  sendfile01.
- Updated the Open Posix Test Suite to 1.2	( Robbie Williamson )
- Applied patches to Open HPI Test Suite.	( Kevin Gao )


LTP-20030710

- Added LIB_DIR variable to top-level Makefile	  ( Robbie Williamson )
  to allow specification of where to install
  libproc.so for the top-LTP tool.
- Updated Open POSIX Test Suite to 1.1.0.         ( Robbie Williamson )
- Added JFS tests to the LVM test script.	  ( Marty Ridgeway )
- Removed tests from the LTP system stress 	  ( Robbie Williamson )
  script that had problems running concurrently. 
- Updated ar01 to avoid bug if building rpm.	  ( Manoj Iyer )
- Added ACPI testcases.				  ( Marty Ridgeway )
- Added testcases to execute inline functions in  ( Marty Ridgeway )
  the kernel tree.
- Added testcases to for the NLS filesystem.	  ( Marty Ridgeway )
- Added PCI testcases.				  ( Marty Ridgeway )
- Added USB device testcases.			  ( Marty Ridgeway )
- Applied code cleanup patches to stream tests.   ( Randy Hron )
- Ported sem02.c to use some of the LTP test      ( Paul Larson )
  harness API.
- Updated mtest01 to fix hang issues.		  ( Robbie Williamson
						    Paul Larson )
- TCID fixes to various syscall tests.		  ( Paul Larson )
- Cleanup of various syscall test outputs.	  ( Paul Larson )
- IA64 fix to mlock02, mprotect01, munlock02.	  ( Jacky Malcles )
- Applied uclibc patch for memory tests.	  ( David McKay )
- Increased the size of memory to attempt to	  ( Robbie Williamson )
  munlock for munlock02 to ensure correct
  test execution.
- Updated readdir02 to catch SIGSEGV and fixed    ( Robbie Williamson
  small bug in test.				    Paul Larson )
- Updated recvmsg01 and sendmsg01 to handle 2.5   ( Robbie Williamson )
  64bit architecture specifics.
- Updates to syslog01-10 to support Debian	  ( Robbie Williamson  
  systems and improved their stability.  	    Paul Larson )
- Applied IA64 specific patch to syslog11/12.	  ( Robbie Williamson )
- Removed an unneccessary free() call in ustat01  ( Doug Ramier )
- Corrected the "install:" section of the mc_opts ( Robbie Williamson )
  network test.
- Added default option for RHOST for nfs03 and    ( Robbie Williamson )
  nfsstress. 
- Modified rwho01, sendfile01, tcpdump01 to use   ( Manoj Iyer )
  test APIs and added checks for required 
  commands.
- Added the Open HPI testsuite.			  ( Kevin Gao
    http://openhpi.sourceforge.net/		    Robbie Williamson )
- Added new filesystem testscripts.		  ( Marty Ridgeway )
- Added 'mkrootfs' utility to tools section.	  ( Manoj Iyer )

 


LTP-20030606

- Updated ltpmenu to redirect `ver_linux` output  ( Robbie Williamson )
  to the redirected output file.
- Added warning to runalltests.sh when the "-x"   ( Robbie Williamson )
  option is selected.
- Corrected syntax error in RHOST/PASSWD          ( Robbie Williamson )
  checking section.
- Made `pan` Makefile honor top-level LOADLIBES.  ( Robbie Williamson )
- Relocated all Open POSIX Test Suite tests       ( Robbie Williamson ) 
  listed in the scenario files to /runtest/posix.
- Relocated all Open POSIX Test Suite tests to    ( Robbie Williamson )
  /testcases/open_posix_testsuite.
- Removed OPEN Posix Test Suite tests from	  ( Robbie Williamson )
  runalltests.sh default run.
- Ported new asynchronous I/O test, aio01, to     ( Narasimha Sharoff
  LTP.						    Paul Larson )
- Added ppc64/ia64 fix to diotest4.		  ( Peter Bergner
						    Robbie Williamson )
- Updated mem01 to use sysinfo() and adjusted     ( Robbie Williamson )
  allocation limits.
- Updated mtest01 to run on large memory machines ( Robbie Williamson )
- Updated mmap tests to correctly cleanup after   ( Paul Larson )
  execution.
- Cleaned up sched_stress and fixed problem with  ( Paul Larson )
  segfaulting reported by Andi Kleen.
- Added s390/s390x specific code to clone() tests ( Jay Huie
						    Robbie Williamson )
- Fixed typo in mkdir04 in PASS output.		  ( Paul Larson )
- Corrected syntax error in munlockall02.	  ( Robbie Williamson )
- Applied ppc64 and s390x fix to profil01.        ( Steve Munroe
						    Robbie Williamson )
- Fixed syntax problem in mc_opts.                ( Robbie Williamson )
- Fixed "-i" problem with sendfile02.		  ( Aniruddha Marathe )
- Included /asm/atomic.h file to swapon02         ( Paul Larson )
  includes to allow test to compile on RH 7.2
- Applied ia64 fix for sysctl() tests.		  ( Jacky Malcles )
- Made syslog tests correctky cleanup after       ( Robbie Williamson )
  failure and handle multiple instances.
- Fixed mc_commo to make sure `ping` uses the     ( Dang En Ren
  correct interface.				    Robbie Williamson )
- Fixed small bug in ltpServer.c.		  ( Paul Larson )
- Allowed `make` to continue on errors in	  ( Robbie Williamson )
  open_posix_testsuite build/install.
- Added pause in "all" and "install" section of   ( Robbie Williamson )
  open_posix_testsuite/Makefile to allow user to
  read location of build/install error logfiles.
- Removed the procps directory in /tools and	  ( Robbie Williamson )
  replaced with a stripped down version: top-LTP.


LTP-20030508

- Updated the LTP to build and execute on NPTL	  ( Robbie Williamson )
  installed systems
- Applied 'ash' compatibilty patch		  ( Dan Kegel )
- Applied "CFLAGS+=" Makefile patch		  ( Vasan Sundar )
- Created "/testscripts" directory and relocated  ( Robbie Williamson )
  scripts to it
- Fixed kill problem with genload's stress.c	  ( Amos Waterland )
- Added checking for users and sys groups to	  ( Robbie Williamson ) 
  IDcheck.sh. Also, called the script from 
  runalltests.sh before executing tests to support 
  cross-compiled platforms
- Added 'ltpmenu' GUI				  ( Manoj Iyer
						    Robbie Williamson )
- Applied "posixfy" patches			  ( Vasan Sundar )
- Updated runalltests.sh to use -o for	 	  ( Robbie Williamson )
  redirecting output.
- Added code to runalltests.sh to prompt for 	  ( Robbie Williamson )
  RHOST and PASSWD when running network tests.
- Updated Open POSIX Test Suite header file to    ( Robbie Williamson )
  allow timer tests to build.
- Compiler warnings cleanups.			  ( Robbie Williamson )
- Corrected buffer overflow in inode02.		  ( Dan Kegel )
- Updated disktest to 1.1.10 and fixed for        ( Robbie Williamson )
  systems w/o O_DIRECT
- Completed merge of Open POSIX Test Suite 0.9.0  ( Robbie Williamson )
- Applied ia64 specific patches			  ( Jacky Malcles )
- Updated Makefiles to allow use of "-j"	  ( Nate Straz )
- Correct fork05 for use in newer glibc/kernels   ( Ulrich Drepper )
- Applied "type" fixes to recvfrom and recvmsg    ( Andreas Jaeger )
- Applied x86_64 specific patches		  ( Andreas Jaeger )
- Applied MSG_CMSG_COMPAT fix for 64bit 2.5	  ( Bryan Logan )
  kernels.
- Added new testcase for setegid.		  ( Dan Kegel )
- Modified syslog tests to use test apis	  ( Manoj Iyer )
- Added 2.5 timer tests.			  ( Aniruddha Marathe )
- Added Device Mapper tests.			  ( Marty Ridgeway )
- Added sockets tests.				  ( Marty Ridgeway )
- Removed fptest03 due to use of obsolete 	  ( Robbie Williamson )
  syscalls that perform 48bit math operations

 


LTP-20030403

- Fixed CFLAGS in all makefiles to append (+=)	  ( Vasan Sundar )
- Removed the outdated & poorly written 	  ( Robbie Williamson )
  GUI ( ltp )		 
- Corrected bug with -x flag in runalltests.sh	  ( Robbie Williamson )
- Added additional documentation into 		  ( Manoj Iyer  
  runalltests.sh 				    Robbie Williamson )
- MASSIVE compiler warnings cleanup.		  ( Andreas Jaeger )
						  ( Robbie Williamson )
- Corrected library linking at build time.	  ( Andreas Jaeger )
- Added descriptions to first line of all	  ( Robbie Williamson )
  runtest scenarios.
- Commented out 2 cases in syslog11 test that     ( Paul Larson        
  clear the dmesg buffer.                           Robbie Williamson )
- Updated fs_maim to use ext3 and reiserfs.	  ( Airong Zhang )
- Removed "\n"s from testcase outputs.		  ( Dan Kegel )
- Corrected direct_io tests to compile a dummy	  ( Vasan Sundar )
  program if O_DIRECT is not defined & return
  TCONF. 
- Changed stress_floppy to use `cp` instead of    ( Robbie Williamson )
  `ln` with its data directory.
- Applied IA64 specific patch to shmt02, shmt04,  ( Jacky Malcles )
  shmt05, shmt06, shmt07.
- Relocated the module tests to .../kernel/module ( Paul Larson )
- Removed module tests from syscalls scenario	  ( Paul Larson )
  file.
- Corrected the stack management in clone tests.  ( Chris Dearman )
- Corrected the pids casting from int to pid_t	  ( Jaideep Dharap )
  in fcntl17.
- Applied fix to flock03 to have the file 	  ( Matthew Wilcox )
  descriptor passed to the child.
- Enabled the validation section of getgroups03.  ( Robbie Williamson )
- Added code to getsid02, setpriority04, & 	  ( Robbie Williamson )
  wait402 to use PID_MAX_DEFAULT if PID_MAX is
  not defined.
- Fixed gettimeofday01 for gcc-3.2 quirk with     ( Andi Kleen
  x86-64.					    Paul Larson )
- Fixed msgctl08 and msgctl09 to check for the	  ( Dan Kegel )
  `ipcs` command before trying to use it.
- Added IA64 specific code to shmat01.		  ( Jacky Malcles )
- Fixed problem with kill11 false failure with	  ( Paul Larson )
  some compilers.
- Changed llseek tests to call lseek64.		  ( Andreas Jaeger )
- Replaced calls to time() with calls to 	  ( Dan Kegel )
  gettimeofday() in nanosleep01 to help avoid
  race conditions.
- Removed race condtions in recv01, recvfrom01, & ( Dan Kegel )
  recvmsg01.
- Replaced setegid() call with setregid() call in ( Robbie Williamson )
  setresgid01.
- Added code to check for NR_socketcall before	  ( Andi Kleen )
  executing the socketcall tests.
- Fixed swapon02 for correct execution on 2.5 	  ( Susanne Wintenberger )
- Fixed system specific build problem with 	  ( Paul Larson )
  swapon02 
- Corrected the MININT section of abs01.	  ( Robbie Williamson )
- Moved generate() into main.c for the float_*	  ( Robbie Williamson )
  tests. 
- Explicitly set the stacksize in main.c for the  ( Robbie Williamson )
  float_* tests.
- Removed optimization from building the float_*  ( Robbie Williamson )
  tests.
- Relocated netpipe-ipv6 from ipv6/tools to the	  ( Robbie Williamson )
  top-level /tools directory.
- Adjusted send and receive buffers for 	  ( Robbie Williamson )
  sendfile01 to PATH_MAX.
 


LTP-20030306

- Changed IDcheck.sh to only prompt for id	  ( Robbie Williamson )
  creation if the user is root.
- Added LVM test execution scripts.		  ( Marty Ridgeway )
- Added system stress execution script.		  ( Robbie Williamson )
- Added tst_kvercmp() API to allow test		  ( Paul Larson )
  creators to query the kernel version.
- Removed all external int declarations of	  ( Anton Blanchard,
  "errno" and replaced with includes of errno.h     Susanne Wintenberger,
						    Robbie Williamson )
- Replaced usage of sigaction() with signal()	  ( Nathan Straz )
  in `pan`.
- Ported and merged all tests from the Open	  ( Robbie Williamson ) 
  POSIX* Testsuite:
    pthreads
    semaphores
    timers
    clock()
    nanosleep()
    raise()
    sigsetops
- Added flock06 test.				  ( Matthew Wilcox )
- Added ipchains and dhcpd (server) tests.	  ( Manoj Iyer )
- Patched Makefiles to stop execution on errors.  ( Vasan Sundar )
- Patched Makefiles to allow non-root users to	  ( Robbie Williamson )
  run 'make install'.  
- Fixed 'ar' test to use CC defintion in 	  ( Anton Blanchard )
  Makefile.
- Corrected typos in install section of 	  ( Manoj Iyer )
  commands/fileutils/<test> Makefiles.
- Added tests for gzip/gunzip.			  ( Manoj Iyer )
- Added tests for unzip.			  ( Manoj Iyer )
- Applied patch to fsstress's Makefile to	  ( Anton Blanchard )
  define _GNU_SOURCE to allow O_DIRECT. 
- Applied changes to allow testcases to be	  ( Susanne Wintenberger )
  GCC 3.3 compliant.
- Fixed semaphore initialization bug in sem02.    ( Jacky Malcles )
- Applied patch to mem/mtest07/shm_test.c to	  ( Chris Dearman )
  correct character buffer variable: buff.
- Fixed hangup01 to initialize variable,	  ( Robbie Williamson )
  usrstr.len, to avoid junk data storage.
- Applied patch to clone01 to allow test to	  ( Andi Kleen )
  be more architecture independent.
- Added kernel checking code to module tests.	  ( Paul Larson )
- Applied 31bit emulation s390x patch to 	  ( Susanne Wintenberger )
  delete_module02 and query_module03.
- Fixed cleanup section of ftruncate01.		  ( Robbie Williamson )
- Applied patch to gettimeofday01 to not allow	  ( Andi Kleen )
  execution on x86_64 architectures.
- Added x86_64 as valid architecture for ioperm() ( Andi Kleen )
  and iopl() tests.
- Applied patch to semctl() tests to correctly 	  ( Anton Blanchard )
  test the ipc call.
- Removed unspecified/undocumented case from      ( Anton Blanchard )
  munlock01.    
- Fixed personality02 test.			  ( Paul Larson )
- Applied MIPS specific architecture patch to     ( Chris Dearman )
  profil01.
- Removed unspecified/undocumented case from      ( Robbie Williamson )
  sendmsg01.
- Applied patch to swapoff() and swapon() 	  ( Jacky Malcles )
  testcases to allow correct execution on IA64
- Applied patch to sysfs01 to allow execution on  ( Susanne Wintenberger )
  64bit machines.
- Added test for ustat().			  ( Aniruddha Marathe )
- Patched float_ tests to generate datafiles      ( Robbie Williamson )
  during execution.
- Added test for iproute.			  ( Manoj Iyer )
- Added test for xinetd.			  ( Manoj Iyer )
- Added test for traceroute.			  ( Manoj Iyer )
 


LTP-20030206

- Applied cross-compiler patch for top-level      ( V.R. Sundar ) 
  Makefile.
- Added additional runtime options to the         ( Manoj Iyer &
  "runalltests.sh" script.     	          	    Robbie Williamson )
- Corrected runalltests.sh -l option to require   ( Paul Larson )
  an absolute path.
- Added additional runtime and output options     ( Manoj Iyer )
  to `pan`.
- Added hyperthreading tests.  			  ( Sonic Zhang )
- Added ftruncate04 tests.			  ( Robbie Williamson )
- Changed top-level Makefiles to not require      ( Robbie Williamson )
  updating everytime a directory is added.
- Applied s390/64-bit enablement patch.		  ( Susanne Wintenberger )
- Applied 64bit patch to stress_cd.		  ( Jay Turner )
- Applied optimization patches (-O2).	  	  ( Mikael Starvik &
						    V.R. Sundar )
- Added mmapstress testsuite.			  ( Ananda Venkataraman )
- Added new testcases to test shared library      ( Manoj Iyer )
  libmm.
- Applied patch to mem01 to allow test to run     ( Jacky Malcles )
  on 2.4 and 2.5 kernels.
- Changed sched_stress testsuite from using	  ( Robbie Williamson )
  the bootfile, to generating its' own
  datafile.
- Corrected cleanup section of abort01 test.      ( Robbie Williamson )
- Added code to acct(2) tests to check for        ( Robbie Williamson )
  BSD accounting before execution.
- Corrected description of flock03.    	   	  ( Robbie Williamson )
- Added code to handle formatting issues with     ( Robbie Williamson )
  gethostid01 test.
- Applied patch to ioperm(2) & iopl(2) tests to	  ( V.R. Sundar ) 
  check for IA32 architecture before executing.
- Added code to msgctl08 and msgctl09 to ensure   ( Robbie Williamson )
  correct and better execution with respect to
  message queue limits.
- Fix recvfrom01 & recvmsg01 to test for the      ( Paul Larson )
  correct expected errors and their associated 
  returns.
- Applied patch to sendfile02 to allow the test   ( V.R. Sundar )
  to function correctly and keep track of its' 
  children.  
- Applied patch to setrlimit01 to test for        ( V.R. Sundar )
  SIGXFSZ
- Applied patch to swapoff02 and swapon02 to      ( Susanne Wintenberger )
  allow the test to use /dev/tty, instead of
  /dev/mouse.
- Applied buffer overflow patch to swapon02.      ( Chris Dearman )
- Added code to fptest03 to check endianess       ( Robbie Williamson )
  before defining unions.
- Added testsuite for multi-threaded core dump    ( Guo Min )
  kernel patch.
- Added netpipe as a network traffic generator    ( Robbie Williamson )
  tool.
- Added `cpio` command test.			  ( Manoj Iyer )
- Added `ln` command test.			  ( Manoj Iyer )
- Added `cp` command test.			  ( Manoj Iyer )
- Added `mkdir` command test.			  ( Manoj Iyer )
- Added `mv` command test.			  ( Manoj Iyer )
- 

LTP-20030110

- Added New test case to test 'file' command.     ( Manoj Iyer )
- Added new test to test basic functionality of   ( Manoj Iyer )
  CRONTAB, CRON etc.
- Added new test case to test eject command       ( Manoj Iyer )
- Added new tests to test logrotate               ( Manoj Iyer )
- Added new testcase to test basic functionality  ( Manoj Iyer )
  of tar command.
- Fixed mem01: The free memory size was being     ( Robbie Williamson )
  incorrectly calculated, plus it could not
  handle large amounts of memory...now using
  long int, instead of int.
- Fixed mem01: Test was not cleaning up correctly ( Robbie Williamson )
  after a failure.
- Initial checkin of shmt, shared memory tests    ( Robbie Williamson )
  from SPIE suite
- Initial checkin of pty testcases: hangup01(),   ( Robbie Williamson )
  ptem01() and pty01() from SPIE testsuite.
- Added code to abort01.c to use the              ( Robbie Williamson )
  tst_tmpdir()/tst_rmdir() APIs
- Added ported abort() test                       ( Ananda Venkataraman )
- Added adjtimex() tests                          ( Saji Kumar )
- Added capget() tests                            ( Saji Kumar )
- Added capset() tests                            ( Saji Kumar )
- Added ported test, creat08                      ( Airong Zhang )
- create08 was initially ported to create users   ( Robbie Williamson )
  and groups that it needed. Rewrote the test to
  use existing users/groups that are checked for
  when the LTP is installed.
- Applied patch to create_module02 from creator   ( T.L.Madhu )
- Applied patch to delete_module02 from creator   ( T.L.Madhu )
- Added code to delete_module03 to allow tests to ( Robbie Williamson )
  execute under pan.
- Applied patch to delete_module03 from creator   ( T.L.Madhu )
- Added ported dup06 and dup07 tests              ( Airong Zhang )
- Added ported dup202 and dup205 tests            ( Airong Zhang )
  and cleaned up some other files
- Initial checkin of fdatasync() tests            ( T.L. Madhu )
- Added new flock04 and flock05 tests             ( Vatsal Avasthi )
- Added ported fmtmsg() test                      ( Ananda Venkataraman )
- Added functional test to gethostid01 to compare ( Paul Larson )
  result from gethostid() versus the hostid
  command
- Initial checkin of getrusage() tests            ( Saji Kumar )
- Added ioperm() tests                            ( Subhabrata Biswas )
- Added iopl() tests                              ( Subhab Biswas )
- Added ported kill() tests                       ( Ananda Venkataraman )
- Added ported mallopt() test                     ( Ananda Venkataraman )
- Added ported memcmp() test                      ( Ananda Venkataraman )
- Added ported memcpy() test                      ( Ananda Venkataraman )
- Added ported memset() test                      ( Ananda Venkataraman )
- Fixed mkdir09: the getopts() call was returning ( Robbie Williamson )
  it's -1 to a char variable.  This was incorrect
  and causing the test to loop forever on certain
  architectures.
- Initial checkin of munlockall() tests           ( Sowmya Adiga )
- Fixed nftw64: tst_rmdir was in the wrong        ( Robbie Williamson )
  location.
- Added ported open09() test                      ( Airong Zhang )
- Initial checkin of prctl() tests                ( Saji Kumar )
- Added ported profil() test                      ( Ananda Venkataraman )
- Initial checkin of ptrace() tests               ( Saji Kumar )
- Added code to query_module tests to allow       ( Robbie Williamson )
  execution under pan.
- Initial checkin of reboot() tests               ( Aniruddha Marathe )
- Initial checkin of sched_rr_get_interval tests  ( Saji Kumar )
- Added setresgid() tests                         ( T.L. Madhu )
- Fixed setrlimit03 to work on 2.5 and cleanup    ( Paul Larson )
- Added socketcall() tests                        ( Adiga Sowmya )
- Added ported string.h test string01             ( Ananda Venkataraman )
- Added swapoff() tests                           ( Aniruddha Marathe )
- Added swapoff() tests                           ( Aniruddha Marathe )
- Added swapon() test                             ( Aniruddha Marathe )
- Made corrections to swapon02 to make sure the   ( Robbie Williamson )
  child exits.
- Added ported syscall() test                     ( Ananda Venkataraman )
- Removed an erroneous testcase in sysconf01 and  ( Robbie Williamson )
  corrected a typo issue.
- Initial checkin of sysfs() tests                ( Aniruddha Marathe )
- Made changes to allow the syslog tests to       ( Robbie Williamson )
  execute in pan and corrected a bug in backup
  code for syslog.conf original file.
- Added syslog11 & syslog12 tests                 ( T.L. Madhu )
- Fixed syslogtst if-statement comparing a file   ( Robbie Williamson )
  descriptor to a hardcoded number was changed to
  allow the test to run under pan.
- Changed the file opened for the 6th case in     ( Robbie Williamson )
  syslogtst.
- Added ported abs() test                         ( Ananda Venkataraman )
- Added ported atof() test                        ( Ananda Venkataraman )
- Added ported nextafter() test                   ( Ananda Venkataraman )
- Corrected bug in cleanup section of fsx.sh      ( Robbie Williamson )
- Added code to rusers01 to change a FQDN in      ( Robbie Williamson )
  RHOST to short name.
- Fixed testsf_c bug in char* not large enough to ( Robbie Williamson )
  hold argv[4] string.
- Added command line version of LTP harness APIs  ( Manoj Iyer )
  these commands will print LTP test results in
  LTP harness format just like the ones printed
  by C testcases.  These commands can be used in
  shell scripts and other non-C testcases.
- Added load generator tool, stress               ( Amos Waterland )
- Modified runalltests.sh to print default        ( Manoj Iyer )
  settings
- Modified runalltests.sh to run LTP under stress ( Manoj Iyer )



LTP-20021210
------------

- Added 5 new sched_setparam() tests              ( Saji Kumar )
- Added new syslog() tests.                       ( David Barrera )
- Fix compile errors with *_module tests          ( Paul Larson )
- Added additional semctl tests, semctl06 and     ( David Barrera )
  semctl07.
- Added additional msgctl tests.                  ( David Barrera )
- Added mkdir09.                                  ( David Barrera )
- Added mem02.                                    ( David Barrera )
- Added floating point tests, fptest01, fptest02, ( Jacky Malcles )
  fptest03.
- Added inode01 and inode02                       ( Robbie Williamson )
- Added vmtests, data_space and stack_space.      ( Robbie Williamson )
- Added page tests, page01 and page02.            ( Robbie Williamson )
- Added sysconf() test.                           ( Robbie Williamson )
- Added rename14                                  ( Robbie Williamson )
- Added nftw() tests.                             ( Robbie Williamson )
- Added confstr() test.                           ( Robbie Williamson )
- Added acct() tests.                             ( Robbie Williamson )
- Added flock03 to try relocking after unlocking. ( Paul Larson )
  To reproduce bug #7 in osdl's bugzilla.
- Corrected a typo in ar01.  A "=" was used,      ( Robbie Williamson )
  instead of an "==" found by Airong Zhang.
- Added 3 new sched_getparam tests                ( Saji Kumar )
- Added query_module() tests                      ( T.L.Madhu )
- Added 2 new flock() tests                       ( Vatsal Avasthi )
- Added munlock() tests                           ( Nirmala Devi Dhanasekar )
- Added umount() tests                            ( Nirmala Devi Dhanasekar )
- Added mount tests                               ( Nirmala Devi Dhanasekar )
- Added 2 new tests for sched_get_priority_min    ( Saji Kumar )
- Added 2 new tests for sched_get_priority_max    ( Saji Kumar )
- patch for sched_setscheduler01 to add           ( Saji Kumar )
  a test case for calling sched_setscheduler()
  with an invalid priority
- Added mlockall() tests                          ( Nirmala Devi Dhanasekar )
- Added delete_module tests                       ( T.L.Madhu )
- fix to readlink04.c. was creating a             ( Robbie Williamson )
  testfile called "testfile" in /, instead of the
  temp dir created for the test.
- Added getdomainame test                         ( Saji Kumar )
- warning cleanup patches. removed additional     ( Saji Kumar )
  warnings created when -Wall option used.
  also fixed Makefiles to correctly locate
  the libraries and header files necessary for
  compilation.
- Added 6 new clone() tests                       ( Saji Kumar )
- PPC fixes to ar, semctl04, and read02           ( Anton Blanchard )
- MULTIPLE cleanups and fixes                     ( Ihno Krumreich )
- Increased the default setting for MAXIDS number ( Robbie Williamson )
  to 2048 in semget05.
- Test was running to /dev/tty3, which does not   ( Robbie Williamson )
  exist on some Linux installations. changed it
  to /dev/tty for better general use.
- Added create_module tests                       ( T.L.Madhu )
- patch to cleanup warnings in syscall tests      ( Saji Kumar )
- Corrected typo in rusers01                      ( Robbie Williamson )
- Replaced sigset() with sigaction() in write04.  ( Manoj Iyer )



LTP-20021107
------------
- Added "setdomainname01", "setdomainname02",     ( Saji Kumar )
  and "setdomainname03" to "syscalls" runtest file
- Added "sethostname01", "sethostname02",         ( Suresh Babu )
  and "sethostname03" to "syscalls" runtest file
- Fixed bug introduced in "fsstress.c"            ( Andi Kleen, Andrew Morton )
- Fix "chdir03.c" to remove unintentional \n in   ( Paul Larson )
  the directory name
- Added code to remove the tmp test dir           ( Robbie Williamson )
  in "fcntl11.c"
- fix for "shmctl01.c" to get rid of the shmdt    ( Manfred Spraul )
  failures in "shmctl01"
- Fix for "readdir01" slightly incorrect errno    ( Paul Larson )
  handling
- Back out "readv01", "readv02" changes to        ( Paul Larson )
  expect EINVAL when count==0.  Kernel is going 
  to keep the old behaviour.
- Fix for "waitpid02". uses undefined div by      ( Paul Larson )
  0 behaviour 
- Revert "writev01.c" back to not expect EINVAL   ( Paul Larson )
  when count==0
- Fix for "mc_commo". Changed a 'ps -ef' command  ( Robbie Williamson )
  to 'ps -ewf' to ensure that a grep finds the 
  info it needs.
- Fix in mc_member. Corrected typo causing false  ( Robbie Williamson )
  pass. Found by Li Ge <lge@us.ibm.com>
- Fix in "tcpdump01". Removed erroneous INTERFACE ( Robbie Williamson )
  declaration.
- Fix tools/ltprun to use the new runalltests     ( William Jay Huie )
  semantics
- Added fsxtest02.  Similar test to fsxtest, but  (Robbie Williamson)
  this test runs fsx-linux on a file created in 
  the $TCtmp directory. No unformatted partition 
  required.



LTP-20021002
------------
- Added "shmctl04" to test the SHM_INFO command  ( Mingming Cao )
- Fix for improper child exit in "execve02"      ( Colin Gibbs )
- Fix for "nanosleep02" to eliminate false       ( Andreas Arcangeli )
  positives
- Fix for "personality01 to undef the personality( Marcus Meissner )
  macro before calling personality()
- Fix for "sendfile02" that adds a waitpid() call( Susanne Wintenberger )
  to guarantee child exit before the test ends
- Fix for /tools/rand_lines.c that eliminates an ( Nathan Straz )
  IA64 compile time warning
- Added "shmctl04" to the "syscalls" runtest file( Paul Larson )
- Removed test 8 from "diotest4". Opening a      ( Paul Larson )
  directory for direct I/O is not allowed.
- Fix for PPC cross compile issues applied to:   ( Paul Larson )
    "mmap01"
    "pth_str01"
    "pth_str03"
    "shmem_test_04"
- Fix for "fcntl01" to allow it to run without   ( Paul Larson )
  predefining the file descriptors
- Fix for "readv02" to check for EINVAL on       ( Paul Larson )
  2.5.35 and above kernels
- Fix for "stime01" to allow the checked time to ( Paul Larson )
  be off +1 second
- Fix for "writev01" to check for EINVAL on      ( Paul Larson )
  2.5.35 and above kernels
  



LTP-20020910
------------
- Fix path in runpan.sh                          ( Paul Larson )
- runtest/syscalls:
        a.Removed the {} from the environment    ( Robbie Williamson )
          variables
        b.Comment out stime01, since it sets     ( David Barrera )
          the system time forward and could
          cause problems with several other
          tests if it's running at the same
          time (-x nn)
- Renamed the fsx-linux test on nfs to           ( Robbie Williamson )
  "nfsx-linux"
- fsxtest: Added code to handle JFS.             ( Robbie Williamson )
- ld01: Made the diff case insensative for       ( Robbie Williamson )
  cross-platform compatibility.
- Removed obsolete test, "ulimit", from          ( Robbie Williamson)
  automatic build and install.
- Moved the 'chown' commands to "install         ( Robbie Williamson )
  section in the Makefile of fchmod
- Applied patches for s390                       ( Susanne Wintenberger )
- Applied patches for IA64                       ( Jacky Malcles )
- Applied patch for adding some missing includes ( Andreas Jaeger )
  to remove warnings about missing prototypes
- Applied x86-64 patch for ldd01                 ( Andreas Jaeger )
- Fix for ar01 hang when filesystem is full      ( Paul Larson )
- Make ltp run with uClibc                       ( Steven J. Hill )
- Fix compiler warnings in various tests         ( Xiao Feng Shi )
- Clean up many of the mktemp warnings           ( Paul Larson )
  And use mkstemp in tst_tmpdir()
- Applied pan/logfile/tools patches.             ( William J. Huie )
- Use regular instead of mandatory locks in      ( Matthew Wilcox )   
  fcntl09, fcntl10, fcntl11 to fix with NFS
- Fix pids in fcntl11, fcntl19, fcntl20, fcntl21 ( Paul Larson )
  to be pid_t instead of short for 2.5 compat
- Add command line options to runalltests.sh to  ( Randy Hron, 
  allow setting of various pan options and         Paul Larson,
  changing the temp directory                      Nate Straz )
- Added automation documentation to /doc         ( Jeff Martin )
- Patched nanosleep02.c to correctly test the    ( Andrea Arcangeli )
  functionality and avoid false positives.


LTP-20020813
------------
* Fixes
-------
- Fix runtest/commands to export the	 	( Paul Larson	     )
  correct TCdat
- Add some missing includes and remove 		( Andreas Jaeger     )
  warnings about missing prototypes
- Add better initialization to waitpid05,	( Robbie Williamson  )
  signal04, getgroups01
- Fix sockioctl01 to work even if fd0 isn't	( Paul Larson        )
  open
- Fix mmstress path problems, now uses execvp	( Paul Larson        )

LTP-20020807
------------

* New Additions
---------------
- Added new testcases of link07,fcntl22,link06          ( Bull Group        )
- Added linux kernel scheduler latency tester           ( Davide Libenzi    )
- Database test tool 'dbgrinder'                        ( James Kenefick    )

* Fixes
-------
- Several fixes for 64-bit                              ( Gerhard Tonn      )
- fstat05,llseek fixes for MIPS                         ( Carsten Langgaard )
- Fixed check in getgroups03 that was causing 
  failures if 'nobody' isn't in any secondary groups    ( Paul Larson       )
- Fix sendfile02 to work with the new 2.5 kernels which 
  no longer allow it to fall back on write              ( Paul Larson       )
- Changed the hardcoded ip address to 127.0.0.1 in 
  recvfrom01-sctp-udp-ipv6                              ( Robbie Williamson )
- Added instance and time command line options in
  runalltests.sh                                        ( Jeff Martin       )
- Fixed the algorithm description for fork07,fork12     
  Reduced the output of fork07 to a finite amount       ( Nathan Straz      )
- Added fork12 to runtest/crashme.                      ( Nathan Straz      )
- Added option for interface selection in tcpdump01     ( Robbie Williamson )


LTP-20020709
-----------
* New Additions
---------------
- New testcases fcntl22, link06, link07,
  mknod09                                        ( Bull Group         )
- New sctp tests                                 ( Robert Williamson  )
- New direct IO tests                            ( Narasimha Sharoff  )
- mlock01 and mlock02 tests                      ( Paul Larson        )

* Fixes
----------------
- MIPS fixes; write01                            ( Shaobo Li          )
- patches for 64bit and warnings                 ( Ihno Krumreich     )
- fixes for ftruncate02, fchown03                ( Robert Williamson  )
  - updates to LTP scripts                         ( Nathan Straz       )

LTP-20020607
------------
* New Additions
- Tests if gettimeofday02 is monotonous      ( Andi Kleen          )
- Added new tests readv03, setgroups04
  and truncate04                             ( Group Bull          )

* Fixes
----------------
- Bug fixes and ports for MIPS               ( Johannes Stezenbach )
- Fixes BROKs on 64bit x86,ISO-C complience  ( Andi Kleen          )
- 64 bit bug fixes and remove warnings
  on 64 bit arch                             ( Ihno Krumreich      )
- Clean up warnings on s390                  ( William Jay Huie    )
- Improvements on fstat05 for IA64           ( Group Bull          )
- Testcase ID clean ups, improvements
  to mallocstress                            ( Nathan Straz        )
- Fix warnings and bugs in clisrv
  and mallocstress   i                       ( Dan Kegel           )
- Fixed sendfile601 for IPV6                 ( Robert Willionsom   )
- Fixes for shmctl & mprotect03              ( Paul Larson         )
- multicast testcase fixes                   ( Ted Cheslak         )
- Automation: added sar results to ltp_check ( Casey Abell         )
- Automation: added function to ltp_check    ( Li Ge               )


LTP-20020507
------------

* New Additions
  - New syscalls tests, chroot, fchdir, fstat 
    pread, pwrite, and reddir.                      (Bull )
  - New syscalls test.                              ( Ihno Krumreich )

* Fixes
  - S390 bug fixes, patches to remove complier 
    warnings.                                       ( Ihno Krumreich )
  - S390 bug fixes.                                 ( William Jay Huie )
  - LTP Automation script updates.                  ( William Jay Huie )
  - make testcases work without a controlling tty.  
    for recv01, recvfrom01 and recvmsg01.           ( Paul Larson )
  - Networking test updates, multiple concurrent
    runs.                                           ( Robert Williamson )
  - test01 patch for wrap around at 2gigs           ( Randall Hron )
  - patches to syscalls test wait402, chdir03	    ( Andreas Jaeger )


CVS Bugs closed.
----------------
  #545739 fcntl17 failing getting unexep. sig13     ( Paul Larson )

LTP-20020408
-----------
* New Additions
  - Scripts to automate LTP test suite execution.   ( William Jay Huie )
  - IPV6 port of NetPIPE, network stress tool.      ( Robert Williamson )

* Fixes
  - Numerous 64-bit updates, remove warnings
    and errors.                                     ( Andi Kleen )
  - 64-bit patches to memory and IPC tests.         ( Ihno Krumreich )
  - 64-bit IA64 port related patches.               ( Jacky Malcles )
  - patches to remove warnings and bugs.            ( Andreas Jaeger )
  - mmstress bug: deletes /dev/zero.                ( Sachin Vyas )
  - sem02: make test remove semids it created.      ( Robert Williamson )
  - Report missing groups and users in IDcheck.sh   ( Robert Williamson )
  - expected error modified in mprotect and
    msync tests.                                    ( Paul Larson )
  - make testcases work without a controlling tty.  ( Paul Larson )

CVS Bugs closed.
~~~~~~~~~~~~~~~~
 #536483 sem02 does not clean up /tmp directory   (Robert Willamson


LTP-20020307
------------
o	fixed IDcheck.sh to prompt for IDs only when missing (Jay Huie)
o	added time duration option to pan (Jay Huie)
o	added 4 more cases to getcwd02 test (Jay Huie)
o	added time-schedule tool by Richard Gooch under sched test
	section (Manoj Iyer)
o	added trace_sched tool under sched test section (Manoj Iyer)
o	added sigpending02 test to syscalls section (Paul Larson)
o       created a KNOWN-FAILURES file to document known 
        test failures (Robbie Williamson)
o	added sem02 test to ipc section (Robbie Williamson)
o	added SCTP section to network tests (Robbie Williamson)
o	added disktest by Brent Yardley to io section (Robbie Williamson)
o	closed the following bugs:
	[ #491285 ] recvfrom01 test (Paul Larson)
	[ #491286 ] recvmsg01 test (Robbie Williamson)
	[ #505515 ] perf_lan6 test (Robbie Williamson)
	[ #506536 ] recv01 test (Robbie Williamson)
	[ #514408 ] chown05 (Dave Engebretsen)
	[ #511427 ] pread02 test (Paul Larson)
	[ #516577 ] ftruncate03 test (Jay Huie)
	[ #523055 ] sched_getscheduler test (Paul Larson)
	[ #523137 ] sched_setscheduler02 test (Paul Larson)
	[ #525688 ] sendfile01 (Paul Larson)


LTP-20020207
------------
o       added support for cross-compiling (Todd Inglett)
o       added LKML's cache_leak testcase to ltp/scratch (Nate Straz)
o       added IPv6 support (Robbie Williamson)
o       added "gethost" to /tools (Robbie Williamson)
o	fixed the race conditions in the float tests and removed 
	the sleeps (Robbie Williamson)
o       enabled non-root make authority (Paul Larson)
o       separated compilation into "make" and "make install" (Paul Larson)
o       added ipc_stress test (Manoj Iyer)
o       added pthreads_stress test (Manoj Iyer)
o       made changes to support architecture independence (Manoj Iyer & Paul Larson)
o	closed the following bugs: 
	504960, 505108, 504613, 504616, 491283, 506689, 508055, 506692, 508074
	491289, 506662, 511383, 511391, 511427, 511494, 504649, 514050, 512953
	(Manoj Iyer, Paul Larson, and Robbie Williamson)	


LTP-20020108
------------
o	fixed IDcheck.sh to work with bash1 (Nate Straz)
o	updated menu script (Robbie Williamson)
o	reset errno to 0 at the beginning of TEST macro (Paul Larson)
o	added floating point stress tests (Bull/IBM)
o	added fsx-linux NFS tests (Apple)	
o	define GLIBC_SIGACTION_BUG for sigaction02 (Robbie Williamson)
o	removed bogus testcase from dup201 test (Paul Larson)
o	fixed recvfrom01 case 5 (Wayne Boyer)
o	workaround for smp issue with waitpid12 (Manfred Spraul)


LTP-20011206
------------
o	necessary users/groups can now be created on installation with 
	user's permission
o	added a simple menu-based interface for running the LTP testsuite
o	fixed negative duration in pan output when -l isn't used
o	new set of tests under fs-maim
o	fixed race condition in nfslock01
o	ar01, ld01, ldd01, nm01, objdump01, and size01 fixed when multiple 
	copies are run simultaneously
o	workaround for SIGTTOU hang in ioctl02
o	shmget03 uses IPC_PRIVATE to make it safe when running multiple copies
o	compiler warnings and other minor errors fixed in many tests

LTP-20011107
------------
o	Many improvements to mtest05 and mtest06 tests
o	new test nfsstress
o	included ver_linux in LTP and made it run at the end of test scripts
o	check for necessary users/groups in Makefile and warn if they don't
	exist
o	documented the users and groups necessary for the testcases to run
o	simplified telnet01 when looking for root prompt
o	removed incorrect testcase from sendfile03
o	fixed modify_ldt01 test problems on newer kernels
o	added setrlimit to unlimit core size in waitpid05 test to work 
	around systems where this is set to 0
o	fixed mmstress pthread hang problem

LTP-20010925
------------
o	Testcases have been organized into categories in a directory 
	structure under the testcases subdirectory
o	About 400 new testcases added covering various system calls
o	Andreas Jaeger got confirmation from the glibc people that the
	ulimit test was broken as a result of some changes made in 
	glibc2.2.5.  Since it's the test that's broken, Nate Straz 
	removed the offending testcase.
o	Updated README and INSTALL files
o	Descriptions of the testcases have been added to the doc 
	directory and are organized by type (syscalls.txt, fs.txt, etc.)

------------
2000-09-18 Juan J. Quintela <quintela@fi.udc.es>
           Aaron Laffin <alaffin@sgi.com>

  * tests/mmap001.c: first checkin of a modified version of
  mmap001.c from the memtest suite.

2000-09-08  Egor Duda <deo@logos-m.ru>

	* tests/fpathconf01.c: Close opened file at exit.
	* tests/select01.c: Ditto.

2000-09-08  Andrea Arcangeli <andrea@suse.de>
  * tests/fcntl09.c, tests/fcntl10.c: Rearrange the F_SETLK test to
  to correctly use F_RDLCK and F_WRLCK.

2000-09-06  Egor Duda  <deo@logos-m.ru>

	* lib/parse_opts.c (parse_opts): Initialize allocated string
	to prevent heap corruption.



