Whamcloud - gitweb
LU-5319 tests: testcases for multiple modify RPCs feature
[fs/lustre-release.git] / lustre / tests / sanity.sh
index ab8b62d..fdb74d4 100644 (file)
@@ -6699,7 +6699,7 @@ grow_xattr() {
        local xsize=${1:-1024}  # in bytes
        local file=$DIR/$tfile
 
-       [ -z $(lctl get_param -n mdc.*.connect_flags | grep xattr) ] &&
+       [ -z "$(lctl get_param -n mdc.*.connect_flags | grep xattr)" ] &&
                skip "must have user_xattr" && return 0
        [ -z "$(which setfattr 2>/dev/null)" ] &&
                skip_env "could not find setfattr" && return 0
@@ -12609,7 +12609,7 @@ test_230b() {
        ln -s $other_dir/$tfile $migrate_dir/${tfile}_ln_other
 
        $LFS migrate -m $MDTIDX $migrate_dir ||
-               error "migrate remote dir error"
+               error "fails on migrating remote dir to MDT1"
 
        echo "migratate to MDT1, then checking.."
        for ((i = 0; i < 10; i++)); do
@@ -12672,8 +12672,9 @@ test_230b() {
 
        #migrate back to MDT0
        MDTIDX=0
+
        $LFS migrate -m $MDTIDX $migrate_dir ||
-               error "migrate remote dir error"
+               error "fails on migrating remote dir to MDT0"
 
        echo "migrate back to MDT0, checking.."
        for file in $(find $migrate_dir); do
@@ -12752,6 +12753,12 @@ test_230c() {
        local t=$(ls $migrate_dir | wc -l)
        $LFS migrate --mdt-index $MDTIDX $migrate_dir &&
                error "migrate should fail after 5 entries"
+
+       mkdir $migrate_dir/dir &&
+               error "mkdir succeeds under migrating directory"
+       touch $migrate_dir/file &&
+               error "touch file succeeds under migrating directory"
+
        local u=$(ls $migrate_dir | wc -l)
        [ "$u" == "$t" ] || error "$u != $t during migration"
 
@@ -13106,6 +13113,31 @@ test_244()
 }
 run_test 244 "sendfile with group lock tests"
 
+test_245() {
+       local flagname="multi_mod_rpcs"
+       local connect_data_name="max_mod_rpcs"
+       local out
+
+       # check if multiple modify RPCs flag is set
+       out=$($LCTL get_param mdc.$FSNAME-MDT0000-*.import |
+               grep "connect_flags:")
+       echo "$out"
+
+       echo "$out" | grep -qw $flagname
+       if [ $? -ne 0 ]; then
+               echo "connect flag $flagname is not set"
+               return
+       fi
+
+       # check if multiple modify RPCs data is set
+       out=$($LCTL get_param mdc.$FSNAME-MDT0000-*.import)
+       echo "$out"
+
+       echo "$out" | grep -qw $connect_data_name ||
+               error "import should have connect data $connect_data_name"
+}
+run_test 245 "check mdc connection flag/data: multiple modify RPCs"
+
 test_250() {
        [ "$(facet_fstype ost$(($($GETSTRIPE -i $DIR/$tfile) + 1)))" = "zfs" ] \
         && skip "no 16TB file size limit on ZFS" && return
@@ -13137,6 +13169,58 @@ test_251() {
 }
 run_test 251 "Handling short read and write correctly"
 
+test_252() {
+       local tgt
+       local dev
+       local out
+       local uuid
+       local num
+       local gen
+
+       if [ "$(facet_fstype ost1)" != "ldiskfs" -o \
+            "$(facet_fstype mds1)" != "ldiskfs" ]; then
+               skip "can only run lr_reader on ldiskfs target"
+               return
+       fi
+
+       # check lr_reader on OST0000
+       tgt=ost1
+       dev=$(facet_device $tgt)
+       out=$(do_facet $tgt $LR_READER $dev)
+       [ $? -eq 0 ] || error "$LR_READER failed on target $tgt device $dev"
+       echo "$out"
+       uuid=$(echo "$out" | grep -i uuid | awk '{ print $2 }')
+       [ "$uuid" == "$(ostuuid_from_index 0)" ] ||
+               error "Invalid uuid returned by $LR_READER on target $tgt"
+       echo -e "uuid returned by $LR_READER is '$uuid'\n"
+
+       # check lr_reader -c on MDT0000
+       tgt=mds1
+       dev=$(facet_device $tgt)
+       if ! do_facet $tgt $LR_READER -h | grep -q OPTIONS; then
+               echo "$LR_READER does not support additional options"
+               return 0
+       fi
+       out=$(do_facet $tgt $LR_READER -c $dev)
+       [ $? -eq 0 ] || error "$LR_READER failed on target $tgt device $dev"
+       echo "$out"
+       num=$(echo "$out" | grep -c "mdtlov")
+       [ "$num" -eq $((MDSCOUNT - 1)) ] ||
+               error "Invalid number of mdtlov clients returned by $LR_READER"
+       echo -e "Number of mdtlov clients returned by $LR_READER is '$num'\n"
+
+       # check lr_reader -cr on MDT0000
+       out=$(do_facet $tgt $LR_READER -cr $dev)
+       [ $? -eq 0 ] || error "$LR_READER failed on target $tgt device $dev"
+       echo "$out"
+       echo "$out" | grep -q "^reply_data:$" ||
+               error "$LR_READER should have returned 'reply_data' section"
+       num=$(echo "$out" | grep -c "client_generation")
+       echo -e "Number of reply data returned by $LR_READER is '$num'\n"
+}
+run_test 252 "check lr_reader tool"
+
+
 cleanup_test_300() {
        trap 0
        umask $SAVE_UMASK