summaryrefslogtreecommitdiff
path: root/qa/rgw
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2010-09-22 22:32:40 -0700
committerYehuda Sadeh <yehuda@hq.newdream.net>2010-09-22 22:40:28 -0700
commit1eaec1794329131f160d0978ea2035c7aeb58bef (patch)
tree123213bf3a2d1b96112d792a405dd2a1f157fc3b /qa/rgw
parent2e5fa67c6e44ee3206e39588137ae9206923262b (diff)
downloadceph-1eaec1794329131f160d0978ea2035c7aeb58bef.tar.gz
qa: add simple rgw test
Diffstat (limited to 'qa/rgw')
-rwxr-xr-xqa/rgw/s3.sh126
1 files changed, 126 insertions, 0 deletions
diff --git a/qa/rgw/s3.sh b/qa/rgw/s3.sh
new file mode 100755
index 00000000000..6afea61440b
--- /dev/null
+++ b/qa/rgw/s3.sh
@@ -0,0 +1,126 @@
+#!/bin/sh
+
+
+origdir=`pwd`
+# set -x
+
+load_credentials() {
+ if [ -e ~/.s3 ]; then
+ source ~/.s3
+ else
+ echo "ERROR: Credentials not defined!"
+ exit 1
+ fi
+}
+
+if [ "$S3_ACCESS_KEY_ID" == "" ] ||
+ [ "$S3_HOSTNAME" == "" ] ||
+ [ "$S3_SECRET_ACCESS_KEY" == "" ]; then
+ load_credentials
+fi
+
+bindir=${origdir}/libs3/build/bin
+libdir=${origdir}/libs3/build/lib
+log=${origdir}/s3.log
+export LD_LIBRARY_PATH=${libdir}
+s3=${bindir}/s3
+
+tmp_bucket="test-`date | sed 's/[: ]/-/g'`"
+
+cleanup() {
+ rm -fR libs3
+}
+
+build() {
+ echo "Checking out source"
+ log git clone git://github.com/wido/libs3.git
+ echo "Building"
+ log make -C libs3
+}
+
+init() {
+ cleanup
+ build
+ mkdir -p tmp
+}
+
+log() {
+ "$@" >> $log
+}
+
+
+do_op() {
+ should_succeed=$1
+ shift
+ op=$1
+ shift
+ params="$@"
+ echo "# $op" "$@" | tee -a $log
+ $op "$@" > .cmd.log 2>&1
+ log cat .cmd.log
+
+ fail=`grep -c ERROR .cmd.log`
+ [ $fail -eq 0 ] && success=1 || success=0
+ if [ $success -ne $should_succeed ]; then
+ [ $should_succeed -ne 0 ] && echo "Command failed:"
+ [ $should_succeed -eq 0 ] && echo "Command succeeded unexpectedly:"
+ echo "$op $params"
+ cat .cmd.log
+ exit 1
+ fi
+}
+
+run_s3() {
+ echo $s3 "$@"
+ $s3 "$@"
+}
+
+create_bucket() {
+ bucket_name=$1
+
+ run_s3 create $tmp_bucket
+}
+
+delete_bucket() {
+ bucket_name=$1
+
+ run_s3 delete $tmp_bucket
+}
+
+create_file() {
+ file_name=$1
+ dd if=/dev/urandom of=tmp/$file_name bs=4096 count=2048
+ run_s3 put $tmp_bucket/$file_name filename=tmp/$file_name
+}
+
+get_file() {
+ file_name=$1
+ dest_fname=$2
+ run_s3 get $tmp_bucket/$file_name filename=tmp/$dest_fname
+ do_op 1 diff tmp/$file_name tmp/$dest_fname
+ rm -f tmp/foo.tmp
+}
+
+delete_file() {
+ file_name=$1
+ run_s3 delete $tmp_bucket/$file_name
+}
+
+
+main() {
+ log echo "****************************************************************"
+ log echo "* `date`" >> $log
+ log echo "****************************************************************"
+ init
+ do_op 1 create_bucket $tmp_bucket
+ do_op 0 create_bucket $tmp_bucket
+ do_op 1 create_file foo
+ do_op 1 get_file foo foo.tmp
+ do_op 1 delete_file foo
+ do_op 1 delete_bucket $tmp_bucket
+}
+
+
+main "$@"
+
+