1#!/bin/sh 2# 3# Copyright (c) 2008, 2009 Edward Tomasz Napierała <trasz@FreeBSD.org> 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25# SUCH DAMAGE. 26# 27# $FreeBSD$ 28# 29 30# This is a wrapper script to run tools-crossfs.test between UFS without 31# ACLs, UFS with POSIX.1e ACLs, and ZFS with NFSv4 ACLs. 32# 33# WARNING: It uses hardcoded ZFS pool name "acltools" 34# 35# Output should be obvious. 36 37if ! sysctl vfs.zfs.version.spa >/dev/null 2>&1; then 38 echo "1..0 # SKIP system doesn't have ZFS loaded" 39 exit 0 40fi 41if [ $(id -u) -ne 0 ]; then 42 echo "1..0 # SKIP you must be root" 43 exit 0 44fi 45 46echo "1..5" 47 48TESTDIR=$(dirname $(realpath $0)) 49MNTROOT=`mktemp -dt acltools` 50 51# Set up the test filesystems. 52MD1=`mdconfig -at swap -s 64m` 53MNT1=$MNTROOT/nfs4 54mkdir $MNT1 55zpool create -m $MNT1 acltools /dev/$MD1 56if [ $? -ne 0 ]; then 57 echo "not ok 1 - 'zpool create' failed." 58 echo 'Bail out!' 59 exit 1 60fi 61 62echo "ok 1" 63 64MD2=`mdconfig -at swap -s 10m` 65MNT2=$MNTROOT/posix 66mkdir $MNT2 67newfs /dev/$MD2 > /dev/null 68mount -o acls /dev/$MD2 $MNT2 69if [ $? -ne 0 ]; then 70 echo "not ok 2 - mount failed." 71 echo 'Bail out!' 72 exit 1 73fi 74 75echo "ok 2" 76 77MD3=`mdconfig -at swap -s 10m` 78MNT3=$MNTROOT/none 79mkdir $MNT3 80newfs /dev/$MD3 > /dev/null 81mount /dev/$MD3 $MNT3 82if [ $? -ne 0 ]; then 83 echo "not ok 3 - mount failed." 84 echo 'Bail out!' 85 exit 1 86fi 87 88echo "ok 3" 89 90cd $MNTROOT 91 92perl $TESTDIR/run $TESTDIR/tools-crossfs.test >&2 93 94if [ $? -eq 0 ]; then 95 echo "ok 4" 96else 97 echo "not ok 4" 98fi 99 100cd / 101 102umount -f $MNT3 103rmdir $MNT3 104mdconfig -du $MD3 105 106umount -f $MNT2 107rmdir $MNT2 108mdconfig -du $MD2 109 110zpool destroy -f acltools 111rmdir $MNT1 112mdconfig -du $MD1 113 114rmdir $MNTROOT 115 116echo "ok 5" 117 118