Whamcloud - gitweb
Change sanity.sh to test "tar --xattr"
authorgirish <girish>
Fri, 9 Jan 2009 18:06:42 +0000 (18:06 +0000)
committergirish <girish>
Fri, 9 Jan 2009 18:06:42 +0000 (18:06 +0000)
b=15524
i=adilger
i=kalpak.shah

lustre/tests/sanity.sh
lustre/tests/test-framework.sh

index ebddc01..fd20f97 100644 (file)
@@ -3858,29 +3858,35 @@ export SETUP_TEST102=no
 setup_test102() {
        [ "$SETUP_TEST102" = "yes" ] && return
        mkdir -p $DIR/$tdir
+       chown $RUNAS_ID $DIR/$tdir
        STRIPE_SIZE=65536
-       STRIPE_COUNT=4
-       STRIPE_OFFSET=2
+       STRIPE_OFFSET=1
+       STRIPE_COUNT=$OSTCOUNT
+       [ $OSTCOUNT -gt 4 ] && STRIPE_COUNT=4
 
        trap cleanup_test102 EXIT
        cd $DIR
-       $SETSTRIPE $tdir -s $STRIPE_SIZE -i $STRIPE_OFFSET -c $STRIPE_COUNT
+       # $1 = runas
+       $1 $SETSTRIPE $tdir -s $STRIPE_SIZE -i $STRIPE_OFFSET -c $STRIPE_COUNT
        cd $DIR/$tdir
        for num in 1 2 3 4
        do
-               for count in 1 2 3 4
+               for count in `seq 1 $STRIPE_COUNT`
                do
-                       for offset in 0 1 2 3
+                       for offset in `seq 0 $[$STRIPE_COUNT - 1]`
                        do
                                local stripe_size=`expr $STRIPE_SIZE \* $num`
                                local file=file"$num-$offset-$count"
-                               $SETSTRIPE $file -s $stripe_size -i $offset -c $count
+                               $1 $SETSTRIPE $file -s $stripe_size -i $offset -c $count
                        done
                done
        done
 
        cd $DIR
-       star -c  f=$TMP/f102.tar $tdir
+       if [ "$TAR" == "tar" ]; then
+               TAR_OPTS="--xattrs"
+       fi
+       $1 $TAR cf $TMP/f102.tar $tdir $TAR_OPTS
        SETUP_TEST102=yes
 }
 
