Home | History | Annotate | only in /external/ltp
Up to higher level directory
NameDateSize
.gitignore05-Oct-20171.1K
.gitmodules05-Oct-2017150
android/05-Oct-2017
Android.bp05-Oct-20172.2K
Android.mk05-Oct-2017642
configure.ac05-Oct-20174.2K
COPYING05-Oct-201717.7K
doc/05-Oct-2017
execltp.in05-Oct-201715.9K
gen.bp05-Oct-2017388.8K
IDcheck.sh05-Oct-20174.8K
include/05-Oct-2017
INSTALL05-Oct-201712.2K
lib/05-Oct-2017
ltpmenu05-Oct-201719K
m4/05-Oct-2017
Makefile05-Oct-20177.4K
Makefile.release05-Oct-20171.4K
pan/05-Oct-2017
README05-Oct-20171.7K
README.kernel_config05-Oct-201710.7K
runalltests.sh05-Oct-201719.8K
runltp05-Oct-201738.3K
runltplite.sh05-Oct-201710.8K
runtest/05-Oct-2017
scenario_groups/05-Oct-2017
scripts/05-Oct-2017
testcases/05-Oct-2017
testscripts/05-Oct-2017
TODO05-Oct-20171.3K
tools/05-Oct-2017
utils/05-Oct-2017
ver_linux05-Oct-20172.5K
VERSION05-Oct-20179

README

      1 Linux Test Project
      2 ------------------
      3 
      4 Linux Test Project is a joint project started by SGI, OSDL and Bull developed
      5 and maintained by IBM, Cisco, Fujitsu, SUSE, Red Hat, Oracle and others. The
      6 project goal is to deliver tests to the open source community that validate the
      7 reliability, robustness, and stability of Linux.
      8 
      9 The LTP testsuite contains a collection of tools for testing the Linux kernel
     10 and related features. Our goal is to improve the Linux kernel and system
     11 libraries by bringing test automation to the testing effort. Interested open
     12 source contributors are encouraged to join.
     13 
     14 Project pages are located at: http://linux-test-project.github.io/
     15 
     16 The latest image is always available at:
     17 https://github.com/linux-test-project/ltp/releases
     18 
     19 The discussion about the project happens at ltp mailing list:
     20 http://lists.linux.it/listinfo/ltp
     21 
     22 The git repository is located at GitHub at:
     23 https://github.com/linux-test-project/ltp
     24 
     25 Warning!
     26 --------
     27 Be careful with these tests!
     28 
     29 Don't run them on production systems. Growfiles, doio, and iogen in particular
     30 stress the I/O capabilities of systems and while they should not cause problems
     31 on properly functioning systems, they are intended to find (or cause) problems.
     32 
     33 Developers corner
     34 -----------------
     35 
     36 Before you start you should read following documents:
     37 
     38 * doc/test-writing-guidelines.txt
     39 * doc/build-system-guide.txt
     40 
     41 these two should contain all information needed for modifying or creating LTP
     42 testcases. If something is not covered there don't hesitate to ask on the LTP
     43 mailing list.
     44 
     45 Also note that these documents are available online at:
     46 
     47 https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines
     48 https://github.com/linux-test-project/ltp/wiki/BuildSystem
     49 

