Home | History | Annotate | only in /external/ltp
Up to higher level directory
NameDateSize
.gitmodules21-Aug-2018150
.travis.packages_i38621-Aug-2018128
.travis.packages_native21-Aug-2018200
.travis.yml21-Aug-20183.4K
android/21-Aug-2018
Android.bp21-Aug-20182.7K
Android.mk21-Aug-2018642
build.sh21-Aug-20183.3K
configure.ac21-Aug-20184.5K
COPYING21-Aug-201817.7K
doc/21-Aug-2018
execltp.in21-Aug-201816K
gen.bp21-Aug-2018413.4K
IDcheck.sh21-Aug-20184.8K
include/21-Aug-2018
INSTALL21-Aug-201811.8K
lib/21-Aug-2018
ltpmenu21-Aug-201819K
m4/21-Aug-2018
Makefile21-Aug-20187.3K
Makefile.release21-Aug-20181.4K
MODULE_LICENSE_GPL21-Aug-20180
NOTICE21-Aug-201817.7K
OWNERS21-Aug-201872
pan/21-Aug-2018
README.kernel_config21-Aug-201810.7K
README.md21-Aug-20183.8K
runltp21-Aug-201838.6K
runltplite.sh21-Aug-201811.3K
runtest/21-Aug-2018
scenario_groups/21-Aug-2018
scripts/21-Aug-2018
testcases/21-Aug-2018
testscripts/21-Aug-2018
TODO21-Aug-20181.3K
tools/21-Aug-2018
utils/21-Aug-2018
ver_linux21-Aug-20182.6K
VERSION21-Aug-20189

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 

README.md

      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 
     28 **Be careful with these tests!**
     29 
     30 Don't run them on production systems. Growfiles, doio, and iogen in particular
     31 stress the I/O capabilities of systems and while they should not cause problems
     32 on properly functioning systems, they are intended to find (or cause) problems.
     33 
     34 Quick guide to running the tests
     35 ================================
     36 
     37 If you have git, autoconf, automake, m4, the linux headers and the common
     38 developer packages installed, the chances are the following will work.
     39 
     40 ```
     41 $ git clone https://github.com/linux-test-project/ltp.git
     42 $ cd ltp
     43 $ make autotools
     44 $ ./configure
     45 $ make
     46 $ make install
     47 ```
     48 
     49 This will install LTP to `/opt/ltp`.
     50 * If you have a problem see `doc/mini-howto-building-ltp-from-git.txt`.
     51 * If you still have a problem see `INSTALL` and `./configure --help`.
     52 * Failing that, ask for help on the mailing list or Github.
     53 
     54 Some tests will be disabled if the configure script can not find their build
     55 dependencies.
     56 
     57 * If a test returns `TCONF` due to a missing component, check the `./configure`
     58   output.
     59 * If a tests fails due to a missing user or group, see the Quick Start section
     60   of `INSTALL`.
     61 
     62 To run all the test suites
     63 
     64 ```
     65 $ cd /opt/ltp
     66 $ ./runltp
     67 ```
     68 
     69 Note that many test cases have to be executed as root.
     70 
     71 To run a particular test suite
     72 
     73 ```
     74 $ ./runltp -f syscalls
     75 ```
     76 
     77 To run all tests with `madvise` in the name
     78 
     79 ```
     80 $ ./runltp -f syscalls -s madvise
     81 ```
     82 Also see
     83 
     84 ```
     85 $ ./runltp --help
     86 ```
     87 
     88 Test suites (e.g. syscalls) are defined in the runtest directory. Each file
     89 contains a list of test cases in a simple format, see doc/ltp-run-files.txt.
     90 
     91 Each test case has its own executable or script, these can be executed
     92 directly
     93 
     94 ```
     95 $ testcases/bin/abort01
     96 ```
     97 
     98 Some have arguments
     99 
    100 ```
    101 $ testcases/bin/fork13 -i 37
    102 ```
    103 
    104 The vast majority of test cases accept the -h (help) switch
    105 
    106 ```
    107 $ testcases/bin/ioctl01 -h
    108 ```
    109 
    110 Many require certain environment variables to be set
    111 
    112 ```
    113 $ LTPROOT=/opt/ltp PATH="$PATH:$LTPROOT/testcases/bin" testcases/bin/wc01.sh
    114 ```
    115 
    116 Most commonly, the path variable needs to be set and also `LTPROOT`, but there
    117 are a number of other variables, `runltp` usually sets these for you.
    118 
    119 Note that all shell scripts need the `PATH` to be set. However this is not
    120 limited to shell scripts, many C based tests need environment variables as
    121 well.
    122 
    123 Developers corner
    124 =================
    125 
    126 Before you start you should read following documents:
    127 
    128 * `doc/test-writing-guidelines.txt`
    129 * `doc/build-system-guide.txt`
    130 
    131 There is also a step-by-step tutorial:
    132 
    133 * `doc/c-test-tutorial-simple.txt`
    134 
    135 If something is not covered there don't hesitate to ask on the LTP mailing
    136 list. Also note that these documents are available online at:
    137 
    138 https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines
    139 https://github.com/linux-test-project/ltp/wiki/BuildSystem
    140 https://github.com/linux-test-project/ltp/wiki/C-Test-Case-Tutorial
    141