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 open the checkpointed state of a pool 23# as read-only. 24# 25# STRATEGY: 26# 1. Create pool 27# 2. Populate it 28# 3. Take checkpoint 29# 4. Modify data (include at least one destructive change) 30# 5. Export and import the checkpointed state as readonly 31# 6. Verify that we can see the checkpointed state and not 32# the actual current state. 33# 7. Export and import the current state 34# 8. Verify that we can see the current state and not the 35# checkpointed state. 36# 37 38verify_runnable "global" 39 40setup_test_pool 41log_onexit cleanup_test_pool 42 43populate_test_pool 44log_must zpool checkpoint $TESTPOOL 45test_change_state_after_checkpoint 46 47log_must zpool export $TESTPOOL 48log_must zpool import -o readonly=on --rewind-to-checkpoint $TESTPOOL 49 50test_verify_pre_checkpoint_state "ro-check" 51 52log_must zpool export $TESTPOOL 53log_must zpool import $TESTPOOL 54 55test_verify_post_checkpoint_state 56 57log_pass "Open checkpointed state of the pool as read-only pool." 58