README.kernel_config

      1 ---------------------------------
      2 Enable CODE COVERAGE for your Kernel:
      3 ---------------------------------
      4 1) Apply kernel-gcov patch(s) against the corresponding Kernel. They are available here:
      5 http://ltp.cvs.sourceforge.net/viewvc/ltp/utils/analysis/gcov-kernel/linux-2.*.*-gcov.patch?view=log,
      6 2) Also enable the following options in your .config file before building the kernel
      7 CONFIG_GCOV_PROFILE=y
      8 CONFIG_GCOV_ALL=y
      9 CONFIG_GCOV_PROC=m
     10 CONFIG_GCOV_HAMMER=y
     11 
     12 ---------------------------------
     13 Enabling Kernel Configuration to test Containers/Namespaces
     14 ---------------------------------
     15 CONFIG_NAMESPACES=y
     16 CONFIG_UTS_NS=y
     17 CONFIG_IPC_NS=y
     18 CONFIG_USER_NS=y
     19 CONFIG_PID_NS=y
     20 CONFIG_NET_NS=y
     21 CONFIG_VETH=y
     22 CONFIG_MACVLAN=y
     23 
     24 The IPC namespaces do not automatically enable IPC, so you may
     25 also want to have:
     26 
     27 CONFIG_SYSVIPC=y
     28 CONFIG_SYSVIPC_SYSCTL=y
     29 CONFIG_POSIX_MQUEUE=y
     30 
     31 ---------------------------------
     32 Enabling Kernel Configuration to test Controllers
     33 ---------------------------------
     34 CONFIG_CGROUPS=y
     35 CONFIG_CGROUP_DEBUG=y
     36 CONFIG_CGROUP_NS=y
     37 CONFIG_GROUP_SCHED=y
     38 CONFIG_FAIR_GROUP_SCHED=y
     39 CONFIG_RT_GROUP_SCHED=y
     40 CONFIG_CGROUP_SCHED=y
     41 CONFIG_CGROUP_MEM_RES_CTLR=y
     42 CONFIG_LOCKDEP=y
     43 ---------------------------------
     44 Enabling Kernel Configuration to test Power Management features
     45 ---------------------------------
     46 CONFIG_CPU_FREQ=y
     47 CONFIG_CPU_FREQ_TABLE=y
     48 CONFIG_CPU_FREQ_DEBUG=y
     49 CONFIG_CPU_FREQ_STAT=y
     50 CONFIG_CPU_FREQ_STAT_DETAILS=y
     51 CONFIG_CPU_IDLE=y
     52 CONFIG_CPU_IDLE_GOV_LADDER=y
     53 CONFIG_CPU_IDLE_GOV_MENU=y
     54 CONFIG_SCHED_MC=y
     55 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
     56 CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
     57 CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
     58 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
     59 CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y
     60 CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
     61 CONFIG_CPU_FREQ_GOV_POWERSAVE=y
     62 CONFIG_CPU_FREQ_GOV_USERSPACE=y
     63 CONFIG_CPU_FREQ_GOV_ONDEMAND=y
     64 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
     65 ---------------------------------
     66 Enabling Kernel Configuration to test filecaps security feature
     67 ---------------------------------
     68 CONFIG_SECURITY_FILE_CAPABILITIES=y
     69 ---------------------------------
     70 Enabling Kernel Configuration to test SELinux security feature
     71 ---------------------------------
     72 Your Kernel should have been built with the following options to
     73 test SELinux:
     74 
     75 CONFIG_SECURITY=y
     76 CONFIG_SECURITY_NETWORK=y
     77 CONFIG_SECURITY_NETWORK_XFRM=y
     78 
     79 CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
     80 This has to be set to a positive value if you want to test this check.
     81 Fedora kernels set it to 65536.
     82 
     83 CONFIG_SECURITY_SELINUX=y
     84 CONFIG_SECURITY_SELINUX_BOOTPARAM=y
     85 CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
     86 CONFIG_SECURITY_SELINUX_DEVELOP=y
     87 CONFIG_SECURITY_SELINUX_AVC_STATS=y
     88 CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
     89 CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y
     90 
     91 CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX=y
     92 You don't want this one unless you are running Fedora 3 or 4.
     93 On anything newer, it will cause unnecessary policy expansion.
     94 
     95 CONFIG_SECURITY_SMACK=y
     96 CONFIG_SECURITY_SELINUX=y
     97 
     98 By default, if you boot with multiple LSMs compiled into the kernel, the
     99 kernel won't boot succesfully - there can be only one (aside from
    100 explicit internal "stacking" e.g. as is done for combining SELinux or
    101 Smack with capabilities).  Unless you use the security= option to select
    102 one at boot.  SELinux and Smack will honor the security= option.
    103 ---------------------------------
    104 ---------------------------------
    105 Enabling Kernel Configuration to test SMACK security feature
    106 ---------------------------------
    107 CONFIG_NETLABEL=y
    108 CONFIG_SECURITY=y
    109 CONFIG_SECURITY_NETWORK=y
    110 CONFIG_SECURITY_SMACK=y
    111 CONFIG_SECURITY_SELINUX should not be set
    112 
    113 For more information to build/install/run these tests, look through:
    114 ltp/testcases/kernel/security/smack/README
    115 ---------------------------------
    116 ---------------------------------
    117 Enablement for Enhancement to kexec/kdump for implementing the following features:
    118 - Backup/restore memory used by the original kernel before/after kexec.
    119 - Save/restore CPU state before/after kexec.
    120 Now, only the i386 architecture is supported. More from the following git logs:
    121 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ab83521378268044a448113c6aa9a9e245f4d2f,
    122 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=89081d17f7bb81d89fa1aa9b70f821c5cf4d39e9,
    123 ---------------------------------
    124 CONFIG_X86_32=y
    125 CONFIG_RELOCATABLE=y
    126 CONFIG_KEXEC=y
    127 CONFIG_CRASH_DUMP=y
    128 CONFIG_PM=y
    129 CONFIG_HIBERNATION=y
    130 CONFIG_KEXEC_JUMP=y
    131 ---------------------------------
    132 Enabling HOTPLUG for your Kernels
    133 ---------------------------------
    134 CONFIG_HOTPLUG=y
    135 CONFIG_HOTPLUG_CPU=y
    136 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
    137 CONFIG_ACPI_HOTPLUG_CPU=y
    138 CONFIG_HOTPLUG_PCI_PCIE=y
    139 CONFIG_HOTPLUG_PCI=y
    140 CONFIG_HOTPLUG_PCI_FAKE=y
    141 CONFIG_HOTPLUG_PCI_COMPAQ=y
    142 CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
    143 CONFIG_HOTPLUG_PCI_IBM=y
    144 CONFIG_HOTPLUG_PCI_ACPI=y
    145 CONFIG_HOTPLUG_PCI_ACPI_IBM=y
    146 CONFIG_HOTPLUG_PCI_CPCI=y
    147 CONFIG_HOTPLUG_PCI_CPCI_ZT5550=y
    148 CONFIG_HOTPLUG_PCI_CPCI_GENERIC=y
    149 CONFIG_HOTPLUG_PCI_SHPC=y
    150 ---------------------------------
    151 Video For Linux Two API testing Requirements:
    152 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:
    153   -> Device Drivers
    154     -> Multimedia devices
    155       -> Video For Linux
    156         -> Video capture adapters
    157          -> Virtual Video Driver
    158 
    159 The tests also require CUnit Framework to be installed before compiling the tests. Download & Install the same from:
    160 http://sourceforge.net/projects/cunit/
    161 ---------------------------------
    162 ---------------------------------
    163 Native language support (nls) testsuite requirements
    164 ----------------------------------------------------
    165 CONFIG_NLS=m
    166 CONFIG_BLOCK=y
    167 ---------------------------------
    168 Enabling Controller area network (CAN) protocol support for your Kernels
    169 ---------------------------------
    170 CONFIG_NET=y
    171 CONFIG_CAN=m
    172 CONFIG_CAN_RAW=m
    173 CONFIG_CAN_BCM=m
    174 # CAN Device Drivers
    175 CONFIG_CAN_VCAN=m
    176 ---------------------------------
    177 Enabling Fault Injection Support for your kernel (version 2.6.29).
    178 Please check with the original kernel for the fault injection
    179 types it supports. Following supports will be available:
    180 
    181 /sys/kernel/debug/fail_io_timeout/interval
    182 /sys/kernel/debug/fail_io_timeout/probability
    183 /sys/kernel/debug/fail_io_timeout/reject-end
    184 /sys/kernel/debug/fail_io_timeout/reject-start
    185 /sys/kernel/debug/fail_io_timeout/require-end
    186 /sys/kernel/debug/fail_io_timeout/require-start
    187 /sys/kernel/debug/fail_io_timeout/space
    188 /sys/kernel/debug/fail_io_timeout/stacktrace-depth
    189 /sys/kernel/debug/fail_io_timeout/task-filter
    190 /sys/kernel/debug/fail_io_timeout/times
    191 /sys/kernel/debug/fail_io_timeout/verbose
    192 
    193 /sys/kernel/debug/fail_make_request/interval
    194 /sys/kernel/debug/fail_make_request/probability
    195 /sys/kernel/debug/fail_make_request/reject-end
    196 /sys/kernel/debug/fail_make_request/reject-start
    197 /sys/kernel/debug/fail_make_request/require-end
    198 /sys/kernel/debug/fail_make_request/require-start
    199 /sys/kernel/debug/fail_make_request/space
    200 /sys/kernel/debug/fail_make_request/stacktrace-depth
    201 /sys/kernel/debug/fail_make_request/task-filter
    202 /sys/kernel/debug/fail_make_request/times
    203 /sys/kernel/debug/fail_make_request/verbose
    204 
    205 /sys/kernel/debug/fail_page_alloc/ignore-gfp-highmem
    206 /sys/kernel/debug/fail_page_alloc/ignore-gfp-wait
    207 /sys/kernel/debug/fail_page_alloc/interval
    208 /sys/kernel/debug/fail_page_alloc/min-order
    209 /sys/kernel/debug/fail_page_alloc/probability
    210 /sys/kernel/debug/fail_page_alloc/reject-end
    211 /sys/kernel/debug/fail_page_alloc/reject-start
    212 /sys/kernel/debug/fail_page_alloc/require-end
    213 /sys/kernel/debug/fail_page_alloc/require-start
    214 /sys/kernel/debug/fail_page_alloc/space
    215 /sys/kernel/debug/fail_page_alloc/stacktrace-depth
    216 /sys/kernel/debug/fail_page_alloc/task-filter
    217 /sys/kernel/debug/fail_page_alloc/times
    218 /sys/kernel/debug/fail_page_alloc/verbose
    219 
    220 /sys/kernel/debug/failslab/ignore-gfp-wait
    221 /sys/kernel/debug/failslab/interval
    222 /sys/kernel/debug/failslab/probability
    223 /sys/kernel/debug/failslab/reject-end
    224 /sys/kernel/debug/failslab/reject-start
    225 /sys/kernel/debug/failslab/require-end
    226 /sys/kernel/debug/failslab/require-start
    227 /sys/kernel/debug/failslab/space
    228 /sys/kernel/debug/failslab/stacktrace-depth
    229 /sys/kernel/debug/failslab/task-filter
    230 /sys/kernel/debug/failslab/times
    231 /sys/kernel/debug/failslab/verbose
    232 
    233 when the below kernel config options are set:
    234 
    235 CONFIG_FAULT_INJECTION=y
    236 CONFIG_DEBUG_KERNEL=y
    237 CONFIG_FAILSLAB=y (Fault-injection capability for kmalloc)
    238 (CONFIG_SLAB=y || CONFIG_SLUB=y) if CONFIG_FAILSLAB=y
    239 CONFIG_FAIL_PAGE_ALLOC=y (Fault-injection capabilitiy for alloc_pages())
    240 CONFIG_FAIL_MAKE_REQUEST=y (Fault-injection capability for disk IO)
    241 CONFIG_BLOCK=y if CONFIG_FAIL_MAKE_REQUEST=y
    242 CONFIG_FAIL_IO_TIMEOUT=y (Faul-injection capability for faking disk interrupts)
    243 CONFIG_BLOCK=y if CONFIG_FAIL_IO_TIMEOUT=y
    244 CONFIG_FAULT_INJECTION_DEBUG_FS=y (Debugfs entries for fault-injection capabilities)
    245 (CONFIG_SYSFS=y && CONFIG_DEBUG_FS=y) if CONFIG_FAULT_INJECTION_DEBUG_FS=y
    246 CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y (stacktrace filter for fault-injection capabilities)
    247 (CONFIG_FAULT_INJECTION_DEBUG_FS=y && CONFIG_STACKTRACE_SUPPORT=y && !CONFIG_X86_64) if
    248 	CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
    249 
    250 For more information on Fault injection, please refer to:
    251 linux-2.6/Documentation/fault-injection/fault-injection.txt,
    252 
    253 You should also have made the following entries in your /etc/fstab file
    254 once the kernel is booted with the above CONFIG options set:
    255 
    256 debugfs		/sys/kernel/debug/		debugfs
    257 
    258 # How the Kernel Fault Injection works for LTP ?
    259 
    260 1) Build Kernel with all the above possible kernel CONFIG Options,
    261 2) Create the above entry in /etc/fstab file,
    262 3) Reboot in the new kernel,
    263 4) Goto LTPROOT. Build and Install LTP as per ltp/INSTALL file,
    264 5) Choose your own test(or default) to run with fault injection as follows:
    265 	./runltp -f <command_file> -F <LOOPS>,<FAULT_PROBABILITY>
    266 
    267 The algorithm functions like:
    268 loop (for each testcase)
    269 begin
    270 	execute_testcase(inside_stable_kernel)
    271 	begin
    272 		insert_fault_into_kernel()
    273 		loop X Times
    274 		begin
    275 			execute_testcase(inside_fault_kernel)
    276 		end
    277 		restore_kernel_to_normal()
    278 	end
    279 end
    280 
    281 # External TODOs:
    282 1) Add or modify testcases when relevant kernel functionality changes.
    283 ---------------------------------
    284 
    285 ---------------------------------
    286 Enabling Kernel Configuration to test ext4 new features
    287 ---------------------------------
    288 CONFIG_EXT4_FS=y
    289 CONFIG_EXT4DEV_COMPAT=y
    290 CONFIG_EXT4_FS_XATTR=y
    291 CONFIG_EXT4_FS_POSIX_ACL=y
    292 CONFIG_EXT4_FS_SECURITY=y
    293 
    294 Beside that, the following packages are necessary.
    295   e2fsprogs
    296   e2fsprogs-devel
    297   e2fsprogs-libs
    298 And the version of packages must be 1.41.4 or above.
    299 
    300 For more information to build/install/run these tests, look through:
    301 ltp/testcases/kernel/fs/ext4-new-features/README
    302 ---------------------------------
    303