mirror of
https://github.com/ceph/ceph
synced 2025-02-24 03:27:10 +00:00
tests: test/mon/osd-erasure-code-profile.sh uses ceph-helpers.sh
Instead of using mon-test-helpers.sh, primarily because the kill_daemon function implemented in mon-test-helpers.sh is not as good as ceph-helpers.sh. Instead of having tests that share the same monitor, each test now runs on a fresh monitor. The test writer no longer has to worry that it will be re-using the pool or profile from a previous test. That causes problems that are difficult to diagnose and the overhead of running a new monitor is not so high. Signed-off-by: Loic Dachary <ldachary@redhat.com>
This commit is contained in:
parent
66dcda9a58
commit
f3cb870b9e
@ -15,24 +15,31 @@
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Library Public License for more details.
|
||||
#
|
||||
source test/mon/mon-test-helpers.sh
|
||||
source test/ceph-helpers.sh
|
||||
|
||||
function run() {
|
||||
local dir=$1
|
||||
shift
|
||||
|
||||
export CEPH_MON="127.0.0.1:7108"
|
||||
export CEPH_ARGS
|
||||
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
|
||||
CEPH_ARGS+="--mon-host=$CEPH_MON "
|
||||
|
||||
local id=a
|
||||
call_TEST_functions $dir $id --public-addr $CEPH_MON || return 1
|
||||
local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
|
||||
for func in $funcs ; do
|
||||
setup $dir || return 1
|
||||
$func $dir || return 1
|
||||
teardown $dir || return 1
|
||||
done
|
||||
}
|
||||
|
||||
function SHARE_MON_TEST_set() {
|
||||
function TEST_set() {
|
||||
local dir=$1
|
||||
local id=$2
|
||||
|
||||
run_mon $dir a || return 1
|
||||
|
||||
local profile=myprofile
|
||||
#
|
||||
# no key=value pairs : use the default configuration
|
||||
@ -60,10 +67,12 @@ function SHARE_MON_TEST_set() {
|
||||
./ceph osd erasure-code-profile rm $profile # cleanup
|
||||
}
|
||||
|
||||
function SHARE_MON_TEST_ls() {
|
||||
function TEST_ls() {
|
||||
local dir=$1
|
||||
local id=$2
|
||||
|
||||
run_mon $dir a || return 1
|
||||
|
||||
local profile=myprofile
|
||||
! ./ceph osd erasure-code-profile ls | grep $profile || return 1
|
||||
./ceph osd erasure-code-profile set $profile 2>&1 || return 1
|
||||
@ -74,10 +83,12 @@ function SHARE_MON_TEST_ls() {
|
||||
./ceph osd erasure-code-profile rm $profile # cleanup
|
||||
}
|
||||
|
||||
function SHARE_MON_TEST_rm() {
|
||||
function TEST_rm() {
|
||||
local dir=$1
|
||||
local id=$2
|
||||
|
||||
run_mon $dir a || return 1
|
||||
|
||||
local profile=myprofile
|
||||
./ceph osd erasure-code-profile set $profile 2>&1 || return 1
|
||||
./ceph osd erasure-code-profile ls | grep $profile || return 1
|
||||
@ -96,10 +107,12 @@ function SHARE_MON_TEST_rm() {
|
||||
./ceph osd erasure-code-profile rm $profile # cleanup
|
||||
}
|
||||
|
||||
function SHARE_MON_TEST_get() {
|
||||
function TEST_get() {
|
||||
local dir=$1
|
||||
local id=$2
|
||||
|
||||
run_mon $dir a || return 1
|
||||
|
||||
local default_profile=default
|
||||
./ceph osd erasure-code-profile get $default_profile | \
|
||||
grep plugin=jerasure || return 1
|
||||
@ -109,10 +122,12 @@ function SHARE_MON_TEST_get() {
|
||||
grep -q "unknown erasure code profile 'WRONG'" $dir/out || return 1
|
||||
}
|
||||
|
||||
function SHARE_MON_TEST_experimental_shec() {
|
||||
function TEST_experimental_shec() {
|
||||
local dir=$1
|
||||
local id=$2
|
||||
|
||||
run_mon $dir a || return 1
|
||||
|
||||
local profile=shec-profile
|
||||
|
||||
! ./ceph osd erasure-code-profile set $profile plugin=shec > $dir/out 2>&1 || return 1
|
||||
@ -120,10 +135,11 @@ function SHARE_MON_TEST_experimental_shec() {
|
||||
! ./ceph osd erasure-code-profile ls | grep $profile || return 1
|
||||
}
|
||||
|
||||
function SHARE_MON_TEST_set_idempotent() {
|
||||
function TEST_set_idempotent() {
|
||||
local dir=$1
|
||||
local id=$2
|
||||
|
||||
run_mon $dir a || return 1
|
||||
#
|
||||
# The default profile is set using a code path different from
|
||||
# ceph osd erasure-code-profile set: verify that it is idempotent,
|
||||
@ -160,8 +176,8 @@ function TEST_format_invalid() {
|
||||
local profile=profile
|
||||
# osd_pool_default_erasure-code-profile is
|
||||
# valid JSON but not of the expected type
|
||||
run_mon $dir a --public-addr $CEPH_MON \
|
||||
--osd_pool_default_erasure-code-profile 1
|
||||
run_mon $dir a \
|
||||
--osd_pool_default_erasure-code-profile 1 || return 1
|
||||
! ./ceph osd erasure-code-profile set $profile > $dir/out 2>&1 || return 1
|
||||
cat $dir/out
|
||||
grep 'must be a JSON object' $dir/out || return 1
|
||||
@ -172,8 +188,8 @@ function TEST_format_json() {
|
||||
|
||||
# osd_pool_default_erasure-code-profile is JSON
|
||||
expected='"plugin":"example"'
|
||||
run_mon $dir a --public-addr $CEPH_MON \
|
||||
--osd_pool_default_erasure-code-profile "{$expected}"
|
||||
run_mon $dir a \
|
||||
--osd_pool_default_erasure-code-profile "{$expected}" || return 1
|
||||
./ceph --format json osd erasure-code-profile get default | \
|
||||
grep "$expected" || return 1
|
||||
}
|
||||
@ -183,13 +199,13 @@ function TEST_format_plain() {
|
||||
|
||||
# osd_pool_default_erasure-code-profile is plain text
|
||||
expected='"plugin":"example"'
|
||||
run_mon $dir a --public-addr $CEPH_MON \
|
||||
--osd_pool_default_erasure-code-profile "plugin=example"
|
||||
run_mon $dir a \
|
||||
--osd_pool_default_erasure-code-profile "plugin=example" || return 1
|
||||
./ceph --format json osd erasure-code-profile get default | \
|
||||
grep "$expected" || return 1
|
||||
}
|
||||
|
||||
main osd-erasure-code-profile
|
||||
main osd-erasure-code-profile "$@"
|
||||
|
||||
# Local Variables:
|
||||
# compile-command: "cd ../.. ; make -j4 && test/mon/osd-erasure-code-profile.sh"
|
||||
|
Loading…
Reference in New Issue
Block a user