diff options
author | ngie <ngie@FreeBSD.org> | 2017-05-27 23:04:48 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2017-05-27 23:04:48 +0000 |
commit | 75e7ac62b1cfd9030af1e58bf8ac1fa63c888c28 (patch) | |
tree | 03cd6f3f8a2d09a088d5c6fa250abedae2de63c2 /contrib/netbsd-tests | |
parent | 17c4108b2eca043c887538a3d056aba606d10394 (diff) | |
download | FreeBSD-src-75e7ac62b1cfd9030af1e58bf8ac1fa63c888c28.zip FreeBSD-src-75e7ac62b1cfd9030af1e58bf8ac1fa63c888c28.tar.gz |
MFC r318546:
sys/fs/tmpfs/vnd_test: make md(4) allocation dynamic
The previous logic was flawed in the sense that it assumed that /dev/md3
was always available. This was a caveat I noted in r306038, that I hadn't
gotten around to solving before now.
Cache the device for the mountpoint after executing mdmfs, then use the
cached value in basic_cleanup(..) when unmounting/disconnecting the md(4)
device.
Apply sed expressions to use reuse logic in the NetBSD code that could
also be applied to FreeBSD, just with different tools.
Diffstat (limited to 'contrib/netbsd-tests')
-rwxr-xr-x | contrib/netbsd-tests/fs/tmpfs/t_vnd.sh | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh b/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh index 1f42f62..0929b55 100755 --- a/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh +++ b/contrib/netbsd-tests/fs/tmpfs/t_vnd.sh @@ -28,6 +28,10 @@ # Verifies that vnd works with files stored in tmpfs. # +# Begin FreeBSD +MD_DEVICE_FILE=md.device +# End FreeBSD + atf_test_case basic cleanup basic_head() { atf_set "descr" "Verifies that vnd works with files stored in tmpfs" @@ -41,7 +45,10 @@ basic_body() { # Begin FreeBSD if true; then atf_check -s eq:0 -o empty -e empty mkdir mnt - atf_check -s eq:0 -o empty -e empty mdmfs -F disk.img md3 mnt + atf_check -s eq:0 -o empty -e empty mdmfs -F disk.img md mnt + md_dev=$(df mnt | awk 'NR != 1 { print $1 }' | xargs basename) + atf_check test -c /dev/$md_dev # Sanity check + echo -n $md_dev > $TMPDIR/$MD_DEVICE_FILE else # End FreeBSD atf_check -s eq:0 -o empty -e empty vndconfig /dev/vnd3 disk.img @@ -67,31 +74,23 @@ basic_body() { done atf_check -s eq:0 -o empty -e empty umount mnt - # Begin FreeBSD - if true; then - atf_check -s eq:0 -o empty -e empty mdconfig -d -u 3 - else - # End FreeBSD atf_check -s eq:0 -o empty -e empty vndconfig -u /dev/vnd3 - # Begin FreeBSD - fi - # End FreeBSD test_unmount touch done } basic_cleanup() { + # Begin FreeBSD + if md_dev=$(cat $TMPDIR/$MD_DEVICE_FILE); then + echo "Will try disconnecting $md_dev" + else + echo "$MD_DEVICE_FILE doesn't exist in $TMPDIR; returning early" + return 0 + fi + # End FreeBSD if [ ! -f done ]; then umount mnt 2>/dev/null 1>&2 - # Begin FreeBSD - if true; then - [ ! -c /dev/md3 ] || mdconfig -d -u 3 - else - # End FreeBSD vndconfig -u /dev/vnd3 2>/dev/null 1>&2 - # Begin FreeBSD - fi - # End FreeBSD fi } |