]>
git.proxmox.com Git - mirror_zfs.git/blob - tests/zfs-tests/tests/functional/cli_root/zpool/zpool_002_pos.ksh
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
24 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
29 # Copyright (c) 2012, 2016 by Delphix. All rights reserved.
32 .
$STF_SUITE/include
/libtest.shlib
36 # With ZFS_ABORT set, all zpool commands should be able to abort and generate a core file.
39 # 1. Create an array of zpool command
40 # 2. Execute each command in the array
41 # 3. Verify the command aborts and generate a core file
44 verify_runnable
"global"
50 if [[ -d $corepath ]]; then
54 if poolexists
$pool; then
55 log_must zpool destroy
-f $pool
59 log_assert
"With ZFS_ABORT set, all zpool commands can abort and generate a core file."
62 #preparation work for testing
63 corepath
=$TESTDIR/core
64 if [[ -d $corepath ]]; then
73 for vdev
in $vdev1 $vdev2 $vdev3; do
74 mkfile
$MINVDEVSIZE $vdev
77 set -A cmds
"create $pool mirror $vdev1 $vdev2" "list $pool" "iostat $pool" \
78 "status $pool" "upgrade $pool" "get delegation $pool" "set delegation=off $pool" \
79 "export $pool" "import -d $TESTDIR $pool" "offline $pool $vdev1" \
80 "online $pool $vdev1" "clear $pool" "detach $pool $vdev2" \
81 "attach $pool $vdev1 $vdev2" "replace $pool $vdev2 $vdev3" \
82 "scrub $pool" "destroy -f $pool"
84 set -A badparams
"" "create" "destroy" "add" "remove" "list *" "iostat" "status" \
85 "online" "offline" "clear" "attach" "detach" "replace" "scrub" \
86 "import" "export" "upgrade" "history -?" "get" "set"
90 echo "$corepath/core.zpool" >/proc
/sys
/kernel
/core_pattern
91 echo 0 >/proc
/sys
/kernel
/core_uses_pid
92 export ASAN_OPTIONS
="abort_on_error=1:disable_coredump=0"
94 coreadm
-p ${corepath}/core.
%f
99 for subcmd
in "${cmds[@]}" "${badparams[@]}"; do
100 corefile
=${corepath}/core.zpool
101 zpool
$subcmd >/dev
/null
2>&1
102 ls -l $corepath >>/tmp
/CORE
103 if [[ ! -e $corefile ]]; then
104 log_fail
"zpool $subcmd cannot generate core file with ZFS_ABORT set."
109 log_pass
"With ZFS_ABORT set, zpool command can abort and generate core file as expected."