1a629ded1SLOLi#!/bin/ksh -p 2a629ded1SLOLi# 3a629ded1SLOLi# This file and its contents are supplied under the terms of the 4a629ded1SLOLi# Common Development and Distribution License ("CDDL"), version 1.0. 5a629ded1SLOLi# You may only use this file in accordance with the terms of version 6a629ded1SLOLi# 1.0 of the CDDL. 7a629ded1SLOLi# 8a629ded1SLOLi# A full copy of the text of the CDDL should have accompanied this 9a629ded1SLOLi# source. A copy of the CDDL is also available via the Internet at 10a629ded1SLOLi# http://www.illumos.org/license/CDDL. 11a629ded1SLOLi# 12a629ded1SLOLi 13a629ded1SLOLi# 14a629ded1SLOLi# Copyright 2018, Datto Inc. 15a629ded1SLOLi# 16a629ded1SLOLi 17a629ded1SLOLi. $STF_SUITE/include/libtest.shlib 18a629ded1SLOLi 19a629ded1SLOLi# 20a629ded1SLOLi# DESCRIPTION: 21a629ded1SLOLi# 'zfs diff' should work with encrypted datasets 22a629ded1SLOLi# 23a629ded1SLOLi# STRATEGY: 24a629ded1SLOLi# 1. Create an encrypted dataset 25a629ded1SLOLi# 2. Create two snapshots of the dataset 26a629ded1SLOLi# 3. Perform 'zfs diff -Ft' and verify no errors occur 27a629ded1SLOLi# 4. Perform the same test on a dataset with large dnodes 28a629ded1SLOLi# 29a629ded1SLOLi 30a629ded1SLOLiverify_runnable "both" 31a629ded1SLOLi 32a629ded1SLOLifunction cleanup 33a629ded1SLOLi{ 34*99d3b4e2Sloli destroy_dataset "$TESTPOOL/$TESTFS1" "-r" 35*99d3b4e2Sloli destroy_dataset "$TESTPOOL/$TESTFS2" "-r" 36a629ded1SLOLi} 37a629ded1SLOLi 38a629ded1SLOLilog_assert "'zfs diff' should work with encrypted datasets" 39a629ded1SLOLilog_onexit cleanup 40a629ded1SLOLi 41a629ded1SLOLi# 1. Create an encrypted dataset 42a629ded1SLOLilog_must eval "echo 'password' | zfs create -o encryption=on \ 43a629ded1SLOLi -o keyformat=passphrase $TESTPOOL/$TESTFS1" 44a629ded1SLOLiMNTPOINT="$(get_prop mountpoint $TESTPOOL/$TESTFS1)" 45a629ded1SLOLi 46a629ded1SLOLi# 2. Create two snapshots of the dataset 47a629ded1SLOLilog_must zfs snapshot $TESTPOOL/$TESTFS1@snap1 48a629ded1SLOLilog_must touch "$MNTPOINT/file" 49a629ded1SLOLilog_must zfs snapshot $TESTPOOL/$TESTFS1@snap2 50a629ded1SLOLi 51a629ded1SLOLi# 3. Perform 'zfs diff' and verify no errors occur 52a629ded1SLOLilog_must zfs diff -Ft $TESTPOOL/$TESTFS1@snap1 $TESTPOOL/$TESTFS1@snap2 53a629ded1SLOLi 54*99d3b4e2Sloli# 4. Perform the same test on a dataset with large dnodes 55*99d3b4e2Slolilog_must eval "echo 'password' | zfs create -o dnodesize=4k \ 56*99d3b4e2Sloli -o encryption=on -o keyformat=passphrase $TESTPOOL/$TESTFS2" 57*99d3b4e2SloliMNTPOINT="$(get_prop mountpoint $TESTPOOL/$TESTFS2)" 58*99d3b4e2Slolilog_must zfs snapshot $TESTPOOL/$TESTFS2@snap1 59*99d3b4e2Slolilog_must touch "$MNTPOINT/file" 60*99d3b4e2Slolilog_must zfs snapshot $TESTPOOL/$TESTFS2@snap2 61*99d3b4e2Slolilog_must zfs diff -Ft $TESTPOOL/$TESTFS2@snap1 $TESTPOOL/$TESTFS2@snap2 62*99d3b4e2Sloli 63a629ded1SLOLilog_pass "'zfs diff' works with encrypted datasets" 64