1#!/usr/local/bin/ksh93 -p 2# 3# CDDL HEADER START 4# 5# The contents of this file are subject to the terms of the 6# Common Development and Distribution License (the "License"). 7# You may not use this file except in compliance with the License. 8# 9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10# or http://www.opensolaris.org/os/licensing. 11# See the License for the specific language governing permissions 12# and limitations under the License. 13# 14# When distributing Covered Code, include this CDDL HEADER in each 15# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16# If applicable, add the following below this CDDL HEADER, with the 17# fields enclosed by brackets "[]" replaced with your own identifying 18# information: Portions Copyright [yyyy] [name of copyright owner] 19# 20# CDDL HEADER END 21# 22 23# $FreeBSD$ 24 25# 26# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 27# Use is subject to license terms. 28# 29# ident "@(#)rsend_005_pos.ksh 1.1 08/02/27 SMI" 30# 31 32. $STF_SUITE/tests/rsend/rsend.kshlib 33 34################################################################################# 35# 36# __stc_assertion_start 37# 38# ID: rsend_005_pos 39# 40# DESCRIPTION: 41# zfs send -R -I send all the incremental between fs@init with fs@final 42# 43# STRATEGY: 44# 1. Setup test model 45# 2. Send -R -I @init @final on pool 46# 3. Destroy all the snapshots which is later than @init 47# 4. Verify receive can restore all the snapshots and data 48# 5. Do the same test on filesystem and volume 49# 50# TESTABILITY: explicit 51# 52# TEST_AUTOMATION_LEVEL: automated 53# 54# CODING_STATUS: COMPLETED (2007-08-27) 55# 56# __stc_assertion_end 57# 58################################################################################ 59 60verify_runnable "both" 61 62log_assert "zfs send -R -I send all the incremental between @init with @final" 63log_onexit cleanup_pool $POOL2 64 65# 66# Duplicate POOL2 for testing 67# 68log_must eval "$ZFS send -R $POOL@final > $BACKDIR/pool-final-R" 69log_must eval "$ZFS receive -d -F $POOL2 < $BACKDIR/pool-final-R" 70 71if is_global_zone ; then 72 # 73 # Testing send -R -I from pool 74 # 75 log_must eval "$ZFS send -R -I @init $POOL2@final > " \ 76 "$BACKDIR/pool-init-final-IR" 77 list=$(getds_with_suffix $POOL2 @snapA) 78 list="$list $(getds_with_suffix $POOL2 @snapB)" 79 list="$list $(getds_with_suffix $POOL2 @snapC)" 80 list="$list $(getds_with_suffix $POOL2 @final)" 81 log_must destroy_tree $list 82 log_must eval "$ZFS receive -d -F $POOL2 < $BACKDIR/pool-init-final-IR" 83 log_must cmp_ds_cont $POOL $POOL2 84fi 85 86dstds=$(get_dst_ds $POOL $POOL2) 87# 88# Testing send -R -I from filesystem 89# 90log_must eval "$ZFS send -R -I @init $dstds/$FS@final > " \ 91 "$BACKDIR/fs-init-final-IR" 92list=$(getds_with_suffix $dstds/$FS @snapA) 93list="$list $(getds_with_suffix $dstds/$FS @snapB)" 94list="$list $(getds_with_suffix $dstds/$FS @snapC)" 95list="$list $(getds_with_suffix $dstds/$FS @final)" 96log_must destroy_tree $list 97if is_global_zone ; then 98 log_must eval "$ZFS receive -d -F $dstds < $BACKDIR/fs-init-final-IR" 99else 100 $ZFS receive -d -F $dstds < $BACKDIR/fs-init-final-IR 101fi 102log_must cmp_ds_subs $POOL $dstds 103log_must cmp_ds_cont $POOL $dstds 104 105if is_global_zone ; then 106 # 107 # Testing send -I -R for volume 108 # 109 vol=$POOL2/$FS/vol 110 log_must eval "$ZFS send -R -I @init $vol@final > " \ 111 "$BACKDIR/vol-init-final-IR" 112 log_must destroy_tree $vol@snapB $vol@snapC $vol@final 113 log_must eval "$ZFS receive -d -F $POOL2 < $BACKDIR/vol-init-final-IR" 114 log_must cmp_ds_subs $POOL $POOL2 115 log_must cmp_ds_cont $POOL $POOL2 116fi 117 118log_pass "zfs send -R -I send all the incremental between @init with @final" 119