873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#!/bin/ksh -p
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# This file and its contents are supplied under the terms of the
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# Common Development and Distribution License ("CDDL"), version 1.0.
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# You may only use this file in accordance with the terms of version
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 1.0 of the CDDL.
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# A full copy of the text of the CDDL should have accompanied this
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# source. A copy of the CDDL is also available via the Internet at
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# http://www.illumos.org/license/CDDL.
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# Copyright (c) 2015 by Delphix. All rights reserved.
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya. $STF_SUITE/include/libtest.shlib
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# DESCRIPTION:
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# Verify that zfs mount should fail with a non-empty directory
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# STRATEGY:
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 1. Unmount the dataset
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 2. Create a new empty directory
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 3. Set the dataset's mountpoint
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 4. Attempt to mount the dataset
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 5. Verify the mount succeeds
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 6. Unmount the dataset
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 7. Create a file in the directory created in step 2
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 8. Attempt to mount the dataset
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya# 9. Verify the mount fails
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya#
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryaverify_runnable "both"
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_assert "zfs mount fails with non-empty directory"
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryafs=$TESTPOOL/$TESTFS
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must zfs umount $fs
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must mkdir -p $TESTDIR
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must zfs set mountpoint=$TESTDIR $fs
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must zfs mount $fs
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must zfs umount $fs
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must touch $TESTDIR/testfile.$$
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_mustnot zfs mount $fs
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_must rm -rf $TESTDIR
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Surya
873c4903a52d089cd8234b79d24f5a3fc3bccc82Prakash Suryalog_pass "zfs mount fails non-empty directory as expected."