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>
+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
test_160() {
[ $PARALLEL == "yes" ] && skip "skip parallel run" && return
remote_mds_nodsh && skip "remote MDS with nodsh" && return
# verify contents
echo "verifying target fid"
# 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)
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"
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)
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}")
err17935 "pfid in changelog $fidc != dir fid $fidf"
USER_REC1=$($GET_CL_USERS | awk "\$1 == \"$USER\" {print \$2}")