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# Ensure that we can checkpoint a pool that we just rewound. 23# 24# STRATEGY: 25# 1. Create pool 26# 2. Populate it 27# 3. Take checkpoint 28# 4. Modify data (include at least one destructive change) 29# 5. Rewind to checkpoint 30# 6. Verify that the data before the checkpoint are present 31# and the data after the checkpoint is gone 32# 7. Take another checkpoint 33# 8. Change state again 34# 9. Verify the state at that time 35# 36 37verify_runnable "global" 38 39setup_test_pool 40log_onexit cleanup_test_pool 41 42populate_test_pool 43log_must zpool checkpoint $TESTPOOL 44test_change_state_after_checkpoint 45 46log_must zpool export $TESTPOOL 47log_must zpool import --rewind-to-checkpoint $TESTPOOL 48test_verify_pre_checkpoint_state 49 50log_must zpool checkpoint $TESTPOOL 51test_change_state_after_checkpoint 52 53test_verify_post_checkpoint_state 54 55log_pass "Checkpoint a pool that we just rewound." 56