003 File Manager
Current Path:
/usr/src/sys/contrib/openzfs/tests/zfs-tests/tests/functional/slog
usr
/
src
/
sys
/
contrib
/
openzfs
/
tests
/
zfs-tests
/
tests
/
functional
/
slog
/
📁
..
📄
Makefile.am
(543 B)
📄
cleanup.ksh
(1.42 KB)
📄
setup.ksh
(1.17 KB)
📄
slog.cfg
(1.2 KB)
📄
slog.kshlib
(3.42 KB)
📄
slog_001_pos.ksh
(1.76 KB)
📄
slog_002_pos.ksh
(1.81 KB)
📄
slog_003_pos.ksh
(1.87 KB)
📄
slog_004_pos.ksh
(1.93 KB)
📄
slog_005_pos.ksh
(1.76 KB)
📄
slog_006_pos.ksh
(1.89 KB)
📄
slog_007_pos.ksh
(2.48 KB)
📄
slog_008_neg.ksh
(1.68 KB)
📄
slog_009_neg.ksh
(1.82 KB)
📄
slog_010_neg.ksh
(2.04 KB)
📄
slog_011_neg.ksh
(1.93 KB)
📄
slog_012_neg.ksh
(1.97 KB)
📄
slog_013_pos.ksh
(2.41 KB)
📄
slog_014_pos.ksh
(2.55 KB)
📄
slog_015_neg.ksh
(1.88 KB)
📄
slog_replay_fs_001.ksh
(7 KB)
📄
slog_replay_fs_002.ksh
(3.93 KB)
📄
slog_replay_volume.ksh
(5.22 KB)
Editing: slog.kshlib
# # 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 2008 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/slog/slog.cfg function setup { log_must rm -rf $VDIR $VDIR2 log_must mkdir -p $VDIR $VDIR2 log_must truncate -s $MINVDEVSIZE $VDEV $SDEV $LDEV $VDEV2 $SDEV2 $LDEV2 return 0 } function cleanup { poolexists $TESTPOOL && destroy_pool $TESTPOOL poolexists $TESTPOOL2 && destroy_pool $TESTPOOL2 rm -rf $TESTDIR $VDIR $VDIR2 } # # Try zpool status/iostat for given pool # # $1 pool # function display_status { typeset pool=$1 typeset -i ret=0 zpool status -xv $pool > /dev/null 2>&1 ret=$? zpool iostat > /dev/null 2>&1 ((ret |= $?)) typeset mntpnt=$(get_prop mountpoint $pool) dd if=/dev/urandom of=$mntpnt/testfile.$$ & typeset pid=$! zpool iostat -v 1 3 > /dev/null ((ret |= $?)) kill -9 $pid wait return $ret } # # Verify the give slog device have correct type and status # # $1 pool name # $2 device name # $3 device status # $4 device type # function verify_slog_device { typeset pool=$1 typeset device=$2 typeset status=$3 typeset type=$4 if [[ -z $pool || -z $device || -z $status ]]; then log_fail "Usage: verify_slog_device <pool> <device> " \ "<status> [type]" fi # # Get all the slog devices and status table like below # # mirror:/disks/d ONLINE mirror:/disks/e ONLINE stripe:/disks/f ONLINE # set -A dev_stat_tab $(zpool status -v $pool | nawk 'BEGIN {start=0} \ /\tlogs/ {start=1} /\tmirror/ || /\tspares/ || /^$/ {start=0} (start==1) && /\t (\/|[a-zA-Z])/ \ {print "stripe:" $1 " " $2} (start==1) && /\t (\/|[a-zA-Z])/ \ {print "mirror:" $1 " " $2} # When hotspare is replacing (start==1) && /\t (\/|[a-zA-Z])/ \ {print "mirror:" $1 " " $2}' ) typeset -i i=0 typeset find=0 while (( i < ${#dev_stat_tab[@]} )); do typeset dev=${dev_stat_tab[$i]} typeset stat=${dev_stat_tab[((i+1))]} case $dev in stripe:$device) if [[ "$type" == 'mirror' ]]; then log_note "Unexpected type: mirror" return 1 else if [[ $stat != $status ]]; then log_note "Status($stat) " \ "!= Expected stat($status)" return 1 fi return 0 fi ;; mirror:$device) if [[ -z "$type" || $type == 'stripe' ]]; then log_note "Unexpected type: stripe" return 1 else if [[ $stat != $status ]]; then log_note "Status($stat) " \ "!= Expected stat($status)" return 1 fi return 0 fi ;; esac ((i += 2)) done log_note "Can not find device: $device" return 1 }
Upload File
Create Folder