Skip to content
This repository

Test scripts for thin provisioning targets

branch: master
Octocat-spinner-32 compile-bench-datasets snapshot test July 08, 2011
Octocat-spinner-32 lib [thinp] check a read only metadata device forces read only pool April 16, 2013
Octocat-spinner-32 reports more log formatting October 20, 2011
Octocat-spinner-32 spec [thinp] check a read only metadata device forces read only pool April 16, 2013
Octocat-spinner-32 suites Merge remote-tracking branch 'remotes/github-mike/master' April 17, 2013
Octocat-spinner-32 test Translate the multisnap bench program July 05, 2011
Octocat-spinner-32 tests Merge remote-tracking branch 'remotes/github-mike/master' April 17, 2013
Octocat-spinner-32 .gitignore remove dm_ prefix from files in lib/device-mapper. Also move spec fil… February 27, 2013
Octocat-spinner-32 README.md Deprecate in favour of dmtest December 11, 2013
Octocat-spinner-32 Rakefile add deploy target to Rakefile March 11, 2013
Octocat-spinner-32 analyse_metadata analyse_metadata was requiring far too much June 12, 2012
Octocat-spinner-32 check_kernels.rb introduce lib/device-mapper sub dir June 15, 2012
Octocat-spinner-32 config.rb config.rb: STEC card November 30, 2012
Octocat-spinner-32 generate_reports switch to new cache args and status format November 15, 2012
Octocat-spinner-32 incremental_backup_example incremental_backup_example had bitrot July 04, 2012
Octocat-spinner-32 instr_play.rb experiments with a dm_exec instruction set November 24, 2011
Octocat-spinner-32 lvconvert_example rename lvconvert_example July 04, 2012
Octocat-spinner-32 mir_play.rb tweaks to mir_play June 25, 2012
Octocat-spinner-32 run_tests run_tests now takes a mandatory --suite argument June 15, 2012
Octocat-spinner-32 serve_reports make serve_reports an executable October 19, 2011
Octocat-spinner-32 title_page.rb add report generators September 09, 2011
Octocat-spinner-32 todo.org add xml writer infrastructure requirement to todo.org October 21, 2011
Octocat-spinner-32 untar_kernels.rb introduce lib/device-mapper sub dir June 15, 2012
README.md

DEPRECATED

Use device-mapper-test-suite instead.

Prerequisites

Test suite for device-mapper thin provisioning targets. Uses Ruby 1.8.x.

You need a program called 'thin_repair' in your path. This hasn't been released yet, so just sym link it to /bin/true.

You also need dt in your path.

And aio_stress (http://fsbench.filesystems.org/bench/aio-stress.c).

And blktrace.

And bonnie++.

Running

Edit config.rb, adding suitable entries for you test machine. Check things are ok with a dry run:

 ./run_tests

Once you're happy you can set the env var THIN_TESTS and run it for real:

 export THIN_TESTS=EXECUTE
 ./run_tests

You can select subsets of the tests via the test suite class, methods or tags, for more info:

./run_tests --help

Examples,

Run all tests that have been tagged as quick: ./run_tests -T quick

Run all tests that have been tagged with some sort of target: ./run_tests -T /_target$/

Run all tests that have 'resize' in their name: ./run_tests -n /resize/

Run all tests in the MultiplePoolTests suite: ./run_tests -t MultiplePoolTests

Reports

After you run some tests you can view the results and logs by pointing your browser at reports/index.html.

If you wish to quickly serve these reports on port 8080 for access from another machine.

./serve_reports

Udev

You may find that udev interferes with your tests. The typical symptom is test scripts being unable to remove devices (because udev has it open). The test suite does retry removal after a pause, which avoids most cases of this.

One way to disable udev is:

mv /lib/udev/rules.d/80-udisks.rules /lib/udev/rules.d/80-udisks.rules.dieudevdie

Something went wrong with that request. Please try again.