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 add a device while the pool has a 23# checkpoint but in the case of a rewind that device does 24# not show up. 25# 26# STRATEGY: 27# 1. Create pool 28# 2. Populate it 29# 3. Take checkpoint 30# 4. Add device and modify data 31# (include at least one destructive change) 32# 5. Rewind to checkpoint 33# 6. Verify that we rewinded successfully and check if the 34# device shows up in the vdev list 35# 36 37verify_runnable "global" 38 39setup_test_pool 40log_onexit cleanup_test_pool 41 42populate_test_pool 43 44log_must zpool checkpoint $TESTPOOL 45log_must zpool add $TESTPOOL $EXTRATESTDISK 46 47# 48# Ensure that the vdev shows up 49# 50log_must eval "zpool list -v $TESTPOOL | grep $EXTRATESTDISK" 51test_change_state_after_checkpoint 52 53log_must zpool export $TESTPOOL 54log_must zpool import --rewind-to-checkpoint $TESTPOOL 55 56test_verify_pre_checkpoint_state 57 58# 59# Ensure that the vdev doesn't show up after the rewind 60# 61log_mustnot eval "zpool list -v $TESTPOOL | grep $EXTRATESTDISK" 62 63log_pass "Add device in checkpointed pool." 64