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# $FreeBSD$ 33# 34 35# 36# Verifies that vnd works with files stored in tmpfs. 37# 38 39die_mounted() { 40 umount mnt 41 die_configured 42} 43 44die_configured() { 45 mdconfig -d -u 3 46 die 47} 48 49test_run() { 50 test_mount 51 52 test_name "Creation of disk image" 53 dd if=/dev/zero of=disk.img bs=1m count=10 >/dev/null 2>&1 || die 54 55 test_name "Configuration of vnd" 56 mdconfig -a -f disk.img -u 3 -x 32 -y 2 ||die 57 58 test_name "Labelling the md" 59 bsdlabel -m i386 -w /dev/md3 || die_configured 60 61 test_name "Formatting of disk image" 62 newfs -n -U -m 0 -O 1 /dev/md3a >/dev/null 2>&1 || die_configured 63 64 test_name "Mounting of disk image" 65 mkdir mnt || die 66 mount /dev/md3a mnt || die_configured 67 68 test_name "Creation of several files" 69 for f in $(jot 100); do 70 jot 1000 >mnt/$f || die_mounted 71 done 72 73 test_name "Verification of created files" 74 for f in $(jot 100); do 75 [ $(md5 mnt/$f | cut -d ' ' -f 4) = \ 76 53d025127ae99ab79e8502aae2d9bea6 ] || die_mounted 77 done 78 79 test_name "Unmounting of disk image" 80 umount mnt || die_configured 81 82 test_name "Deconfiguration of vnd" 83 mdconfig -d -u 3 || die 84 85 test_unmount 86} 87 88. ${SUBRDIR}/h_funcs.subr 89