Whamcloud - gitweb
LU-3503 test: only create single directory by test_mkdir() 96/6796/5
authorEmoly Liu <emoly.liu@intel.com>
Tue, 7 May 2013 16:12:27 +0000 (00:12 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 10 Jul 2013 03:29:03 +0000 (03:29 +0000)
Force test_mkdir() to create single directory instead of
multiple directories.

Signed-off-by: Liu Ying <emoly.liu@intel.com>
Change-Id: I222f2bc5e6578b1cd8c4049a10f5ca1790c2c5ad
Reviewed-on: http://review.whamcloud.com/6796
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Robert Read <robert.read@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/tests/sanity.sh
lustre/tests/test-framework.sh

index db05a37..c3a8d1a 100644 (file)
@@ -1186,7 +1186,7 @@ test_26f() {
        test_mkdir -p $DIR/$tdir
        test_mkdir $DIR/$tdir/$tfile   || error "mkdir $DIR/$tdir/$tfile failed"
        cd $DIR/$tdir/$tfile           || error "cd $DIR/$tdir/$tfile failed"
        test_mkdir -p $DIR/$tdir
        test_mkdir $DIR/$tdir/$tfile   || error "mkdir $DIR/$tdir/$tfile failed"
        cd $DIR/$tdir/$tfile           || error "cd $DIR/$tdir/$tfile failed"
-       test_mkdir -p lndir bar1      || error "mkdir lndir/bar1 failed"
+       test_mkdir -p lndir/bar1      || error "mkdir lndir/bar1 failed"
        test_mkdir $DIR/$tdir/$tfile/$tfile   || error "mkdir $tfile failed"
        cd $tfile                || error "cd $tfile failed"
        ln -s .. dotdot          || error "ln dotdot failed"
        test_mkdir $DIR/$tdir/$tfile/$tfile   || error "mkdir $tfile failed"
        cd $tfile                || error "cd $tfile failed"
        ln -s .. dotdot          || error "ln dotdot failed"
@@ -7204,7 +7204,8 @@ test_120c() {
                skip "no early lock cancel on server" && return 0
         lru_resize_disable mdc
         lru_resize_disable osc
                skip "no early lock cancel on server" && return 0
         lru_resize_disable mdc
         lru_resize_disable osc
-        test_mkdir -p $DIR/$tdir/d1 $DIR/$tdir/d2
+       test_mkdir -p $DIR/$tdir/d1
+       test_mkdir -p $DIR/$tdir/d2
         touch $DIR/$tdir/d1/f1
         cancel_lru_locks mdc
         stat $DIR/$tdir/d1 $DIR/$tdir/d2 $DIR/$tdir/d1/f1 > /dev/null
         touch $DIR/$tdir/d1/f1
         cancel_lru_locks mdc
         stat $DIR/$tdir/d1 $DIR/$tdir/d2 $DIR/$tdir/d1/f1 > /dev/null
@@ -7277,7 +7278,8 @@ test_120f() {
         test_mkdir -p $DIR/$tdir
         lru_resize_disable mdc
         lru_resize_disable osc
         test_mkdir -p $DIR/$tdir
         lru_resize_disable mdc
         lru_resize_disable osc
-        test_mkdir -p $DIR/$tdir/d1 $DIR/$tdir/d2
+       test_mkdir -p $DIR/$tdir/d1
+       test_mkdir -p $DIR/$tdir/d2
         dd if=/dev/zero of=$DIR/$tdir/d1/f1 count=1
         dd if=/dev/zero of=$DIR/$tdir/d2/f2 count=1
         cancel_lru_locks mdc
         dd if=/dev/zero of=$DIR/$tdir/d1/f1 count=1
         dd if=/dev/zero of=$DIR/$tdir/d2/f2 count=1
         cancel_lru_locks mdc
index bdb1e64..97b7aad 100644 (file)
@@ -6228,41 +6228,28 @@ generate_logname() {
        echo "$TESTLOG_PREFIX.$TESTNAME.$logname.$(hostname -s).log"
 }
 
        echo "$TESTLOG_PREFIX.$TESTNAME.$logname.$(hostname -s).log"
 }
 
-# mkdir directory on different MDTs
+# make directory on different MDTs
 test_mkdir() {
        local option
        local parent
        local child
        local path
 test_mkdir() {
        local option
        local parent
        local child
        local path
-       local dir
        local rc=0
 
        local rc=0
 
-       if [ $# -eq 2 ]; then
-               option=$1
-               path=$2
-       else
-               path=$1
-       fi
-
-       child=${path##*/}
-       parent=${path%/*}
+       case $# in
+               1) path=$1;;
+               2) option=$1
+                  path=$2;;
+               *) error "Only creating single directory is supported";;
+       esac
 
 
-       if [ "$parent" == "$child" ]; then
-               parent=$(pwd)
-       fi
+       child=$(basename $path)
+       parent=$(dirname $path)
 
 
-       if [ "$option" == "-p" -a -d ${parent}/${child} ]; then
+       if [ "$option" == "-p" -a -d $parent/$child ]; then
                return $rc
        fi
 
                return $rc
        fi
 
-       # it needs to check whether there is further / in child
-       dir=$(echo $child | awk -F '/' '{print $2}')
-       if [ ! -z "$dir" ]; then
-               local subparent=$(echo $child | awk -F '/' '{ print $1 }')
-               parent=${parent}"/"${subparent}
-               child=$dir
-       fi
-
        if [ ! -d ${parent} ]; then
                if [ "$option" == "-p" ]; then
                        mkdir -p ${parent}
        if [ ! -d ${parent} ]; then
                if [ "$option" == "-p" ]; then
                        mkdir -p ${parent}
@@ -6272,19 +6259,18 @@ test_mkdir() {
        fi
 
        if [ $MDSCOUNT -le 1 ]; then
        fi
 
        if [ $MDSCOUNT -le 1 ]; then
-               mkdir $option ${parent}/${child} || rc=$?
+               mkdir $option $parent/$child || rc=$?
        else
                local mdt_idx=$($LFS getstripe -M $parent)
        else
                local mdt_idx=$($LFS getstripe -M $parent)
+               local test_num=$(echo $testnum | sed -e 's/[^0-9]*//g')
 
                if [ "$mdt_idx" -ne 0 ]; then
 
                if [ "$mdt_idx" -ne 0 ]; then
-                       mkdir $option ${parent}/${child} || rc=$?
-                       return $rc
+                       mkdir $option $parent/$child || rc=$?
+               else
+                       mdt_idx=$((test_num % MDSCOUNT))
+                       echo "mkdir $mdt_idx for $parent/$child"
+                       $LFS setdirstripe -i $mdt_idx $parent/$child || rc=$?
                fi
                fi
-
-               local test_num=$(echo $testnum | sed -e 's/[^0-9]*//g')
-               local mdt_idx=$((test_num % MDSCOUNT))
-               echo "mkdir $mdt_idx for ${parent}/${child}"
-               $LFS setdirstripe -i $mdt_idx ${parent}/${child} || rc=$?
        fi
        return $rc
 }
        fi
        return $rc
 }