summaryrefslogtreecommitdiff
path: root/tests/ext4/307
blob: 8b1cfc9e4c62abc393dc8e7d5d0e092c22501741 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2006 Silicon Graphics, Inc.  All Rights Reserved.
#
# FSQA Test No. 307
#
# Check data integrity during defrag compacting
#
. ./common/preamble
_begin_fstest auto ioctl rw defrag prealloc

# Import common functions.
. ./common/filter
. ./common/defrag
# Disable all sync operations to get higher load
FSSTRESS_AVOID="$FSSTRESS_AVOID -ffsync=0 -fsync=0 -ffdatasync=0"
_workout()
{
	echo ""
	echo "Run fsstress"
	out=$SCRATCH_MNT/fsstress.$$
	args=`_scale_fsstress_args -p4 -n999 -f setattr=1 $FSSTRESS_AVOID -d $out`
	echo "fsstress $args" >> $seqres.full
	$FSSTRESS_PROG $args >> $seqres.full
	find $out -type f > $out.list
	cat $out.list | xargs  md5sum > $out.md5sum
	usage=`du -sch $out | tail -n1 | gawk '{ print $1 }'`
	echo "Allocate donor file"
	$XFS_IO_PROG -c "falloc 0 250M" -f $SCRATCH_MNT/donor | _filter_xfs_io
	echo "Perform compacting"
	cat $out.list | run_check $here/src/e4compact \
		-i -v -f $SCRATCH_MNT/donor  >> $seqres.full 2>&1
	echo "Check data"
	run_check md5sum -c $out.md5sum
}

# real QA test starts here
_supported_fs generic
_supported_fs ext4
_require_scratch
_require_defrag
_require_xfs_io_command "falloc"

_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
_scratch_mount

_workout
status=0
exit