2 (Maintained by: Subrata Modak<subrata@linux.vnet.ibm.com>)
4 The latest image is always available at http://ltp.sf.net
7 About the Linux Test Project
9 The Linux Test Project is a joint project with SGI, IBM, OSDL, and Bull with a
10 goal to deliver test suites to the open source community that validate the
11 reliability, robustness, and stability of Linux. The Linux Test Project is a
12 collection of tools for testing the Linux kernel and related features. Our goal
13 is to improve the Linux kernel by bringing test automation to the kernel testing
14 effort. Interested open source contributors are encouraged to join the project.
19 Here is a short description of what is included in this package
22 Installation documentation and quick start guide
28 Credits to those who have contributed to the project.
31 GNU General Public License
34 An incomplete list of changes to the project. We will try harder to
38 Top level make file for LTP.
41 A simple script to run all of the packaged tests in sequential order and
42 report the overall result.
45 A simple script to run all the diskio tests that pertain to the CD-ROM
46 and floppy disk file systems.
49 A simple script to run all the network related tests that require
50 another remote machine.
53 Documentation for the project including man pages for some of the
54 tools & library functions, as well as descriptions of every test.
59 The include and lib directories contain headers and codes for common
60 routines used by many of the tests. We have tried to keep this to a
64 Contains all tests that run under the LTP as well as the "bin"
65 directory, which has hardlinks to all the test executables.
68 It houses command lists that are used by ltp-pan for automated testing.
71 The pan directory contains a simple, lightweight test harness. lpt-pan
72 has the ability to run tests randomly and in parallel. See ltp-pan's man
73 page for more information.
76 The scratch directory is a dumping ground for snippets and test cases
77 that we found but haven't integrated into LTP yet. Feel free to suggest
78 new snippets to be added, or take one of these and finish it off.
80 testcases/kernel/containers/*
81 Contains all the testcases related to container functionality ( e.g: sysvipc, utsname etc..)
82 For further information on the each of the container functionality refer
83 the following file: testcases/kernel/containers/README
88 Be careful with these tests!
90 Don't run them on production systems. Growfiles, doio, and iogen in particular
91 stress the I/O capabilities of systems and while they should not cause problems
92 on properly functioning systems, they are intended to find (or cause) problems.
95 Contact Information and Updates
96 -------------------------------
98 URL: http://ltp.sf.net
100 Questions and comments should be sent to the LTP mailing list located on the
103 Using KDUMP test automation suite
104 ---------------------------------
105 For more information on how to use the kdump test automation suite please refer
106 to file testcases/kdump/README.
108 Using NUMA test automation suite
109 ---------------------------------
110 For more information on how to use the 'numa' test automation suite please refer
111 to file testcases/kernel/numa/README.
113 ---------------------------------
114 Enable CODE COVERAGE for your Kernel:
115 ---------------------------------
116 1) Apply kernel-gcov patch(s) against the corresponding Kernel. They are available here:
117 http://ltp.cvs.sourceforge.net/viewvc/ltp/utils/analysis/gcov-kernel/linux-2.*.*-gcov.patch?view=log,
118 2) Also enable the following options in your .config file before building the kernel
119 CONFIG_GCOV_PROFILE=y
124 ---------------------------------
125 Enabling Kernel Configuration to test Containers/Namespaces
126 ---------------------------------
136 The IPC namespaces do not automatically enable IPC, so you may
140 CONFIG_SYSVIPC_SYSCTL=y
141 CONFIG_POSIX_MQUEUE=y
143 ---------------------------------
144 Enabling Kernel Configuration to test Controllers
145 ---------------------------------
147 CONFIG_CGROUP_DEBUG=y
150 CONFIG_FAIR_GROUP_SCHED=y
151 CONFIG_RT_GROUP_SCHED=y
152 CONFIG_CGROUP_SCHED=y
153 CONFIG_CGROUP_MEM_RES_CTLR=y
155 ---------------------------------
156 Enabling Kernel Configuration to test Power Management features
157 ---------------------------------
159 CONFIG_CPU_FREQ_TABLE=y
160 CONFIG_CPU_FREQ_DEBUG=y
161 CONFIG_CPU_FREQ_STAT=y
162 CONFIG_CPU_FREQ_STAT_DETAILS=y
164 CONFIG_CPU_IDLE_GOV_LADDER=y
165 CONFIG_CPU_IDLE_GOV_MENU=y
167 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
168 CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
169 CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
170 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
171 CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y
172 CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
173 CONFIG_CPU_FREQ_GOV_POWERSAVE=y
174 CONFIG_CPU_FREQ_GOV_USERSPACE=y
175 CONFIG_CPU_FREQ_GOV_ONDEMAND=y
176 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
177 ---------------------------------
178 Enabling Kernel Configuration to test filecaps security feature
179 ---------------------------------
180 CONFIG_SECURITY_FILE_CAPABILITIES=y
181 ---------------------------------
182 Enabling Kernel Configuration to test p9auth security feature
183 ---------------------------------
186 # CONFIG_STAGING_EXCLUDE_BUILD is not set
188 (Or CONFIG_PLAN9AUTH=y)
189 You also will need openssl installed.
190 You will also need to have an user named 'ltp'
191 created to execute this test.
192 ---------------------------------
193 Enabling Kernel Configuration to test SELinux security feature
194 ---------------------------------
195 Your Kernel should have been built with the following options to
199 CONFIG_SECURITY_NETWORK=y
200 CONFIG_SECURITY_NETWORK_XFRM=y
202 CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
203 This has to be set to a positive value if you want to test this check.
204 Fedora kernels set it to 65536.
206 CONFIG_SECURITY_SELINUX=y
207 CONFIG_SECURITY_SELINUX_BOOTPARAM=y
208 CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
209 CONFIG_SECURITY_SELINUX_DEVELOP=y
210 CONFIG_SECURITY_SELINUX_AVC_STATS=y
211 CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
212 CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y
214 CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX=y
215 You don't want this one unless you are running Fedora 3 or 4.
216 On anything newer, it will cause unnecessary policy expansion.
218 CONFIG_SECURITY_SMACK=y
219 CONFIG_SECURITY_SELINUX=y
221 By default, if you boot with multiple LSMs compiled into the kernel, the
222 kernel won't boot succesfully - there can be only one (aside from
223 explicit internal "stacking" e.g. as is done for combining SELinux or
224 Smack with capabilities). Unless you use the security= option to select
225 one at boot. SELinux and Smack will honor the security= option.
226 ---------------------------------
227 ---------------------------------
228 Enabling Kernel Configuration to test SMACK security feature
229 ---------------------------------
232 CONFIG_SECURITY_NETWORK=y
233 CONFIG_SECURITY_SMACK=y
234 CONFIG_SECURITY_SELINUX should not be set
236 For more information to build/install/run these tests, look through:
237 ltp/testcases/kernel/security/smack/README
238 ---------------------------------
239 ---------------------------------
240 Enablement for Enhancement to kexec/kdump for implementing the following features:
241 - Backup/restore memory used by the original kernel before/after kexec.
242 - Save/restore CPU state before/after kexec.
243 Now, only the i386 architecture is supported. More from the following git logs:
244 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ab83521378268044a448113c6aa9a9e245f4d2f,
245 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=89081d17f7bb81d89fa1aa9b70f821c5cf4d39e9,
246 ---------------------------------
254 ---------------------------------
255 Enabling HOTPLUG for your Kernels
256 ---------------------------------
259 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
260 CONFIG_ACPI_HOTPLUG_CPU=y
261 CONFIG_HOTPLUG_PCI_PCIE=y
263 CONFIG_HOTPLUG_PCI_FAKE=y
264 CONFIG_HOTPLUG_PCI_COMPAQ=y
265 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
266 CONFIG_HOTPLUG_PCI_IBM=y
267 CONFIG_HOTPLUG_PCI_ACPI=y
268 CONFIG_HOTPLUG_PCI_ACPI_IBM=y
269 CONFIG_HOTPLUG_PCI_CPCI=y
270 CONFIG_HOTPLUG_PCI_CPCI_ZT5550=y
271 CONFIG_HOTPLUG_PCI_CPCI_GENERIC=y
272 CONFIG_HOTPLUG_PCI_SHPC=y
273 ---------------------------------
274 Video For Linux Two API testing Requirements:
275 You need to have a video device (i.e. webcam, tuner card, etc.) connected to your system and available under /dev/video0. If you don't have any hardware device available, you can still test the "Virtual Video Driver". To compile this you need to compile your kernel with CONFIG_VIDEO_VIVI=m under:
277 -> Multimedia devices
279 -> Video capture adapters
280 -> Virtual Video Driver
282 The tests also require CUnit Framework to be installed before compiling the tests. Download & Install the same from:
283 http://sourceforge.net/projects/cunit/
284 ---------------------------------
285 ---------------------------------
286 Native language support (nls) testsuite requirements
287 ----------------------------------------------------
290 ---------------------------------
291 Enabling Controller area network (CAN) protocol support for your Kernels
292 ---------------------------------
299 ---------------------------------
300 Enabling Fault Injection Support for your kernel (version 2.6.29).
301 Please check with the original kernel for the fault injection
302 types it supports. Following supports will be available:
304 /sys/kernel/debug/fail_io_timeout/interval
305 /sys/kernel/debug/fail_io_timeout/probability
306 /sys/kernel/debug/fail_io_timeout/reject-end
307 /sys/kernel/debug/fail_io_timeout/reject-start
308 /sys/kernel/debug/fail_io_timeout/require-end
309 /sys/kernel/debug/fail_io_timeout/require-start
310 /sys/kernel/debug/fail_io_timeout/space
311 /sys/kernel/debug/fail_io_timeout/stacktrace-depth
312 /sys/kernel/debug/fail_io_timeout/task-filter
313 /sys/kernel/debug/fail_io_timeout/times
314 /sys/kernel/debug/fail_io_timeout/verbose
316 /sys/kernel/debug/fail_make_request/interval
317 /sys/kernel/debug/fail_make_request/probability
318 /sys/kernel/debug/fail_make_request/reject-end
319 /sys/kernel/debug/fail_make_request/reject-start
320 /sys/kernel/debug/fail_make_request/require-end
321 /sys/kernel/debug/fail_make_request/require-start
322 /sys/kernel/debug/fail_make_request/space
323 /sys/kernel/debug/fail_make_request/stacktrace-depth
324 /sys/kernel/debug/fail_make_request/task-filter
325 /sys/kernel/debug/fail_make_request/times
326 /sys/kernel/debug/fail_make_request/verbose
328 /sys/kernel/debug/fail_page_alloc/ignore-gfp-highmem
329 /sys/kernel/debug/fail_page_alloc/ignore-gfp-wait
330 /sys/kernel/debug/fail_page_alloc/interval
331 /sys/kernel/debug/fail_page_alloc/min-order
332 /sys/kernel/debug/fail_page_alloc/probability
333 /sys/kernel/debug/fail_page_alloc/reject-end
334 /sys/kernel/debug/fail_page_alloc/reject-start
335 /sys/kernel/debug/fail_page_alloc/require-end
336 /sys/kernel/debug/fail_page_alloc/require-start
337 /sys/kernel/debug/fail_page_alloc/space
338 /sys/kernel/debug/fail_page_alloc/stacktrace-depth
339 /sys/kernel/debug/fail_page_alloc/task-filter
340 /sys/kernel/debug/fail_page_alloc/times
341 /sys/kernel/debug/fail_page_alloc/verbose
343 /sys/kernel/debug/failslab/ignore-gfp-wait
344 /sys/kernel/debug/failslab/interval
345 /sys/kernel/debug/failslab/probability
346 /sys/kernel/debug/failslab/reject-end
347 /sys/kernel/debug/failslab/reject-start
348 /sys/kernel/debug/failslab/require-end
349 /sys/kernel/debug/failslab/require-start
350 /sys/kernel/debug/failslab/space
351 /sys/kernel/debug/failslab/stacktrace-depth
352 /sys/kernel/debug/failslab/task-filter
353 /sys/kernel/debug/failslab/times
354 /sys/kernel/debug/failslab/verbose
356 when the below kernel config options are set:
358 CONFIG_FAULT_INJECTION=y
359 CONFIG_DEBUG_KERNEL=y
360 CONFIG_FAILSLAB=y (Fault-injection capability for kmalloc)
361 (CONFIG_SLAB=y || CONFIG_SLUB=y) if CONFIG_FAILSLAB=y
362 CONFIG_FAIL_PAGE_ALLOC=y (Fault-injection capabilitiy for alloc_pages())
363 CONFIG_FAIL_MAKE_REQUEST=y (Fault-injection capability for disk IO)
364 CONFIG_BLOCK=y if CONFIG_FAIL_MAKE_REQUEST=y
365 CONFIG_FAIL_IO_TIMEOUT=y (Faul-injection capability for faking disk interrupts)
366 CONFIG_BLOCK=y if CONFIG_FAIL_IO_TIMEOUT=y
367 CONFIG_FAULT_INJECTION_DEBUG_FS=y (Debugfs entries for fault-injection capabilities)
368 (CONFIG_SYSFS=y && CONFIG_DEBUG_FS=y) if CONFIG_FAULT_INJECTION_DEBUG_FS=y
369 CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y (stacktrace filter for fault-injection capabilities)
370 (CONFIG_FAULT_INJECTION_DEBUG_FS=y && CONFIG_STACKTRACE_SUPPORT=y && !CONFIG_X86_64) if
371 CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
373 For more information on Fault injection, please refer to:
374 linux-2.6/Documentation/fault-injection/fault-injection.txt,
376 You should also have made the following entries in your /etc/fstab file
377 once the kernel is booted with the above CONFIG options set:
379 debugfs /sys/kernel/debug/ debugfs
381 # How the Kernel Fault Injection works for LTP ?
383 1) Build Kernel with all the above possible kernel CONFIG Options,
384 2) Create the above entry in /etc/fstab file,
385 3) Reboot in the new kernel,
386 4) Goto LTPROOT. Build and Install LTP as per ltp/INSTALL file,
387 5) Choose your own test(or default) to run with fault injection as follows:
388 ./runltp -f <command_file> -F <LOOPS>,<FAULT_PROBABILITY>
390 The agorithm will work as:
391 loop (for each testcase)
393 execute_testcase(inside_stable_kernel)
395 insert_fault_into_kernel()
398 execute_testcase(inside_fault_kernel)
400 restore_kernel_to_normal()
405 1) Add as many framework as they get added/modifed in the kernel
406 ---------------------------------
408 ---------------------------------
409 Enabling Kernel Configuration to test ext4 new features
410 ---------------------------------
412 CONFIG_EXT4DEV_COMPAT=y
413 CONFIG_EXT4_FS_XATTR=y
414 CONFIG_EXT4_FS_POSIX_ACL=y
415 CONFIG_EXT4_FS_SECURITY=y
417 Beside that, the following packages are necessary.
421 And the version of packages must be 1.41.4 or above.
423 For more information to build/install/run these tests, look through:
424 ltp/testcases/kernel/fs/ext4-new-features/README
425 ---------------------------------