Whamcloud - gitweb
b=10595
[fs/lustre-release.git] / lustre / tests / tmpfs-sanity.sh
index 2e8b0c0..718fa81 100755 (executable)
@@ -6,6 +6,31 @@ fail()
        exit 1
 }
 
+check_xattr()
+{
+       name=$1
+       value=$2
+       file="$3"
+       
+       if test "x$value" != "x<deleted>"; then
+               res=`$getattr -n $name $file 2>/dev/null | grep -v "^#" | sed 's/\"//g'`
+       
+               if test "x$res" = "x$name=$value"; then
+                       return 0
+               else
+                       return 1
+               fi
+       else
+               res=`$getattr -d -m ".*" $file 2>/dev/null | grep -v "^#" | sed 's/\"//g'`
+               
+               if echo $res | grep $name > /dev/null 2>&1; then
+                       return 1
+               else
+                       return 0
+               fi
+       fi
+}
+
 test_del_xattr()
 {
        name=$1
@@ -49,45 +74,37 @@ test_list_xattr()
        message=$2
 
        echo -n "$message..."
-       `$setattr -n list_name0 -v list_value0 $file 2>/dev/null`
-       `$setattr -n list_name1 -v list_value1 $file 2>/dev/null`
-       `$setattr -n list_name2 -v list_value2 $file 2>/dev/null`
-
-       nr=`$getattr -d -m ".*" $file 2>/dev/null | grep -v "^#" | \
-grep list_name | wc -l | tr --delete [[:blank:]]`
-
-       if test "x$nr" = "x3"; then
-               echo "done"
-               return 0
-       else
+       `$setattr -n list_name0 -v list_value0 $file 2>/dev/null` || {
                echo "failed"
-               retrun 1
-       fi
-}
-
-check_xattr()
-{
-       name=$1
-       value=$2
-       file="$3"
+               return 1
+       }
        
-       if test "x$value" != "x<deleted>"; then
-               res=`$getattr -n $name $file 2>/dev/null | grep -v "^#" | sed 's/\"//g'`
+       `$setattr -n list_name1 -v list_value1 $file 2>/dev/null` || {
+               echo "failed"
+               return 1
+       }
        
-               if test "x$res" = "x$name=$value"; then
-                       return 0
-               else
+       `$setattr -n list_name2 -v list_value2 $file 2>/dev/null` || {
+               echo "failed"
+               return 1
+       }
+
+       values=`$getattr -d -m ".*" $file 2>/dev/null | grep -v "^#" | \
+grep list_name | sed 's/\"//g'`
+
+       i=0
+       
+       for chunk in $values; do
+               if test "x$chunk" != "xlist_name$i=list_value$i"; then
+                       echo "failed"
                        return 1
                fi
-       else
-               res=`$getattr -d -m ".*" $file 2>/dev/null | grep -v "^#" | sed 's/\"//g'`
                
-               if echo $res | grep $name > /dev/null 2>&1; then
-                       return 1
-               else
-                       return 0
-               fi
-       fi
+               let i=$i+1
+       done
+               
+       echo "done"
+       return 0
 }
 
 # check each function related to xattrs
@@ -97,12 +114,12 @@ test_individual()
 
        test_set_xattr test_name0 test_value0 $file "Create new attribute" &&
        test_set_xattr test_name0 test_value012345 $file "Expanding attribute" &&
-       test_set_xattr test_name0 test_value0 $file "Shrinking attribute" &&
+       test_set_xattr test_name0 test_value0123 $file "Shrinking attribute" &&
        test_del_xattr test_name0 $file "Delete attribute"
        test_list_xattr $file "Getting list of attributes"
 }
 
-# checking xattr code as whole working. Not implemented yet.
+# checking xattr code as a whole. Not implemented yet.
 test_composite()
 {
        return 0