1#!/bin/sh 2# 3# $NetBSD: t_vnd,v 1.1 2006/11/09 15:25:37 jmmv Exp $ 4# 5# Copyright (c) 2006 The NetBSD Foundation, Inc. 6# All rights reserved. 7# 8# This code is derived from software contributed to The NetBSD Foundation 9# by Julio M. Merino Vidal. 10# 11# Redistribution and use in source and binary forms, with or without 12# modification, are permitted provided that the following conditions 13# are met: 14# 1. Redistributions of source code must retain the above copyright 15# notice, this list of conditions and the following disclaimer. 16# 2. Redistributions in binary form must reproduce the above copyright 17# notice, this list of conditions and the following disclaimer in the 18# documentation and/or other materials provided with the distribution. 19# 3. All advertising materials mentioning features or use of this software 20# must display the following acknowledgement: 21# This product includes software developed by the NetBSD 22# Foundation, Inc. and its contributors. 23# 4. Neither the name of The NetBSD Foundation nor the names of its 24# contributors may be used to endorse or promote products derived 25# from this software without specific prior written permission. 26# 27# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 28# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 29# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 30# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 31# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 32# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 33# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 34# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 36# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 37# POSSIBILITY OF SUCH DAMAGE. 38# 39# $FreeBSD$ 40# 41 42# 43# Verifies that vnd works with files stored in tmpfs. 44# 45 46die_mounted() { 47 umount mnt 48 die_configured 49} 50 51die_configured() { 52 mdconfig -d -u 3 53 die 54} 55 56test_run() { 57 test_mount 58 59 test_name "Creation of disk image" 60 dd if=/dev/zero of=disk.img bs=1m count=10 >/dev/null 2>&1 || die 61 62 test_name "Configuration of vnd" 63 mdconfig -a -f disk.img -u 3 -x 32 -y 2 ||die 64 65 test_name "Labelling the md" 66 bsdlabel -m i386 -w /dev/md3 || die_configured 67 68 test_name "Formatting of disk image" 69 newfs -n -U -m 0 -O 1 /dev/md3a >/dev/null 2>&1 || die_configured 70 71 test_name "Mounting of disk image" 72 mkdir mnt || die 73 mount /dev/md3a mnt || die_configured 74 75 test_name "Creation of several files" 76 for f in $(jot 100); do 77 jot 1000 >mnt/$f || die_mounted 78 done 79 80 test_name "Verification of created files" 81 for f in $(jot 100); do 82 [ $(md5 mnt/$f | cut -d ' ' -f 4) = \ 83 53d025127ae99ab79e8502aae2d9bea6 ] || die_mounted 84 done 85 86 test_name "Unmounting of disk image" 87 umount mnt || die_configured 88 89 test_name "Deconfiguration of vnd" 90 mdconfig -d -u 3 || die 91 92 test_unmount 93} 94 95. ${SUBRDIR}/h_funcs.subr 96