From 628e28e2b2c482eab01827a0d5ecf87f6b1662dc Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 24 Sep 2010 10:13:14 -0700 Subject: [PATCH] qa: improved rgw tests --- qa/rgw/s3.sh | 92 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 70 insertions(+), 22 deletions(-) diff --git a/qa/rgw/s3.sh b/qa/rgw/s3.sh index 6afea61440bd3..e874b943b1067 100755 --- a/qa/rgw/s3.sh +++ b/qa/rgw/s3.sh @@ -25,10 +25,11 @@ log=${origdir}/s3.log export LD_LIBRARY_PATH=${libdir} s3=${bindir}/s3 -tmp_bucket="test-`date | sed 's/[: ]/-/g'`" +tmp_bucket="test-`date +%s`" +tmpdir="tmp" cleanup() { - rm -fR libs3 + rm -fR libs3 tmp } build() { @@ -48,17 +49,8 @@ log() { "$@" >> $log } - -do_op() { +check_error() { 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 @@ -70,8 +62,20 @@ do_op() { fi } +do_op() { + should_succeed=$1 + shift + op=$1 + shift + params="$@" + echo "# $op" "$@" | tee -a $log + $op "$@" > .cmd.log 2>&1 + log cat .cmd.log + check_error $should_succeed +} + run_s3() { - echo $s3 "$@" + echo $s3 "$@" >> .cmd.log $s3 "$@" } @@ -88,24 +92,59 @@ delete_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 + filename=$1 + dd if=/dev/urandom of=$tmpdir/$filename bs=4096 count=2048 + run_s3 put $tmp_bucket/$filename filename=$tmpdir/$filename } get_file() { - file_name=$1 + filename=$1 + dest_fname=$2 + run_s3 get $tmp_bucket/$filename filename=$tmpdir/$dest_fname + do_op 1 diff $tmpdir/$filename $tmpdir/$dest_fname + rm -f $tmpdir/foo.tmp +} + +get_acl() { + filename=$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 + run_s3 getacl $tmp_bucket/$filename filename=$tmpdir/$dest_fname +} + +set_acl() { + filename=$1 + src_fname=$2 + run_s3 setacl $tmp_bucket/$filename filename=$tmpdir/$src_fname } delete_file() { - file_name=$1 - run_s3 delete $tmp_bucket/$file_name + filename=$1 + run_s3 delete $tmp_bucket/$filename } +get_anon() { + should_succeed=$1 + bucket=$2 + fname=$3 + dest=$tmpdir/$4 + + echo "# get_anon $@" + + url="http://$bucket.$S3_HOSTNAME/$fname" + wget $url -O $dest > .cmd.log 2>&1 + res=$? + log cat .cmd.log + if [ $res -ne 0 ]; then + echo "ERROR: Could not fetch file anonymously (url=$url)" > .cmd.log + fi + check_error $should_succeed +} + +add_acl() { + filename=$1 + acl=$2 + echo $acl >> $tmpdir/$filename +} main() { log echo "****************************************************************" @@ -114,8 +153,17 @@ main() { 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 get_acl foo foo.acl + get_anon 0 $tmp_bucket foo foo.anon + add_acl foo.acl "Group All Users READ" + + do_op 1 set_acl foo foo.acl + get_anon 1 $tmp_bucket foo foo.anon + do_op 1 delete_file foo do_op 1 delete_bucket $tmp_bucket } -- 2.39.5