]> git.proxmox.com Git - mirror_zfs.git/blob - tests/zfs-tests/tests/functional/pool_checkpoint/checkpoint_discard_many.ksh
OpenZFS 9166 - zfs storage pool checkpoint
[mirror_zfs.git] / tests / zfs-tests / tests / functional / pool_checkpoint / checkpoint_discard_many.ksh
1 #!/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
33 verify_runnable "global"
34
35 setup_test_pool
36 log_onexit cleanup_test_pool
37
38 populate_test_pool
39 log_must zpool checkpoint $TESTPOOL
40 test_change_state_after_checkpoint
41 log_must zpool checkpoint -d $TESTPOOL
42 test_wait_discard_finish
43
44 log_must mkfile -n 100M $FS2FILE
45 log_must randwritecomp $FS2FILE 100
46 log_must zpool checkpoint $TESTPOOL
47
48 log_must randwritecomp $FS2FILE 100
49 log_must zpool checkpoint -d $TESTPOOL
50 test_wait_discard_finish
51
52 log_pass "Background discarding works as expected."