xref: /freebsd/tools/test/stress2/misc/rsync3.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# tmpfs version of rsync.sh
10*ef777be9SPeter Holm
11*ef777be9SPeter Holm[ `id -u` -ne 0 ] && echo "Must be root!" && exit 1
12*ef777be9SPeter Holm
13*ef777be9SPeter Holm. ../default.cfg
14*ef777be9SPeter Holm
15*ef777be9SPeter Holm[ -f "`which rsync`" ] || exit 0
16*ef777be9SPeter Holm[ -d /usr/src/sys ]    || exit 0
17*ef777be9SPeter Holm
18*ef777be9SPeter Holmset -eu
19*ef777be9SPeter Holmprog=$(basename "$0" .sh)
20*ef777be9SPeter Holmlog=/tmp/$prog.log
21*ef777be9SPeter Holmmount | grep "on $mntpoint " | grep -q /dev/md && umount -f $mntpoint
22*ef777be9SPeter Holm[ -c /dev/md$mdstart ] &&  mdconfig -d -u $mdstart
23*ef777be9SPeter Holmmount -t tmpfs dummy $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	rsync -avrq  /usr/src/sys $mntpoint/usr/src; s=$?
30*ef777be9SPeter Holmfi
31*ef777be9SPeter Holm
32*ef777be9SPeter Holmif [ $s -eq 0 ]; then
33*ef777be9SPeter Holm	diff -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
34*ef777be9SPeter Holm	[ $s -ne 0 ] &&
35*ef777be9SPeter Holm	    { echo "/usr/src $mntpoint/usr/src differ!"; head -10 $log; }
36*ef777be9SPeter Holmfi
37*ef777be9SPeter Holm
38*ef777be9SPeter Holmwhile mount | grep -q "on $mntpoint "; do
39*ef777be9SPeter Holm	umount $mntpoint || break
40*ef777be9SPeter Holm	sleep 1
41*ef777be9SPeter Holmdone
42*ef777be9SPeter Holmrm -f $log
43*ef777be9SPeter Holmexit $s
44