Gensuit Code
Brought to you by:
lczerner
| File | Date | Author | Commit |
|---|---|---|---|
| tests | 2010-03-09 |
|
[972055] Mongo test repaired. |
| tools | 2010-09-30 |
|
[fb95b1] Update Makefile to remove xfstests dir on clean |
| .gitignore | 2010-02-01 |
|
[a8924a] Xfstests removed and will be downloaded in make... |
| LICENCE | 2010-09-30 |
|
[a89ffa] Add LICENCE file. Add licence notice in test.sh |
| LINKS | 2009-09-24 |
|
[27003e] URLs to bugzilla/gitweb |
| Makefile | 2009-09-21 |
|
[792ece] Makefile will create results dir on configure p... |
| README | 2010-09-30 |
|
[298755] Update README. |
| test.cmds | 2010-01-22 |
|
[7a7f36] RUN_FSKC configuration option added, README upd... |
| test.sh | 2010-10-07 |
|
[34f4ac] Change regular expression to get value from config |
(C)2009 Red Hat Inc., Jaroslav Barton jbarton@redhat.com
Gensuit is a generic test suit which includes both well known and less
known benchmark and test tools. It combines those tools into one package
and allows you to easily define test conditions and test sets you want
to run in one configuration file. Some of the tests (like xfstests) are
pulled from git repository at make time to provide newest versions of the
tool, but some of the test are directly included.
Requirements:
- gcc and g++
- make
- perl
- slqite3
- xfsprogs
- xfsprogs-devel
- libattr
- libacl
- fsck and mkfs programs for tested filesystems
- libaio-devel for aio-stress
Installation:
- run make
- make will: . configure and compile all binary tests
. download kernel source tarbal for yoshihiro test
. on errors please see make.out and make.err files
- there is not need for instalation, test suite could work from source directory
Supported architectures:
- x86 and x86-64 (tested)
- iozone compile script can be easily improved (tools/iozone/compile.sh)
- other architectures are untested
. test.sh will need add support for non x86 architectures (/proc/cpuinfo
doesn't have same format for all supported architectures)
Included tests: ! see <./test.sh -h> for list of all tests !
- Stress tests:
- stress tests are run on all devices at the same time concurrently
- Regression tests:
- regression tests are run step-by-step with mkfs command between tests
Adding new tests:
- add shell script with test that runs test to tests/(stress|regression)/ directory
- this script have test handling function and its registration
- for example:
__do_sometest_test() {
}
REGRESSION_TESTS_AVAILABLE[${#REGRESSION_TESTS_AVAILABLE[*]}]="__do_sametest_test"
for regression test registration or
STRESS_TESTS_AVAILABLE[${#STRESS_TESTS_AVAILABLE[*]}]="__do_sametest_test"
for stress test registration
Running test suite:
usage: ./test.sh [-r|-s] [-v] [-h] [[-m mount_point] [-d device] [-o mount_options] [-t filesystem] [-f mkfs_options] [-x tests] [-n ...]] [-l length] [-c num] [-y]
-r regression test mode (default)
-s stress test mode
-m mount_point
mount point used for tests
-d device
device for tests
-o mount_options
mount options used for tests
-t filesystem
filesystem used for tests
-f mkfs_options
mkfs.filesystem options
-l length
test run time in minutes
-c num
run subtests n-times
-C check filesystem after tests are done
-x tests
run specified tests
-n parameters for next tested device
-u file
file with test specification
-v verbose
-y answer yes to all questions
-h this help
Available regression tests:
0 - bonnie
1 - dbench
2 - iozone
3 - mongo
4 - sqlite
5 - xfstests
Available stress tests:
0 - fsx
1 - wilson
2 - yoshihiro
Running verbose regression mode on device /dev/mapper/vg_loki-test2, mount point
/mnt/test2/, only tests 1, 3 and 5, ext4 filesystem, noatime,nodiratime mount options:
./test.sh -v -r -d /dev/mapper/vg_loki-test2 -m /mnt/test2 -o noatime,nodiratime -x "1 3 5" -t ext4
Running stress mode on devices /dev/mapper/vg_loki-test and /dev/mapper/vg_loki-test2
with mount points /mnt/test and /mnt/test2, mount options for both devices
noatime,nodiratime, filesystem reiserfs and ext4, test length 10 minutes
./test.sh -s -d /dev/mapper/vg_loki-test -m /mnt/test -t reiserfs -o noatime,nodiratime -n -d /dev/mapper/vg_loki-test2 -m /mnt/test2 -t ext4 -l 10
Test parameters are automatically determined from ram amount installed and number
of cpu cores. Number of cpucores and ram amount can be overwritten by:
export RAM=xxx where xxx is number in megabytes
export CPUCORES=yyy where yyy is number of cpu cores
Test specification file format:
Test type:
REGRESSION
STRESS
Test length for some subtests
LENGTH=
Number of retries for some subtests
RETRIES=
Test device, mountpoint, filesystem
DEV=
DIR=
FSTYPE=
Mount options
MOOPS=-o noatime,nodiratime
Mkfs options
MKOPS=
Selected tests
TESTS=0
Start new test specification
NEXT
Answer yes to all questions
ALLYES
Check filesystems after tests
RUNFSCK
Example test specification file: (test.cmds)
# Configuration file for the gensuit
# use with the -u option of the gensuit
# Define type of test - either
# STRESS or REGRESSION
STRESS
# Length of the test in minutes
LENGTH=2
# Path to the device which souhld
# be used
DEV=/dev/sda5
# Mountpoint to the device
DIR=/mnt/TEST
# Type of the filesystem
# Supported:
# ext[234]
# reiserfs
# gfs2
# jfs
# xfs
FSTYPE=gfs2
# Options for the mount command
MOOPS=-o noatime,nodiratime
# Options for the mkfs command
MKOPS=-p lock_nolock
# Which test do you want to perform ?
# You can specify multiple tests like
# TESTS=0 2 3
# Run ./test.sh -h to see what tests
# are available
TESTS=1
# Parameters for the next tested device
#NEXT
#DEV=/dev/sda5
#DIR=/mnt/TEST2
#FSTYPE=ext4
# Answer Yes to all question
ALLYES
# Check filesystems after tests
RUNFSCK