mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-05-24 23:45:00 +03:00

- Add additional logging to provide more information about why the test failed. This including logging more of the individual commands and the contents and differences of the record files on failure. - Updated get_vdevs() to properly exclude all top-level vdevs including raidz3 and draid[1-3]. - Replaced gnudd with dd. This is the only remaining place in the test suite gnudd is used and it shouldn't be needed. - The refill_test_env function expects the pool as the first argument but never sets the pool variable. - Only fill the test pools to 50% of capacity instead of 75% to help speed up the tests. - Fix replace_missing_devs() calculation, MINDEVSIZE should be MINVDEVSIZE. - Fix damage_devs() so it overwrites almost all of the device so we're guaranteed to damage filesystem blocks. - redundancy_stripe.ksh should not use log_mustnot to check if the pool is healthy since the return value may be misinterpreted. Just perform a normal conditional check and log the failure. Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #11906
65 lines
1.8 KiB
Bash
Executable File
65 lines
1.8 KiB
Bash
Executable File
#!/bin/ksh -p
|
|
#
|
|
# CDDL HEADER START
|
|
#
|
|
# The contents of this file are subject to the terms of the
|
|
# Common Development and Distribution License (the "License").
|
|
# You may not use this file except in compliance with the License.
|
|
#
|
|
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
|
# or http://www.opensolaris.org/os/licensing.
|
|
# See the License for the specific language governing permissions
|
|
# and limitations under the License.
|
|
#
|
|
# When distributing Covered Code, include this CDDL HEADER in each
|
|
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
|
# If applicable, add the following below this CDDL HEADER, with the
|
|
# fields enclosed by brackets "[]" replaced with your own identifying
|
|
# information: Portions Copyright [yyyy] [name of copyright owner]
|
|
#
|
|
# CDDL HEADER END
|
|
#
|
|
|
|
#
|
|
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
|
|
# Use is subject to license terms.
|
|
#
|
|
|
|
#
|
|
# Copyright (c) 2013, 2016 by Delphix. All rights reserved.
|
|
#
|
|
|
|
. $STF_SUITE/include/libtest.shlib
|
|
. $STF_SUITE/tests/functional/redundancy/redundancy.kshlib
|
|
|
|
#
|
|
# DESCRIPTION:
|
|
# Striped pool have no data redundancy. Any device errors will
|
|
# cause data corruption.
|
|
#
|
|
# STRATEGY:
|
|
# 1. Create N virtual disk file.
|
|
# 2. Create stripe pool based on the virtual disk files.
|
|
# 3. Fill the filesystem with directories and files.
|
|
# 4. Record all the files and directories checksum information.
|
|
# 5. Damage one of the virtual disk file.
|
|
# 6. Verify the data is error.
|
|
#
|
|
|
|
verify_runnable "global"
|
|
|
|
log_assert "Verify striped pool have no data redundancy."
|
|
log_onexit cleanup
|
|
|
|
typeset -i cnt=$(random_int_between 2 5)
|
|
setup_test_env $TESTPOOL "" $cnt
|
|
|
|
damage_devs $TESTPOOL 1 "keep_label"
|
|
log_must zpool scrub -w $TESTPOOL
|
|
|
|
if is_healthy $TESTPOOL ; then
|
|
log_fail "$pool should not be healthy."
|
|
fi
|
|
|
|
log_pass "Striped pool has no data redundancy as expected."
|