linux-test-project / Ltp

Licence: gpl-2.0
Linux Test Project http://linux-test-project.github.io/

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
HTML
75241 projects
Makefile
30231 projects
perl
6916 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ltp

fil
😋 Unix file command written in Go
Stars: ✭ 69 (-95.83%)
Mutual labels:  unix, posix
Kirc
A tiny IRC client written in POSIX C99.
Stars: ✭ 416 (-74.85%)
Mutual labels:  unix, posix
Cloudlibc
CloudABI's standard C library
Stars: ✭ 254 (-84.64%)
Mutual labels:  unix, posix
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (-84.89%)
Mutual labels:  unix, posix
Skalibs
The skarnet.org C system programming library
Stars: ✭ 58 (-96.49%)
Mutual labels:  unix, posix
kernel
Main kernel tree
Stars: ✭ 28 (-98.31%)
Mutual labels:  unix, posix
Ecominit
eComInit is a free init system and service manager designed to scale from lightweight desktops to web-scale cloud deployments. It aims to offer feature-parity with systemd but with a modular, portable architecture compliant with software engineering best-practice.
Stars: ✭ 352 (-78.72%)
Mutual labels:  unix, posix
tupai
Tupai is a multi-tasking operating system I wrote for my degree that focuses on safety and design, targeting a variety of platforms.
Stars: ✭ 21 (-98.73%)
Mutual labels:  unix, posix
Parsrs
CSV, JSON, XML text parsers and generators written in pure POSIX shellscript
Stars: ✭ 56 (-96.61%)
Mutual labels:  unix, posix
Posnk
An operating system project.
Stars: ✭ 34 (-97.94%)
Mutual labels:  unix, posix
gitpack
Git-based package manager written in POSIX shell
Stars: ✭ 72 (-95.65%)
Mutual labels:  unix, posix
Dte
A small, configurable console text editor (moved to https://gitlab.com/craigbarnes/dte)
Stars: ✭ 98 (-94.07%)
Mutual labels:  unix, posix
timebox
A timer script for Windows/Linux/Unix/macOS to practice timeboxing (the time management technique)
Stars: ✭ 42 (-97.46%)
Mutual labels:  unix, posix
execmon
Advanced process execution monitoring utility for linux (procmon like)
Stars: ✭ 77 (-95.34%)
Mutual labels:  linux-kernel, syscalls
Onyx
UNIX-like operating system written in C and C++
Stars: ✭ 52 (-96.86%)
Mutual labels:  unix, posix
Krf
A kernelspace syscall interceptor and randomized faulter
Stars: ✭ 267 (-83.86%)
Mutual labels:  linux-kernel, syscalls
onionjuggler
Manage your Onion Services via CLI or TUI on Unix-like operating system with a POSIX compliant shell.
Stars: ✭ 31 (-98.13%)
Mutual labels:  unix, posix
InitKit
Neo-InitWare is a modular, cross-platform reimplementation of the systemd init system. It is experimental.
Stars: ✭ 364 (-77.99%)
Mutual labels:  unix, posix
Awesome Unix
All the UNIX and UNIX-Like: Linux, BSD, macOS, Illumos, 9front, and more.
Stars: ✭ 973 (-41.17%)
Mutual labels:  unix, posix
Cubostratus
Blazingly fast Linux syscall collector
Stars: ✭ 68 (-95.89%)
Mutual labels:  linux-kernel, syscalls

Linux Test Project

Linux Test Project is a joint project started by SGI, OSDL and Bull developed and maintained by IBM, Cisco, Fujitsu, SUSE, Red Hat, Oracle and others. The project goal is to deliver tests to the open source community that validate the reliability, robustness, and stability of Linux.

The LTP testsuite contains a collection of tools for testing the Linux kernel and related features. Our goal is to improve the Linux kernel and system libraries by bringing test automation to the testing effort. Interested open source contributors are encouraged to join.

Project pages are located at: http://linux-test-project.github.io/

The latest image is always available at: https://github.com/linux-test-project/ltp/releases

The discussion about the project happens at ltp mailing list: http://lists.linux.it/listinfo/ltp

The git repository is located at GitHub at: https://github.com/linux-test-project/ltp

The patchwork instance is at: https://patchwork.ozlabs.org/project/ltp/list/

Warning!

Be careful with these tests!

Don't run them on production systems. Growfiles, doio, and iogen in particular stress the I/O capabilities of systems and while they should not cause problems on properly functioning systems, they are intended to find (or cause) problems.

Quick guide to running the tests

If you have git, autoconf, automake, m4, pkgconf / pkg-config, libc headers, linux kernel headers and other common development packages installed (see INSTALL and ci/*.sh), the chances are the following will work:

$ git clone https://github.com/linux-test-project/ltp.git
$ cd ltp
$ make autotools
$ ./configure

Now you can continue either with compiling and running a single test or with compiling and installing the whole testsuite.

For optional library dependencies look into scripts for major distros in ci/ directory. You can also build whole LTP with ./build.sh script.

Shortcut to running a single test

If you need to execute a single test you actually do not need to compile the whole LTP, if you want to run a syscall testcase following should work.

$ cd testcases/kernel/syscalls/foo
$ make
$ PATH=$PATH:$PWD ./foo01

Shell testcases are a bit more complicated since these need a path to a shell library as well as to compiled binary helpers, but generally following should work.

$ cd testcases/lib
$ make
$ cd ../commands/foo
$ PATH=$PATH:$PWD:$PWD/../../lib/ ./foo01.sh

Open Posix Testsuite has it's own build system which needs Makefiles to be generated first, then compilation should work in subdirectories as well.

$ cd testcases/open_posix_testsuite/
$ make generate-makefiles
$ cd conformance/interfaces/foo
$ make
$ ./foo_1-1.run-test

Compiling and installing all testcases

$ make
$ make install

This will install LTP to /opt/ltp.

  • If you have a problem see doc/mini-howto-building-ltp-from-git.txt.
  • If you still have a problem see INSTALL and ./configure --help.
  • Failing that, ask for help on the mailing list or Github.

Some tests will be disabled if the configure script can not find their build dependencies.

  • If a test returns TCONF due to a missing component, check the ./configure output.
  • If a tests fails due to a missing user or group, see the Quick Start section of INSTALL.

Running tests

To run all the test suites

$ cd /opt/ltp
$ ./runltp

Note that many test cases have to be executed as root.

To run a particular test suite

$ ./runltp -f syscalls

To run all tests with madvise in the name

$ ./runltp -f syscalls -s madvise

Also see

$ ./runltp --help

Test suites (e.g. syscalls) are defined in the runtest directory. Each file contains a list of test cases in a simple format, see doc/ltp-run-files.txt.

Each test case has its own executable or script, these can be executed directly

$ testcases/bin/abort01

Some have arguments

$ testcases/bin/fork13 -i 37

The vast majority of test cases accept the -h (help) switch

$ testcases/bin/ioctl01 -h

Many require certain environment variables to be set

$ LTPROOT=/opt/ltp PATH="$PATH:$LTPROOT/testcases/bin" testcases/bin/wc01.sh

Most commonly, the path variable needs to be set and also LTPROOT, but there are a number of other variables, runltp usually sets these for you.

Note that all shell scripts need the PATH to be set. However this is not limited to shell scripts, many C based tests need environment variables as well.

For more info see doc/user-guide.txt or online at https://github.com/linux-test-project/ltp/wiki/User-Guidelines.

Network tests

Network tests require certain setup, described in testcases/network/README.md (online at https://github.com/linux-test-project/ltp/tree/master/testcases/network).

Developers corner

Before you start you should read following documents:

  • doc/test-writing-guidelines.txt
  • doc/build-system-guide.txt
  • doc/library-api-writing-guidelines.txt

There is also a step-by-step tutorial:

  • doc/c-test-tutorial-simple.txt

If something is not covered there don't hesitate to ask on the LTP mailing list. Also note that these documents are available online at:

Although we accept GitHub pull requests, the preferred way is sending patches to our mailing list.

It's a good idea to test patches on GitHub Actions before posting to mailing list. Our GitHub Actions setup covers various architectures and distributions in order to make sure LTP compiles cleanly on most common configurations. For testing you need to just to push your changes to your own LTP fork on GitHub.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].