diff options
author | Sage Weil <sage@inktank.com> | 2013-05-08 11:44:24 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-05-08 11:44:24 -0700 |
commit | a89d889b0d50b2ad9e6c3ba6d7f45cefef564739 (patch) | |
tree | c4f56046ce5ad2187ad8aa859013b33208a63da4 /qa | |
parent | 3846451548e1161e721cfcca9bc6732c5109df69 (diff) | |
parent | 574051f8da0a30073a7d5da880878ee3c941721b (diff) | |
download | ceph-a89d889b0d50b2ad9e6c3ba6d7f45cefef564739.tar.gz |
Merge pull request #165 from dachary/wip-4321
unit tests for FileStore::_detect_fs when running on ext4
Diffstat (limited to 'qa')
-rwxr-xr-x | qa/workunits/filestore/filestore.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/qa/workunits/filestore/filestore.sh b/qa/workunits/filestore/filestore.sh new file mode 100755 index 00000000000..f951a37ec95 --- /dev/null +++ b/qa/workunits/filestore/filestore.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Copyright (C) 2013 Cloudwatt <libre.licensing@cloudwatt.com> +# +# Author: Loic Dachary <loic@dachary.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library Public License for more details. +# +set -e + +export PATH=/sbin:$PATH + +: ${VERBOSE:=false} +: ${EXT4:=$(which mkfs.ext4)} +: ${EXT3:=$(which mkfs.ext3)} +: ${XFS:=$(which mkfs.xfs)} +: ${BTRFS:=$(which mkfs.btrfs)} +: ${CEPH_TEST_FILESTORE:=ceph_test_filestore} +: ${FILE_SYSTEMS:=EXT4} # EXT3 XFS BTRFS +: ${DEBUG:=} + +function EXT4_test() { + local dir="$1" + + if [ -z "$EXT4" ] ; then + echo "mkfs command for ext4 is missing. On Debian GNU/Linux try apt-get install e2fsprogs" >&2 + return 1 + fi + + local disk="$dir/disk.img" + + truncate --size=1G $disk || return 1 + mkfs.ext4 -q -F $disk || return 2 + mkdir -p $dir/mountpoint || return 3 + MOUNTPOINT=$dir/mountpoint DISK=$disk sudo -E $CEPH_TEST_FILESTORE --gtest_filter=EXT4StoreTest.* $DEBUG || return 4 +} + +function main() { + local dir=$(mktemp --directory) + + trap "sudo umount $dir/mountpoint || true ; rm -fr $dir" EXIT QUIT INT + + for fs in $FILE_SYSTEMS ; do + ${fs}_test $dir || return 2 + done +} + +if [ "$1" = TEST ] +then + set -x + set -o functrace + PS4=' ${FUNCNAME[0]}: $LINENO: ' + + DEBUG='--log-to-stderr=true --debug-filestore=20' + + function run_test() { + dir=/tmp/filestore + rm -fr $dir + mkdir $dir + EXT4_test $dir || return 1 + + FILE_SYSTEMS=EXT4 + main || return 2 + } + + run_test +else + main +fi +# Local Variables: +# compile-command: "CEPH_TEST_FILESTORE=../../../src/ceph_test_filestore filestore.sh TEST" +# End: |