diff options
| author | pgoyette <pgoyette@NetBSD.org> | 2016-07-29 06:13:39 +0000 |
|---|---|---|
| committer | pgoyette <pgoyette@NetBSD.org> | 2016-07-29 06:13:39 +0000 |
| commit | bbd83e8949654d8e81119ea16c221c619e00f89d (patch) | |
| tree | 8253eaa8917e44220a7c696dccf30c7281bf24f4 /tests/dev | |
| parent | 91c977680c7f336538a29444e6923b188f77c354 (diff) | |
Add a basic test for fss(4)
XXX For now, we just create required files (including mount-points)
XXX in the test's working directory. Eventually someone with more
XXX rump-foo than I should create a fss rump-component and then update
XXX the test to run under rump.
Diffstat (limited to 'tests/dev')
| -rw-r--r-- | tests/dev/Makefile | 4 | ||||
| -rw-r--r-- | tests/dev/fss/Makefile | 11 | ||||
| -rwxr-xr-x | tests/dev/fss/t_fss.sh | 82 |
3 files changed, 95 insertions, 2 deletions
diff --git a/tests/dev/Makefile b/tests/dev/Makefile index b5e2b407a23..e255e24dd44 100644 --- a/tests/dev/Makefile +++ b/tests/dev/Makefile @@ -1,11 +1,11 @@ -# $NetBSD: Makefile,v 1.10 2016/01/05 17:22:38 jakllsch Exp $ +# $NetBSD: Makefile,v 1.11 2016/07/29 06:13:39 pgoyette Exp $ # .include <bsd.own.mk> TESTSDIR= ${TESTSBASE}/dev -TESTS_SUBDIRS+= cgd raidframe +TESTS_SUBDIRS+= cgd fss raidframe .if (${MKRUMP} != "no") && !defined(BSD_MK_COMPAT_FILE) TESTS_SUBDIRS+= audio md scsipi sysmon usb .endif diff --git a/tests/dev/fss/Makefile b/tests/dev/fss/Makefile new file mode 100644 index 00000000000..6fa37533a97 --- /dev/null +++ b/tests/dev/fss/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2016/07/29 06:13:39 pgoyette Exp $ +# + +.include <bsd.own.mk> + +TESTSDIR= ${TESTSBASE}/dev/fss +FILESDIR= ${TESTSDIR} + +TESTS_SH= t_fss + +.include <bsd.test.mk> diff --git a/tests/dev/fss/t_fss.sh b/tests/dev/fss/t_fss.sh new file mode 100755 index 00000000000..c4a08a9fd09 --- /dev/null +++ b/tests/dev/fss/t_fss.sh @@ -0,0 +1,82 @@ +# $NetBSD: t_fss.sh,v 1.1 2016/07/29 06:13:39 pgoyette Exp $ +# +# Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc. +# All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# +# Verify basic operation of fss(4) file system snapshot device +# + +orig_data="Original data" +repl_data="Replacement data" + +atf_test_case basic cleanup +basic_body() { + +# create of mount-points for the file system and snapshot + + mkdir ./m1 + mkdir ./m2 + +# create a small 4MB file, treat it as a disk, init a file-system on it, +# and mount it + + dd if=/dev/zero of=./image bs=32k count=64 + vndconfig -c vnd0 ./image + newfs /dev/vnd0a + mount /dev/vnd0a ./m1 + + echo "${orig_data}" > ./m1/text + +# configure and mount a snapshot of the file system + + fssconfig -c fss0 ./m1 ./backup + mount /dev/fss0 ./m2 + +# Modify the data on the underlying file system + + echo "${repl_data}" > ./m1/text || abort + +# Verify that original data is still visible in the snapshot + + read test_data < ./m2/text + atf_check_equal "${orig_data}" "${test_data}" + +# Unmount our temporary stuff + + umount /dev/vnd0a || true + umount /dev/fss0 || true +} + +basic_cleanup() { + umount /dev/vnd0a || true + umount /dev/fss0 || true + vndconfig -u vnd0 || true + fssconfig -u fss0 || true +} + +atf_init_test_cases() +{ + atf_add_test_case basic +} |
