xref: /freebsd/tools/test/stress2/misc/rsync3.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# tmpfs version of rsync.sh
10
11[ `id -u` -ne 0 ] && echo "Must be root!" && exit 1
12
13. ../default.cfg
14
15[ -f "`which rsync`" ] || exit 0
16[ -d /usr/src/sys ]    || exit 0
17
18set -eu
19prog=$(basename "$0" .sh)
20log=/tmp/$prog.log
21mount | grep "on $mntpoint " | grep -q /dev/md && umount -f $mntpoint
22[ -c /dev/md$mdstart ] &&  mdconfig -d -u $mdstart
23mount -t tmpfs dummy $mntpoint
24set +e
25
26mkdir -p $mntpoint/usr/src
27rsync -avrq /usr/src/sys $mntpoint/usr/src; s=$?
28if [ $s -eq 0 ]; then
29	rsync -avrq  /usr/src/sys $mntpoint/usr/src; s=$?
30fi
31
32if [ $s -eq 0 ]; then
33	diff -rq /usr/src/sys $mntpoint/usr/src/sys > $log; s=$?
34	[ $s -ne 0 ] &&
35	    { echo "/usr/src $mntpoint/usr/src differ!"; head -10 $log; }
36fi
37
38while mount | grep -q "on $mntpoint "; do
39	umount $mntpoint || break
40	sleep 1
41done
42rm -f $log
43exit $s
44