Whamcloud - gitweb
LU-3589 tests: Access changelog record FIDs by name. 98/6998/4
authorHenri Doreau <henri.doreau@cea.fr>
Tue, 16 Jul 2013 09:33:16 +0000 (11:33 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 26 Jul 2013 17:51:39 +0000 (17:51 +0000)
Update sanity test_160 to make it parse changelog records
in a more robust way. Access target and parent FIDs by name
instead of relying on their position on the line.

Signed-off-by: Henri Doreau <henri.doreau@cea.fr>
Change-Id: Ib5836a8e624f04a971b80f9ff9b9e978bbff7bee
Reviewed-on: http://review.whamcloud.com/6998
Tested-by: Hudson
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: James Nunez <james.a.nunez@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/tests/sanity.sh

index 55bd93a..eae0af9 100644 (file)
@@ -9203,6 +9203,17 @@ changelog_chmask()
        fi
 }
 
+changelog_extract_field() {
+       local mdt=$1
+       local cltype=$2
+       local file=$3
+       local identifier=$4
+
+       $LFS changelog $mdt | gawk "/$cltype.*$file$/ {
+               print gensub(/^.* "$identifier'(\[[^\]]*\]).*$/,"\\1",1)}' |
+               tail -1
+}
+
 test_160() {
        [ $PARALLEL == "yes" ] && skip "skip parallel run" && return
        remote_mds_nodsh && skip "remote MDS with nodsh" && return
@@ -9248,14 +9259,14 @@ test_160() {
 
        # verify contents
        echo "verifying target fid"
-       fidc=$($LFS changelog $MDT0|awk '/CREAT.*timestamp$/{print $6}'|tail -1)
+       fidc=$(changelog_extract_field $MDT0 "CREAT" "timestamp" "t=")
        fidf=$($LFS path2fid $DIR/$tdir/pics/zach/timestamp)
-       [ "$fidc" == "t=$fidf" ] ||
+       [ "$fidc" == "$fidf" ] ||
                err17935 "fid in changelog $fidc != file fid $fidf"
        echo "verifying parent fid"
-       fidc=$($LFS changelog $MDT0|awk '/CREAT.*timestamp$/{print $7}'|tail -1)
+       fidc=$(changelog_extract_field $MDT0 "CREAT" "timestamp" "p=")
        fidf=$($LFS path2fid $DIR/$tdir/pics/zach)
-       [ "$fidc" == "p=$fidf" ] ||
+       [ "$fidc" == "$fidf" ] ||
                err17935 "pfid in changelog $fidc != dir fid $fidf"
 
        USER_REC1=$($GET_CL_USERS | awk "\$1 == \"$USER\" {print \$2}")