3 # This file and its contents are supplied under the terms of the
4 # Common Development and Distribution License ("CDDL"), version 1.0.
5 # You may only use this file in accordance with the terms of version
8 # A full copy of the text of the CDDL should have accompanied this
9 # source. A copy of the CDDL is also available via the Internet at
10 # http://www.illumos.org/license/CDDL.
14 # Copyright (c) 2016 by Delphix. All rights reserved.
17 . $STF_SUITE/tests/functional/channel_program/channel_common.kshlib
21 # Attempting to promote a clone when it shares a snapshot name with
22 # its parent filesystem should fail and return the name of the
23 # conflicting snapshot.
26 verify_runnable "global"
28 fs=$TESTPOOL/$TESTFS/testchild
29 clone=$TESTPOOL/$TESTFS/testchild_clone
30 snap=promote_conflict_snap
34 for to_destroy in $fs $clone; do
35 datasetexists $to_destroy && log_must zfs destroy -R $to_destroy
41 log_must zfs create $fs
42 log_must zfs snapshot $fs@$snap
43 log_must zfs clone $fs@$snap $clone
44 log_must zfs snapshot $clone@$snap
47 # This channel program is expected to return successfully, but fail to execute
48 # the promote command since the snapshot names collide. It returns the error
49 # code and description, which should be EEXIST (17) and the name of the
50 # conflicting snapshot.
52 log_must_program $TESTPOOL \
53 $ZCP_ROOT/synctask_core/tst.promote_conflict.zcp $clone
55 log_pass "Promoting a clone with a conflicting snapshot fails."