Hi John,

You may be interested by 

https://github.com/ceph/ceph/blob/master/src/test/ceph-disk-root.sh

which is conditionally included 

https://github.com/ceph/ceph/blob/master/src/test/Makefile.am#L86

by --enable-root-make-check

https://github.com/ceph/ceph/blob/master/configure.ac#L414

If you're reckless and trust the tests not to break (a crazy proposition by 
definition IMHO ;-), you can

make TESTS=test/ceph-disk-root.sh check

If you want protection, you do the same in a docker container with

test/docker-test.sh --os-type centos --os-version 7 --dev make 
TESTS=test/ceph-disk-root.sh check

I tried various strategies to make tests requiring root access more accessible 
and less scary and that's the best compromise I found. test/docker-test.sh is 
what the make check bot uses.

When a test can be used both from sources and from teuthology, I found it more 
convenient to have it in the qa/workunits directory which is available in both 
environments. Who knows, maybe you will want a vstart based cephfs test to run 
as part of make check, in the same way 

https://github.com/ceph/ceph/blob/master/src/test/cephtool-test-mds.sh

does.

Cheers

On 23/07/2015 12:00, John Spray wrote:
> 
> Audience: anyone working on cephfs, general testing interest.
> 
> The tests in ceph-qa-suite/tasks/cephfs are growing in number, but kind of 
> inconvenient to run because they require teuthology (and therefore require 
> built packages, locked nodes, etc).  Most of them don't actually require 
> anything beyond what you already have in a vstart cluster, so I've adapted 
> them to optionally run that way.
> 
> The idea is that we can iterate a lot faster when writing new tests (one less 
> excuse not to write them) and get better use out of the tests when debugging 
> things and testing fixes.  teuthology is fine for mass-running the nightlies 
> etc, but it's overkill for testing individual bits of MDS/client 
> functionality.
> 
> The code is currently on the wip-vstart-runner ceph-qa-suite branch, and the 
> two magic commands are:
> 
> 1. Start a vstart cluster with a couple of MDSs, as your normal user:
> $ make -j4 rados ceph-fuse ceph-mds ceph-mon ceph-osd cephfs-data-scan 
> cephfs-journal-tool cephfs-table-tool && ./stop.sh ; rm -rf out dev ; MDS=2 
> OSD=3 MON=1 ./vstart.sh -d -n
> 
> 2. Invoke the test runner, as root (replace paths, test name as appropriate.  
> Leave of test name to run everything):
> # PYTHONPATH=/home/jspray/git/teuthology/:/home/jspray/git/ceph-qa-suite/ 
> python /home/jspray/git/ceph-qa-suite/tasks/cephfs/vstart_runner.py 
> tasks.cephfs.test_strays.TestStrays.test_migration_on_shutdown
> 
> test_migration_on_shutdown (tasks.cephfs.test_strays.TestStrays) ... ok
> 
> ----------------------------------------------------------------------
> Ran 1 test in 121.982s
> 
> OK
> 
> 
> ^^^ see!  two minutes, and no waiting for gitbuilders!
> 
> The main caveat here is that it needs to run as root in order to 
> mount/unmount things, which is a little scary.  My plan is to split it out 
> into a little root service for doing mount operations, and then let the main 
> test part run as a normal user and call out to the mounter service when 
> needed.
> 
> Cheers,
> John
> -- 
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Loïc Dachary, Artisan Logiciel Libre

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to