@@ -3995,21 +4001,21 @@ run_test 102c "non-root getfattr/setfattr for lustre.lov EAs ==========="
 compare_stripe_info1() {
        for num in 1 2 3 4
        do
-               for count in 1 2 3 4
+               for count in `seq 1 $STRIPE_COUNT`
                do
-                       for offset in 0 1 2 3
+                       for offset in `seq 0 $[$STRIPE_COUNT - 1]`
                        do
                                local size=`expr $STRIPE_SIZE \* $num`
                                local file=file"$num-$offset-$count"
-                               get_stripe_info client $PWD/$file
+                               get_stripe_info client $PWD/$file "$1"
                                if [ $stripe_size -ne $size ]; then
-                                       error "$file: different stripe size" && return
+                                       error "$file: different stripe size $stripe_size, expected $size" && return
                                fi
                                if [ $stripe_count -ne $count ]; then
-                                       error "$file: different stripe count" && return
+                                       error "$file: different stripe count $stripe_count, expected $count" && return
                                fi
                                if [ $stripe_index -ne 0 ]; then
-                                       error "$file: different stripe offset" && return
+                                       error "$file: different stripe offset $stripe_index, expected 0" && return
                                fi
                        done
                done
@@ -4019,49 +4025,53 @@ compare_stripe_info1() {
 compare_stripe_info2() {
        for num in 1 2 3 4
        do
-               for count in 1 2 3 4
+               for count in `seq 1 $STRIPE_COUNT`
                do
-                       for offset in 0 1 2 3
+                       for offset in `seq 0 $[$STRIPE_COUNT - 1]`
                        do
                                local size=`expr $STRIPE_SIZE \* $num`
                                local file=file"$num-$offset-$count"
                                get_stripe_info client $PWD/$file
                                if [ $stripe_size -ne $size ]; then
-                                       error "$file: different stripe size" && return  
+                                       error "$file: different stripe size $stripe_size, expected $size" && return
                                fi
                                if [ $stripe_count -ne $count ]; then
-                                       error "$file: different stripe count" && return
+                                       error "$file: different stripe count $stripe_count, expected $count" && return
                                fi
                                if [ $stripe_index -ne $offset ]; then
-                                       error "$file: different stripe offset" && return
+                                       error "$file: different stripe offset $stripe_index, expected $offset" && return
                                fi
                        done
                done
        done
 }
 
+find_lustre_tar() {
+       [ -n "$(which star 2>/dev/null)" ] && strings $(which star) | grep -q lustre && echo star && return
+       [ -n "$(which tar 2>/dev/null)" ] && strings $(which tar) | grep -q lustre && echo tar
+}
+
 test_102d() {
-       # b10930: star test for trusted.lov xattr
-       star --xhelp 2>&1 | grep -q nolustre
-       if [ $? -ne 0 ]
-       then
-               skip "being skipped because a lustre-aware star is not installed." && return
-       fi
-       [ "$OSTCOUNT" -lt "4" ] && skip "skipping 4-stripe test" && return
+       # b10930: (s)tar test for trusted.lov xattr
+       TAR=$(find_lustre_tar)
+       [ -z "$TAR" ] && skip "lustre-aware (s)tar is not installed" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip "skipping N-stripe test" && return
        setup_test102
        mkdir -p $DIR/d102d
-       star -x  f=$TMP/f102.tar -C $DIR/d102d
+       if [ "$TAR" == "tar" ]; then
+               TAR_OPTS="--xattrs"
+       fi
+       $TAR xf $TMP/f102.tar -C $DIR/d102d $TAR_OPTS
        cd $DIR/d102d/$tdir
        compare_stripe_info1
-
 }
-run_test 102d "star restore stripe info from tarfile,not keep osts ==========="
+run_test 102d "(s)tar restore stripe info from tarfile,not keep osts ==========="
 
 test_102e() {
        # b10930: star test for trusted.lov xattr
-       star --xhelp 2>&1 | grep -q nolustre
-       [ $? -ne 0 ] && skip "lustre-aware star is not installed" && return
-       [ "$OSTCOUNT" -lt "4" ] && skip "skipping 4-stripe test" && return
+       TAR=$(find_lustre_tar)
+       [ "$TAR" != star ] && skip "lustre-aware star is not installed" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip "skipping N-stripe test" && return
        setup_test102
        mkdir -p $DIR/d102e
        star -x  -preserve-osts f=$TMP/f102.tar -C $DIR/d102e
@@ -4071,24 +4081,27 @@ test_102e() {
 run_test 102e "star restore stripe info from tarfile, keep osts ==========="
 
 test_102f() {
-       # b10930: star test for trusted.lov xattr
-       star --xhelp 2>&1 | grep -q nolustre
-       [ $? -ne 0 ] && skip "lustre-aware star is not installed" && return
-       [ "$OSTCOUNT" -lt "4" ] && skip "skipping 4-stripe test" && return
+       # b10930: (s)tar test for trusted.lov xattr
+       TAR=$(find_lustre_tar)
+       [ -z "$TAR" ] && skip "lustre-aware (s)tar is not installed" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip "skipping N-stripe test" && return
        setup_test102
        mkdir -p $DIR/d102f
        cd $DIR
-       star -copy  $tdir $DIR/d102f
+       if [ "$TAR" == "tar" ]; then
+               TAR_OPTS="--xattrs"
+       fi
+       $TAR cf - $TAR_OPTS . | $TAR xf - $TAR_OPTS -C $DIR/d102f
        cd $DIR/d102f/$tdir
        compare_stripe_info1
 }
-run_test 102f "star copy files, not keep osts ==========="
+run_test 102f "(s)tar copy files, not keep osts ==========="
 
 test_102g() {
        # b10930: star test for trusted.lov xattr
-       star --xhelp 2>&1 | grep -q nolustre
-       [ $? -ne 0 ] && skip "lustre-aware star is not installed" && return
-       [ "$OSTCOUNT" -lt "4" ] && skip "skipping 4-stripe test" && return
+       TAR=$(find_lustre_tar)
+       [ "$TAR" != star ] && skip "lustre-aware star is not installed" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip "skipping N-stripe test" && return
        setup_test102
        mkdir -p $DIR/d102g
        cd $DIR
@@ -4153,6 +4166,22 @@ test_102i() { # bug 17038
 }
 run_test 102i "lgetxattr test on symbolic link ============"
 
+test_102j() {
+       TAR=$(find_lustre_tar)
+       [ -z "$TAR" ] && skip "lustre-aware (s)tar is not installed" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip "skipping N-stripe test" && return
+       setup_test102 "$RUNAS"
+       mkdir -p $DIR/d102j
+       chown $RUNAS_ID $DIR/d102j
+       if [ "$TAR" == "tar" ]; then
+               TAR_OPTS="--xattrs"
+       fi
+       $RUNAS $TAR xf $TMP/f102.tar -C $DIR/d102j $TAR_OPTS
+       cd $DIR/d102j/$tdir
+       compare_stripe_info1 "$RUNAS"
+}
+run_test 102j "non-root (s)tar restore stripe info from tarfile,not keep osts ="
+
 run_acl_subtest()
 {
     $LUSTRE/tests/acl/run $LUSTRE/tests/acl/$1.test
index b270e91..32516c1 100644 (file)
@@ -2312,6 +2312,7 @@ check_catastrophe () {
 
 # $1 node
 # $2 file
+# $3 $RUNAS
 get_stripe_info() {
        local tmp_file
 
@@ -2320,7 +2321,7 @@ get_stripe_info() {
        stripe_index=0
        tmp_file=$(mktemp)
 
-       do_facet $1 lfs getstripe -v $2 > $tmp_file
+       do_facet $1 $3 lfs getstripe -v $2 > $tmp_file
 
        stripe_size=`awk '$1 ~ /size/ {print $2}' $tmp_file`
        stripe_count=`awk '$1 ~ /count/ {print $2}' $tmp_file`