xref: /freebsd/tools/test/stress2/misc/rsync.sh (revision ef777be98543f7daae90bd123d4fc1ec4a54efc2)
1#/bin/sh
2
3#
4# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org>
5#
6# SPDX-License-Identifier: BSD-2-Clause
7#
8
9[ `id -u` -ne 0 ] && echo "Must be root!" && exit 1
10
11. ../default.cfg
12
13[ -f "`which rsync`" ] || exit 0
14[ -d /usr/src/sys ]    || exit 0
15
16set -eu
17prog=$(basename "$0" .sh)
18log=/tmp/$prog.log
19mount | grep "on $mntpoint " | grep -q /dev/md && umount -f $mntpoint
20[ -c /dev/md$mdstart ] &&  mdconfig -d -u $mdstart
21mdconfig -a -t swap -s 15g -u $mdstart
22newfs $newfs_flags md$mdstart > /dev/null
23mount /dev/md$mdstart $mntpoint
24set +e
25
26mkdir -p $mntpoint/usr/src
27rsync -avrq /usr/src/sys $mntpoint/usr/src; s=$?
28if [ $s -eq 0 ]; then
29	(cd $mntpoint; umount $mntpoint > /dev/null 2>&1)	# sync
30	rsync -avrq  /usr/src/sys $mntpoint/usr/src; s=$?
31fi
32
33if [ $s -eq 0 ]; then
34	diff -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
35	[ $s -ne 0 ] &&
36	    { echo "/usr/src $mntpoint/usr/src differ!"; head -10 $log; }
37fi
38
39while mount | grep -q "on $mntpoint "; do
40	umount $mntpoint || break
41	sleep 1
42done
43if [ $s -eq 0 ]; then
44	fsck_ffs -fy /dev/md$mdstart > $log 2>&1; s=$?
45	grep -Eq "WAS MODIFIED" $log && { cat $log; s=1; }
46fi
47mdconfig -d -u $mdstart
48rm -f $log
49exit $s
50