Skip to content

Commit

Permalink
erasure-code: test rados put and get
Browse files Browse the repository at this point in the history
Check that rados put immediately followed by rados get retrieves exactly
the same content.

http://tracker.ceph.com/issues/7423 refs ceph#7423

Signed-off-by: Loic Dachary <[email protected]>
  • Loading branch information
Loic Dachary committed Mar 3, 2014
1 parent 0b612d1 commit ef25135
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/test/erasure-code/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
check_SCRIPTS += \
test/erasure-code/test-erasure-code.sh

ceph_erasure_code_benchmark_SOURCES = \
test/erasure-code/ceph_erasure_code_benchmark.cc
ceph_erasure_code_benchmark_LDADD = $(LIBOSD) $(LIBCOMMON) $(BOOST_PROGRAM_OPTIONS_LIBS) $(CEPH_GLOBAL)
Expand Down
70 changes: 70 additions & 0 deletions src/test/erasure-code/test-erasure-code.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/bin/bash
#
# Copyright (C) 2014 Cloudwatt <[email protected]>
#
# Author: Loic Dachary <[email protected]>
#
# 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.
#

source test/mon/mon-test-helpers.sh
source test/osd/osd-test-helpers.sh

function run() {
local dir=$1

export CEPH_ARGS
CEPH_ARGS+="--fsid=$(uuidgen) --auth-supported=none "
CEPH_ARGS+="--mon-host=127.0.0.1 "

setup $dir || return 1
run_mon $dir a --public-addr 127.0.0.1 || return 1
for id in $(seq 0 4) ; do
run_osd $dir $id || return 1
done
create_erasure_coded_pool || return 1
FUNCTIONS=${FUNCTIONS:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')}
for TEST_function in $FUNCTIONS ; do
if ! $TEST_function $dir ; then
cat $dir/a/log
return 1
fi
done
teardown $dir || return 1
}

function create_erasure_coded_pool() {
local plugin_parameters="erasure-code-k=2 erasure-code-m=1"
./ceph osd crush rule create-erasure ecruleset \
$plugin_parameters \
erasure-code-ruleset-failure-domain=osd || return 1
./ceph osd pool create ecpool 12 12 erasure crush_ruleset=ecruleset \
$plugin_parameters || return 1
}

function TEST_rados_put() {
local dir=$1
local payload=ABC
echo "$payload" > $dir/ORIGINAL

./rados --pool ecpool put SOMETHING $dir/ORIGINAL || return 1
./rados --pool ecpool get SOMETHING $dir/COPY || return 1

diff $dir/ORIGINAL $dir/COPY || return 1

rm $dir/ORIGINAL $dir/COPY
}

main test-erasure-code

# Local Variables:
# compile-command: "cd ../.. ; make -j4 && test/erasure-code/test-erasure-code.sh"
# End:

0 comments on commit ef25135

Please sign in to comment.