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 works for sync writes
26 # 1. Create an origin fs with compression and sha256.
27 # 2. Clone origin such that it inherits the properies.
28 # 3. Use dd with the sync flag to test the sync write path.
31 verify_runnable
"global"
32 origin
="$TESTPOOL/$TESTFS"
37 datasetexists
$origin && log_must zfs destroy
-R $origin
38 log_must zfs create
-o mountpoint
=$TESTDIR $origin
41 log_assert
"nopwrite works for sync writes"
43 log_must zfs
set compress=on
$origin
44 log_must zfs
set checksum
=sha256
$origin
45 gnu_dd
if=/dev
/urandom of
=$TESTDIR/file bs
=1024k count
=$MEGS oflag
=sync \
46 conv
=notrunc
>/dev
/null
2>&1 || log_fail
"dd into $TESTDIR/file failed."
47 zfs snapshot
$origin@a || log_fail
"zfs snap failed"
48 log_must zfs clone
$origin@a
$origin/clone
50 gnu_dd
if=/$TESTDIR/file of
=/$TESTDIR/clone
/file bs
=1024k count
=$MEGS \
51 oflag
=sync conv
=notrunc
>/dev
/null
2>&1 || log_fail
"dd failed."
53 log_must verify_nopwrite
$origin $origin@a
$origin/clone
55 log_pass
"nopwrite works for sync writes"