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