Whamcloud - gitweb
LU-3223 utils: multiple args for path2fid/fid2path
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 4bd99e6..1d47653 100644 (file)
@@ -8846,6 +8846,24 @@ dot_lustre_fid_permission_check() {
        rm -rf $test_dir/$tfile-2
 }
 
+test_154A() {
+       [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.4.1) ]] &&
+               skip "Need MDS version at least 2.4.1" && return
+
+       touch $DIR/$tfile
+       local FID=$($LFS path2fid $DIR/$tfile)
+       [ -z "$FID" ] && error "path2fid unable to get $DIR/$tfile FID"
+
+       # check that we get the same pathname back
+       local FOUND=$($LFS fid2path $MOUNT $FID)
+       [ -z "$FOUND" ] && error "fid2path unable to get $FID path"
+       [ "$FOUND" != "$DIR/$tfile" ] &&
+               error "fid2path(path2fid($DIR/$tfile)) = $FOUND != $DIR/$tfile"
+
+       rm -rf $DIR/$tfile
+}
+run_test 154A "lfs path2fid and fid2path basic checks"
+
 test_154a() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
        [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.2.51) ]] ||
@@ -8899,6 +8917,33 @@ test_154b() {
 }
 run_test 154b "Open-by-FID for remote directory"
 
+test_154c() {
+       [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.4.1) ]] &&
+               skip "Need MDS version at least 2.4.1" && return
+
+       touch $DIR/$tfile.1 $DIR/$tfile.2 $DIR/$tfile.3
+       local FID1=$($LFS path2fid $DIR/$tfile.1)
+       local FID2=$($LFS path2fid $DIR/$tfile.2)
+       local FID3=$($LFS path2fid $DIR/$tfile.3)
+
+       local N=1
+       $LFS path2fid $DIR/$tfile.[123] | while read PATHNAME FID; do
+               [ "$PATHNAME" = "$DIR/$tfile.$N:" ] ||
+                       error "path2fid pathname $PATHNAME != $DIR/$tfile.$N:"
+               local want=FID$N
+               [ "$FID" = "${!want}" ] ||
+                       error "path2fid $PATHNAME FID $FID != FID$N ${!want}"
+               N=$((N + 1))
+       done
+
+       $LFS fid2path $MOUNT $FID1 $FID2 $FID3 | while read PATHNAME; do
+               [ "$PATHNAME" = "$DIR/$tfile.$N" ] ||
+                       error "fid2path pathname $PATHNAME != $DIR/$tfile.$N:"
+               N=$((N + 1))
+       done
+}
+run_test 154c "lfs path2fid and fid2path multiple arguments"
+
 test_155_small_load() {
     local temp=$TMP/$tfile
     local file=$DIR/$tfile