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# 20# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 21# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 24# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30# POSSIBILITY OF SUCH DAMAGE. 31# 32# 33 34# 35# Verifies that vnd works with files stored in tmpfs. 36# 37 38die_mounted() { 39 umount mnt 40 die_configured 41} 42 43die_configured() { 44 mdconfig -d -u 3 45 die 46} 47 48test_run() { 49 test_mount 50 51 test_name "Creation of disk image" 52 dd if=/dev/zero of=disk.img bs=1m count=10 >/dev/null 2>&1 || die 53 54 test_name "Configuration of vnd" 55 mdconfig -a -f disk.img -u 3 -x 32 -y 2 ||die 56 57 test_name "Labelling the md" 58 bsdlabel -m i386 -w /dev/md3 || die_configured 59 60 test_name "Formatting of disk image" 61 newfs -n -U -m 0 -O 1 /dev/md3a >/dev/null 2>&1 || die_configured 62 63 test_name "Mounting of disk image" 64 mkdir mnt || die 65 mount /dev/md3a mnt || die_configured 66 67 test_name "Creation of several files" 68 for f in $(jot 100); do 69 jot 1000 >mnt/$f || die_mounted 70 done 71 72 test_name "Verification of created files" 73 for f in $(jot 100); do 74 [ $(md5 mnt/$f | cut -d ' ' -f 4) = \ 75 53d025127ae99ab79e8502aae2d9bea6 ] || die_mounted 76 done 77 78 test_name "Unmounting of disk image" 79 umount mnt || die_configured 80 81 test_name "Deconfiguration of vnd" 82 mdconfig -d -u 3 || die 83 84 test_unmount 85} 86 87. ${SUBRDIR}/h_funcs.subr 88