Gensuit Code
Brought to you by:
lczerner
File | Date | Author | Commit |
---|---|---|---|
tests | 2010-03-09 | Lukas Czerner | [972055] Mongo test repaired. |
tools | 2010-09-30 | Lukas Czerner | [fb95b1] Update Makefile to remove xfstests dir on clean |
.gitignore | 2010-02-01 | Lukas Czerner | [a8924a] Xfstests removed and will be downloaded in make... |
LICENCE | 2010-09-30 | Lukas Czerner | [a89ffa] Add LICENCE file. Add licence notice in test.sh |
LINKS | 2009-09-24 | Jaroslav Barton | [27003e] URLs to bugzilla/gitweb |
Makefile | 2009-09-21 | Jaroslav Barton | [792ece] Makefile will create results dir on configure p... |
README | 2010-09-30 | Lukas Czerner | [298755] Update README. |
test.cmds | 2010-01-22 | Lukas Czerner | [7a7f36] RUN_FSKC configuration option added, README upd... |
test.sh | 2010-10-07 | Lukas Czerner | [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