From 0cfc5f4d16ff8f4a46496899ce3284e5292cebe2 Mon Sep 17 00:00:00 2001 From: girish Date: Thu, 12 Mar 2009 11:43:03 +0000 Subject: [PATCH] b=15524 i=adilger i=kalpak sanity test 102 changes for lustre-tar package --- lustre/tests/sanity.sh | 120 +++++++++++++++-------------------------- lustre/tests/test-framework.sh | 1 + 2 files changed, 43 insertions(+), 78 deletions(-) diff --git a/lustre/tests/sanity.sh b/lustre/tests/sanity.sh index baf7b24..060ce83 100644 --- a/lustre/tests/sanity.sh +++ b/lustre/tests/sanity.sh @@ -1,4 +1,5 @@ #!/bin/bash + # # Run select tests by setting ONLY, or as arguments to the script. # Skip specific tests by setting EXCEPT. @@ -3797,29 +3798,31 @@ 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 $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 + $1 $TAR cf $TMP/f102.tar $tdir --xattrs SETUP_TEST102=yes } @@ -3934,18 +3937,18 @@ 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 stripe_index_all_zero=0 @@ -3957,88 +3960,36 @@ compare_stripe_info1() { return 0 } -compare_stripe_info2() { - for num in 1 2 3 4 - do - for count in 1 2 3 4 - do - for offset in 0 1 2 3 - 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 - fi - if [ $stripe_count -ne $count ]; then - error "$file: different stripe count" && return - fi - if [ $stripe_index -ne $offset ]; then - error "$file: different stripe offset" && return - fi - done - done - done +find_lustre_tar() { + [ -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: tar test for trusted.lov xattr + TAR=$(find_lustre_tar) + [ -z "$TAR" ] && skip "lustre-aware 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 + $TAR xf $TMP/f102.tar -C $DIR/d102d --xattrs cd $DIR/d102d/$tdir compare_stripe_info1 - } -run_test 102d "star 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 - setup_test102 - mkdir -p $DIR/d102e - star -x -preserve-osts f=$TMP/f102.tar -C $DIR/d102e - cd $DIR/d102e/$tdir - compare_stripe_info2 -} -run_test 102e "star restore stripe info from tarfile, keep osts ===========" +run_test 102d "tar restore stripe info from tarfile,not 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: tar test for trusted.lov xattr + TAR=$(find_lustre_tar) + [ -z "$TAR" ] && skip "lustre-aware 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 + $TAR cf - --xattrs $tdir | $TAR xf - --xattrs -C $DIR/d102f cd $DIR/d102f/$tdir compare_stripe_info1 } -run_test 102f "star 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 - setup_test102 - mkdir -p $DIR/d102g - cd $DIR - star -copy -preserve-osts $tdir $DIR/d102g - cd $DIR/d102g/$tdir - compare_stripe_info2 - cleanup_test102 -} -run_test 102g "star copy files, keep osts ===========" +run_test 102f "tar copy files, not keep osts ===========" test_102h() { # bug 15777 [ -z $(lctl get_param -n mdc.*.connect_flags | grep xattr) ] && @@ -4093,6 +4044,19 @@ test_102i() { # bug 17038 } run_test 102i "lgetxattr test on symbolic link ============" +test_102j() { + TAR=$(find_lustre_tar) + [ -z "$TAR" ] && skip "lustre-aware 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 + $RUNAS $TAR xf $TMP/f102.tar -C $DIR/d102j --xattrs + cd $DIR/d102j/$tdir + compare_stripe_info1 "$RUNAS" +} +run_test 102j "non-root tar restore stripe info from tarfile, not keep osts ===" + cleanup_test102 run_acl_subtest() diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 5c83edb..76068fb 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -2129,6 +2129,7 @@ check_catastrophe () { # $1 node # $2 file +# $3 $RUNAS get_stripe_info() { local tmp_file -- 1.8.3.1