Mercurial > illumos > illumos-gate
view usr/src/test/zfs-tests/tests/functional/cli_root/zfs_destroy/zfs_destroy_014_pos.ksh @ 13899:0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
3312 Add a testrunner package for OS unit tests
3313 Add a testrunner package to convert ZFS tests from STF
Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com>
Reviewed by: Will Guyette <will.guyette@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Henrik Mattson <henrik.mattson@delphix.com>
Reviewed by: Sonu Pillai <sonu.pillai@delphix.com>
Reviewed by: Christopher Siden <chris.siden@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Approved by: Richard Lowe <richlowe@richlowe.net>
author | John Wren Kennedy <john.kennedy@delphix.com> |
---|---|
date | Wed, 05 Dec 2012 22:04:50 -0500 |
parents | |
children |
line wrap: on
line source
#!/bin/ksh -p # # CDDL HEADER START # # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # CDDL HEADER END # # # Copyright (c) 2012 by Delphix. All rights reserved. # . $STF_SUITE/include/libtest.shlib . $STF_SUITE/tests/functional/cli_root/zfs_destroy/zfs_destroy.cfg # # DESCRIPTION: # 'zfs destroy -R <snapshot>' can destroy all the child # snapshots and preserves all the nested datasetss. # # STRATEGY: # 1. Create nested datasets in the storage pool. # 2. Create recursive snapshots for all the nested datasets. # 3. Verify when snapshots are destroyed recursively, all # the nested datasets still exist. # verify_runnable "both" log_assert "Verify 'zfs destroy -R <snapshot>' does not destroy" \ "nested datasets." log_onexit cleanup datasets="$TESTPOOL/$TESTFS1 $TESTPOOL/$TESTFS1/$TESTFS2 $TESTPOOL/$TESTFS1/$TESTFS2/$TESTFS3" function cleanup { for ds in $datasets; do datasetexists $ds && $ZFS destroy -rf $ds done } # create nested datasets log_must $ZFS create -p $TESTPOOL/$TESTFS1/$TESTFS2/$TESTFS3 # verify dataset creation for ds in $datasets; do datasetexists $ds || log_fail "Create $ds dataset fail." done # create recursive nestedd snapshot log_must $ZFS snapshot -r $TESTPOOL/$TESTFS1@snap for ds in $datasets; do datasetexists $ds@snap || log_fail "Create $ds@snap snapshot fail." done # destroy nested snapshot recursively log_must $ZFS destroy -R $TESTPOOL/$TESTFS1@snap # verify snapshot destroy for ds in $datasets; do datasetexists $ds@snap && log_fail "$ds@snap exists. Destroy failed!" done # verify nested datasets still exist for ds in $datasets; do datasetexists $ds || log_fail "Recursive snapshot destroy deleted $ds" done log_pass "'zfs destroy -R <snapshot>' works as expected."