. ./common.rc
. ./common.filter
+# assumes 1st, 3rd and 5th blocks are single written blocks,
+# the others are unwritten.
_filter_blocks()
{
- $AWK_PROG '/[0-9]/ {
- if ($7)
- print $1, $2, "XX..YY", "AG", "(AA..BB)", $6, $7;
- else
- print $1, $2, "XX..YY", "AG", "(AA..BB)", $6;
- }'
+ $AWK_PROG '
+/[0-9]/ {
+ if (!written_size) {
+ written_size = $6
+ unwritten1 = ((1048576/512) / 2) - written_size
+ unwritten2 = ((1048576/512) / 2) - 2 * written_size
+ }
+
+ if ($7) {
+ size = "RIGHT"
+ flags = "GOOD"
+ if (unwritten1) {
+ if ($6 != unwritten1)
+ size = "WRONG"
+ unwritten1 = 0;
+ } else if ($6 != unwritten2) {
+ size = "WRONG"
+ }
+ if ($7 < 10000)
+ flags = "BAD"
+ } else {
+ size = "RIGHT"
+ flags = "GOOD"
+ if ($6 != written_size)
+ size = "WRONG"
+ }
+ print $1, "[AA..BB]", "XX..YY", "AG", "(AA..BB)", size, flags
+}'
}
# real QA test starts here
TEST_FILE=$SCRATCH_MNT/test_file
TEST_PROG=$here/src/unwritten_mmap
-FILE_SIZE=131072
+FILE_SIZE=1048576
rm -f $TEST_FILE
$TEST_PROG $FILE_SIZE $TEST_FILE
QA output created by 166
-0: [0..31]: XX..YY AG (AA..BB) 32
-1: [32..127]: XX..YY AG (AA..BB) 96 10000
-2: [128..159]: XX..YY AG (AA..BB) 32
-3: [160..223]: XX..YY AG (AA..BB) 64 10000
-4: [224..255]: XX..YY AG (AA..BB) 32
+0: [AA..BB] XX..YY AG (AA..BB) RIGHT GOOD
+1: [AA..BB] XX..YY AG (AA..BB) RIGHT GOOD
+2: [AA..BB] XX..YY AG (AA..BB) RIGHT GOOD
+3: [AA..BB] XX..YY AG (AA..BB) RIGHT GOOD
+4: [AA..BB] XX..YY AG (AA..BB) RIGHT GOOD