done
}
+read_objects() {
+ ver=$1
+ num_objs=$2
+ obj_size=$3
+ [ -d "${TEMPDIR}" ] || die "must setup_tempdir"
+ chr=`perl -e "print chr(48+$ver)"`
+ head -c $obj_size /dev/zero | tr '\0' "$chr" > $TEMPDIR/exemplar
+ for i in `seq -w 1 $num_objs`; do
+ ./rados -p $pool get obj$i $TEMPDIR/out$i || die "radostool failed"
+ cmp $TEMPDIR/out$i $TEMPDIR/exemplar || die "got back incorrect obj$i"
+ done
+}
+
poll_cmd() {
command=$1
search_str=$2
--- /dev/null
+#!/bin/bash -x
+
+#
+# Generic read/write from object store test
+#
+
+# Includes
+source "`dirname $0`/test_common.sh"
+
+# Functions
+my_write_objects() {
+ write_objects $1 $2 10 1000000 data
+}
+
+setup() {
+ export CEPH_NUM_OSD=$1
+
+ # Start ceph
+ ./stop.sh
+
+ ./vstart.sh -d -n || die "vstart.sh failed"
+}
+
+read_write_1_impl() {
+ write_objects 1 2 100 8192 data
+ read_objects 2 100 8192
+
+ write_objects 3 3 10 81920 data
+ read_objects 3 10 81920
+
+ write_objects 4 4 100 4 data
+ read_objects 4 100 4
+
+ write_objects 1 2 100 8192 data
+ read_objects 2 100 8192
+
+ # success
+ return 0
+}
+
+read_write_1() {
+ setup 3
+ read_write_1_impl
+}
+
+run() {
+ read_write_1 || die "test failed"
+}
+
+$@