The Ceph command to setup a block device ( ceph-disk) needs to call partprobe after zapping a disk. The patch adding the partprobe call needs a block device to test that it works as expected. The body of the test requires root privileges:
dd if=/dev/zero of=vde.disk bs=1024k count=200 losetup --find vde.disk local disk=$(losetup --associated vde.disk | cut -f1 -d:) ./ceph-disk zap $disk
which is potentially dangerous for the developer machine. The run of the test is delegated to a docker container so that accidentally removing /var/run has no consequence. Although the test recompiles Ceph the first time:
main_docker "$@" --compile main_docker "$@" --user root --dev test/ceph-disk.sh test_activate_dev
it will reuse the compilation results if run a second time. Unless there is a new commit in which case it will recompile whatever make decides. The ceph-disk-root.sh script is added to the list of scripts that are run on make check but will only be considered if –enable-docker has been given to ./configure and docker is available. Otherwise it will be silently ignored
if ENABLE_DOCKER check_SCRIPTS += \ test/ceph-disk-root.sh endif
Continue reading “Testing ceph-disk with block devices in docker”