1#!/usr/bin/ksh -p 2 3# 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 7# 1.0 of the CDDL. 8# 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. 12# 13 14# 15# Copyright (c) 2017 by Delphix. All rights reserved. 16# 17 18. $STF_SUITE/tests/functional/pool_checkpoint/pool_checkpoint.kshlib 19 20# 21# DESCRIPTION: 22# Take a checkpoint and discard checkpointed data twice. The 23# idea is to ensure that the background discard zfs thread is 24# always running and works as expected. 25# 26# STRATEGY: 27# 1. Create pool 28# 2. Populate it and then take a checkpoint 29# 3. Do some changes afterwards, and then discard checkpoint 30# 4. Repeat steps 2 and 3 31# 32 33verify_runnable "global" 34 35setup_test_pool 36log_onexit cleanup_test_pool 37 38populate_test_pool 39log_must zpool checkpoint $TESTPOOL 40test_change_state_after_checkpoint 41log_must zpool checkpoint -d $TESTPOOL 42test_wait_discard_finish 43 44log_must mkfile -n 100M $FS2FILE 45log_must randwritecomp $FS2FILE 100 46log_must zpool checkpoint $TESTPOOL 47 48log_must randwritecomp $FS2FILE 100 49log_must zpool checkpoint -d $TESTPOOL 50test_wait_discard_finish 51 52log_pass "Background discarding works as expected." 53