4 # This file and its contents are supplied under the terms of the
5 # Common Development and Distribution License ("CDDL"), version 1.0.
6 # You may only use this file in accordance with the terms of version
9 # A full copy of the text of the CDDL should have accompanied this
10 # source. A copy of the CDDL is also available via the Internet at
11 # http://www.illumos.org/license/CDDL.
15 # Copyright (c) 2012, 2016 by Delphix. All rights reserved.
18 .
$STF_SUITE/include
/libtest.shlib
19 .
$STF_SUITE/tests
/functional
/nopwrite
/nopwrite.shlib
23 # Verify that nopwrite still works for a dataset that becomes a clone via
27 # 1. Create a clone suitable for nopwrite.
28 # 2. Disable compression and checksum on the clone, and promote it.
29 # 3. Overwrite the file in the clone (former origin fs) and verify it
30 # consumes no additional space.
33 verify_runnable
"global"
34 origin
="$TESTPOOL/$TESTFS"
39 datasetexists
$origin && log_must zfs destroy
-R $TESTPOOL/clone
40 log_must zfs create
-o mountpoint
=$TESTDIR $origin
43 log_assert
"nopwrite works on a dataset that becomes a clone via promotion."
45 log_must zfs
set compress=on
$origin
46 log_must zfs
set checksum
=sha256
$origin
47 dd if=/dev
/urandom of
=$TESTDIR/file bs
=1024k count
=$MEGS conv
=notrunc \
48 >/dev
/null
2>&1 || log_fail
"dd into $TESTDIR/file failed."
49 zfs snapshot
$origin@a || log_fail
"zfs snap failed"
50 log_must zfs clone
$origin@a
$TESTPOOL/clone
51 log_must zfs
set compress=off
$TESTPOOL/clone
52 log_must zfs
set checksum
=off
$TESTPOOL/clone
53 log_must zfs promote
$TESTPOOL/clone
54 dd if=/$TESTPOOL/clone
/file of
=/$TESTDIR/file bs
=1024k count
=$MEGS \
55 conv
=notrunc
>/dev
/null
2>&1 || log_fail
"dd failed."
56 log_must verify_nopwrite
$TESTPOOL/clone
$TESTPOOL/clone@a
$origin
58 log_pass
"nopwrite works on a dataset that becomes a clone via promotion."