1da5137abSMartin Matuska#!/bin/ksh -p 2da5137abSMartin Matuska# 3da5137abSMartin Matuska# CDDL HEADER START 4da5137abSMartin Matuska# 5da5137abSMartin Matuska# The contents of this file are subject to the terms of the 6da5137abSMartin Matuska# Common Development and Distribution License (the "License"). 7da5137abSMartin Matuska# You may not use this file except in compliance with the License. 8da5137abSMartin Matuska# 9da5137abSMartin Matuska# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*271171e0SMartin Matuska# or https://opensource.org/licenses/CDDL-1.0. 11da5137abSMartin Matuska# See the License for the specific language governing permissions 12da5137abSMartin Matuska# and limitations under the License. 13da5137abSMartin Matuska# 14da5137abSMartin Matuska# When distributing Covered Code, include this CDDL HEADER in each 15da5137abSMartin Matuska# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16da5137abSMartin Matuska# If applicable, add the following below this CDDL HEADER, with the 17da5137abSMartin Matuska# fields enclosed by brackets "[]" replaced with your own identifying 18da5137abSMartin Matuska# information: Portions Copyright [yyyy] [name of copyright owner] 19da5137abSMartin Matuska# 20da5137abSMartin Matuska# CDDL HEADER END 21da5137abSMartin Matuska# 22da5137abSMartin Matuska 23da5137abSMartin Matuska# 24da5137abSMartin Matuska# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25da5137abSMartin Matuska# Use is subject to license terms. 26da5137abSMartin Matuska# 27da5137abSMartin Matuska 28da5137abSMartin Matuska# 29da5137abSMartin Matuska# Copyright (c) 2013, 2016 by Delphix. All rights reserved. 30da5137abSMartin Matuska# 31da5137abSMartin Matuska 32da5137abSMartin Matuska. $STF_SUITE/tests/functional/rsend/rsend.kshlib 33da5137abSMartin Matuska 34da5137abSMartin Matuska# DESCRIPTION: 35da5137abSMartin Matuska# zfs send with multiple -X/--exclude options will 36da5137abSMartin Matuska# exclude all of them. 37da5137abSMartin Matuska# 38da5137abSMartin Matuska# STRATEGY: 39da5137abSMartin Matuska# 1. Setup test model 40da5137abSMartin Matuska# 2. Create several datasets on pool. 41da5137abSMartin Matuska# 3. Send -R -X pool/dataset 42da5137abSMartin Matuska# 4. Verify receive does not have the excluded dataset(s). 43da5137abSMartin Matuska 44da5137abSMartin Matuskaverify_runnable "both" 45da5137abSMartin Matuska 46da5137abSMartin Matuskafunction cleanup 47da5137abSMartin Matuska{ 48da5137abSMartin Matuska cleanup_pool $POOL2 49da5137abSMartin Matuska cleanup_pool $POOL 50da5137abSMartin Matuska log_must setup_test_model $POOL 51da5137abSMartin Matuska} 52da5137abSMartin Matuska 53da5137abSMartin Matuskalog_assert "zfs send with multiple -X options will skip excluded dataset" 54da5137abSMartin Matuskalog_onexit cleanup 55da5137abSMartin Matuska 56da5137abSMartin Matuskacleanup 57da5137abSMartin Matuska 58da5137abSMartin Matuska# 59da5137abSMartin Matuska# Create some datasets 60da5137abSMartin Matuskalog_must zfs create -p $POOL/ds1/second/third 61da5137abSMartin Matuskalog_must zfs create -p $POOL/ds2/second 62da5137abSMartin Matuskalog_must zfs create -p $POOL/ds3/first/second/third 63da5137abSMartin Matuska 64da5137abSMartin Matuskalog_must zfs snapshot -r $POOL@presend 65da5137abSMartin Matuska 66da5137abSMartin Matuskalog_must eval "zfs send -R $POOL@presend > $BACKDIR/presend" 67da5137abSMartin Matuskalog_must eval "zfs receive -d -F $POOL2 < $BACKDIR/presend" 68da5137abSMartin Matuska 69da5137abSMartin Matuskafor ds in ds1 ds1/second ds1/second/third \ 70da5137abSMartin Matuska ds2 ds2/second \ 71da5137abSMartin Matuska ds3 ds3/first ds3/first/second ds3/first/second/third 72da5137abSMartin Matuskado 73da5137abSMartin Matuska log_must datasetexists $POOL2/$ds 74da5137abSMartin Matuskadone 75da5137abSMartin Matuska 76da5137abSMartin Matuskalog_must_busy zfs destroy -r $POOL2 77da5137abSMartin Matuska 78da5137abSMartin Matuskalog_must eval "zfs send -R -X $POOL/ds1/second --exclude $POOL/ds3/first/second $POOL@presend > $BACKDIR/presend" 79da5137abSMartin Matuskalog_must eval "zfs receive -d -F $POOL2 < $BACKDIR/presend" 80da5137abSMartin Matuska 81da5137abSMartin Matuskafor ds in ds1 ds2 ds2/second ds3 ds3/first 82da5137abSMartin Matuskado 83da5137abSMartin Matuska log_must datasetexists $POOL2/$ds 84da5137abSMartin Matuskadone 85da5137abSMartin Matuska 86da5137abSMartin Matuskafor ds in ds1/second ds1/second/third ds3/first/second ds3/first/second/third 87da5137abSMartin Matuskado 88da5137abSMartin Matuska log_must datasetnonexists $POOL2/$ds 89da5137abSMartin Matuskadone 90da5137abSMartin Matuska 91da5137abSMartin Matuskalog_pass "zfs send with multiple -X options excluded datasets" 92da5137abSMartin Matuska 93