diff options
Diffstat (limited to 'contrib/netbsd-tests/fs/h_funcs.subr')
-rw-r--r-- | contrib/netbsd-tests/fs/h_funcs.subr | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/contrib/netbsd-tests/fs/h_funcs.subr b/contrib/netbsd-tests/fs/h_funcs.subr new file mode 100644 index 0000000..1216aaf --- /dev/null +++ b/contrib/netbsd-tests/fs/h_funcs.subr @@ -0,0 +1,63 @@ +#!/bin/sh +# +# $NetBSD: h_funcs.subr,v 1.3 2010/06/23 11:19:17 pooka Exp $ +# +# Copyright (c) 2007 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. +# + +# +# require_fs name +# +# Checks that the given file system is built into the kernel and +# that its corresponding mount(8) utility is available. Otherwise +# skips the test. +# +require_fs() { + local name + local autoload + name="${1}" + + atf_require_prog mount + atf_require_prog mount_${name} + atf_require_prog umount + + # if we have autoloadable modules, just assume the file system + atf_require_prog sysctl + autoload=$(sysctl -n kern.module.autoload) + [ "${autoload}" = "1" ] && return 0 + + set -- $(sysctl -n vfs.generic.fstypes) + found=no + while [ ${#} -gt 1 ]; do + if [ ${1} = ${name} ]; then + found=yes + break + fi + shift + done + [ ${found} = yes ] || \ + atf_skip "The kernel does not include support the " \ + "\`${name}' file system" +} |