]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - tools/regression/tmpfs/t_vnd
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / tools / regression / tmpfs / t_vnd
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
46 die_mounted() {
47         umount mnt
48         die_configured
49 }
50
51 die_configured() {
52         mdconfig -d -u 3        
53         die
54 }
55
56 test_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