8c6b1ac
From fa07d919d1ff868b18d8a42276d094b63a58e299 Mon Sep 17 00:00:00 2001
8c6b1ac
From: Andrei Borzenkov <arvidjaar@gmail.com>
8c6b1ac
Date: Sun, 15 Mar 2015 21:06:26 +0300
8c6b1ac
Subject: [PATCH 361/506] grub-fs-tester: better estimation of filesystem time
8c6b1ac
 for LVM/RAID
8c6b1ac
8c6b1ac
Write activity with LVM/RAID can happen after filesystem is unmounted.
8c6b1ac
In my testing modification time of loop files was 15 - 20 seconds
8c6b1ac
after unmount.  So use time as close to unmount as possible as
8c6b1ac
reference instead.
8c6b1ac
---
8c6b1ac
 tests/util/grub-fs-tester.in | 9 ++++++++-
8c6b1ac
 1 file changed, 8 insertions(+), 1 deletion(-)
8c6b1ac
8c6b1ac
diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in
8c6b1ac
index 9ecbe0f..4f7f920 100644
8c6b1ac
--- a/tests/util/grub-fs-tester.in
8c6b1ac
+++ b/tests/util/grub-fs-tester.in
8c6b1ac
@@ -993,6 +993,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE +
8c6b1ac
 			fi
8c6b1ac
 			sleep 1;
8c6b1ac
 		    done
8c6b1ac
+		    UMOUNT_TIME=$(date -u "+%Y-%m-%d %H:%M:%S")
8c6b1ac
 		    sleep 1
8c6b1ac
 		    vgchange -a n grub_test
8c6b1ac
 		    ;;
8c6b1ac
@@ -1004,6 +1005,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE +
8c6b1ac
 			fi
8c6b1ac
 			sleep 1;
8c6b1ac
 		    done
8c6b1ac
+		    UMOUNT_TIME=$(date -u "+%Y-%m-%d %H:%M:%S")
8c6b1ac
 		    sleep 1
8c6b1ac
 		    mdadm --stop /dev/md/"${fs}_$NDEVICES"
8c6b1ac
 		    ;;
8c6b1ac
@@ -1214,10 +1216,15 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE +
8c6b1ac
 	    case x$fs in
8c6b1ac
 		xiso9660 | xziso9660 | xrockridge | xjoliet | xrockridge_joliet | xiso9660_1999 | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999)
8c6b1ac
 		    FSTIME="$(date -d "$(echo ${FSUUID} | awk -F - '{ print $1"-"$2"-"$3" "$4":"$5":"$6 ;}')" '+%Y-%m-%d %H:%M:%S')";;
8c6b1ac
+		xlvm*|xmdraid*)
8c6b1ac
+		    # With some abstractions like mdraid flushing to disk
8c6b1ac
+		    # may be delayed for a long time.
8c6b1ac
+		    FSTIME="$UMOUNT_TIME";;
8c6b1ac
 		*)
8c6b1ac
 		    FSTIME="$(TZ=UTC ls --time-style="+%Y-%m-%d_%H:%M:%S" -l -d "${FSIMAGES[0]}"|awk '{print $6; }'|sed 's,_, ,g')";;
8c6b1ac
 	    esac
8c6b1ac
-		# With some abstractions like mdraid it may take up to 2 seconds for the data to reach the disks after it was flushed by FS in these tests.
8c6b1ac
+	    # With some abstractions like mdraid computing of UMOUNT_TIME
8c6b1ac
+	    # is not precise. Account for small difference here.
8c6b1ac
 	    FSTIMEM1="$(date -d "$FSTIME UTC -1 second" -u "+%Y-%m-%d %H:%M:%S")"
8c6b1ac
 	    FSTIMEM2="$(date -d "$FSTIME UTC -2 second" -u "+%Y-%m-%d %H:%M:%S")"
8c6b1ac
 
8c6b1ac
-- 
8c6b1ac
2.4.3
8c6b1ac