1185029Spjd#!/bin/sh
2185029Spjd# $FreeBSD: releng/10.2/tools/regression/zfs/zpool/add/spare.t 185029 2008-11-17 20:49:29Z pjd $
3185029Spjd
4185029Spjddir=`dirname $0`
5185029Spjd. ${dir}/../../misc.sh
6185029Spjd
7185029Spjdecho "1..31"
8185029Spjd
9185029Spjddisks_create 6
10185029Spjdnames_create 1
11185029Spjd
12185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0}
13185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk1}
14185029Spjdexp=`(
15185029Spjd  echo "  pool: ${name0}"
16185029Spjd  echo " state: ONLINE"
17185029Spjd  echo " scrub: none requested"
18185029Spjd  echo "config:"
19185029Spjd  echo "	NAME        STATE   READ WRITE CKSUM"
20185029Spjd  echo "	${name0}    ONLINE     0     0     0"
21185029Spjd  echo "	  ${disk0}  ONLINE     0     0     0"
22185029Spjd  echo "	spares"
23185029Spjd  echo "	  ${disk1}  AVAIL"
24185029Spjd  echo "errors: No known data errors"
25185029Spjd)`
26185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
27185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
28185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
29185029Spjd
30185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
31185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk2} ${disk3}
32185029Spjdexp=`(
33185029Spjd  echo "  pool: ${name0}"
34185029Spjd  echo " state: ONLINE"
35185029Spjd  echo " scrub: none requested"
36185029Spjd  echo "config:"
37185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
38185029Spjd  echo "	${name0}      ONLINE     0     0     0"
39185029Spjd  echo "	  mirror      ONLINE     0     0     0"
40185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0"
41185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0"
42185029Spjd  echo "	spares"
43185029Spjd  echo "	  ${disk2}    AVAIL"
44185029Spjd  echo "	  ${disk3}    AVAIL"
45185029Spjd  echo "errors: No known data errors"
46185029Spjd)`
47185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
48185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
49185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
50185029Spjd
51185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz ${disk0} ${disk1} ${disk2}
52185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk3} ${disk4}
53185029Spjdexp=`(
54185029Spjd  echo "  pool: ${name0}"
55185029Spjd  echo " state: ONLINE"
56185029Spjd  echo " scrub: none requested"
57185029Spjd  echo "config:"
58185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
59185029Spjd  echo "	${name0}      ONLINE     0     0     0"
60185029Spjd  echo "	  raidz1      ONLINE     0     0     0"
61185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0"
62185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0"
63185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0"
64185029Spjd  echo "	spares"
65185029Spjd  echo "	  ${disk3}    AVAIL"
66185029Spjd  echo "	  ${disk4}    AVAIL"
67185029Spjd  echo "errors: No known data errors"
68185029Spjd)`
69185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
70185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
71185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
72185029Spjd
73185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz2 ${disk0} ${disk1} ${disk2} ${disk3}
74185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk4} ${disk5}
75185029Spjdexp=`(
76185029Spjd  echo "  pool: ${name0}"
77185029Spjd  echo " state: ONLINE"
78185029Spjd  echo " scrub: none requested"
79185029Spjd  echo "config:"
80185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
81185029Spjd  echo "	${name0}      ONLINE     0     0     0"
82185029Spjd  echo "	  raidz2      ONLINE     0     0     0"
83185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0"
84185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0"
85185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0"
86185029Spjd  echo "	    ${disk3}  ONLINE     0     0     0"
87185029Spjd  echo "	spares"
88185029Spjd  echo "	  ${disk4}    AVAIL"
89185029Spjd  echo "	  ${disk5}    AVAIL"
90185029Spjd  echo "errors: No known data errors"
91185029Spjd)`
92185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
93185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
94185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
95185029Spjd
96185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} spare ${disk1}
97185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk2} ${disk3}
98185029Spjdexp=`(
99185029Spjd  echo "  pool: ${name0}"
100185029Spjd  echo " state: ONLINE"
101185029Spjd  echo " scrub: none requested"
102185029Spjd  echo "config:"
103185029Spjd  echo "	NAME        STATE   READ WRITE CKSUM"
104185029Spjd  echo "	${name0}    ONLINE     0     0     0"
105185029Spjd  echo "	  ${disk0}  ONLINE     0     0     0"
106185029Spjd  echo "	spares"
107185029Spjd  echo "	  ${disk1}  AVAIL"
108185029Spjd  echo "	  ${disk2}  AVAIL"
109185029Spjd  echo "	  ${disk3}  AVAIL"
110185029Spjd  echo "errors: No known data errors"
111185029Spjd)`
112185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
113185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
114185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
115185029Spjd
116185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0}
117185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk1} ${disk2}
118185029Spjdexpect_ok ${ZPOOL} add ${name0} spare ${disk3}
119185029Spjdexp=`(
120185029Spjd  echo "  pool: ${name0}"
121185029Spjd  echo " state: ONLINE"
122185029Spjd  echo " scrub: none requested"
123185029Spjd  echo "config:"
124185029Spjd  echo "	NAME        STATE   READ WRITE CKSUM"
125185029Spjd  echo "	${name0}    ONLINE     0     0     0"
126185029Spjd  echo "	  ${disk0}  ONLINE     0     0     0"
127185029Spjd  echo "	spares"
128185029Spjd  echo "	  ${disk1}  AVAIL"
129185029Spjd  echo "	  ${disk2}  AVAIL"
130185029Spjd  echo "	  ${disk3}  AVAIL"
131185029Spjd  echo "errors: No known data errors"
132185029Spjd)`
133185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
134185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
135185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
136185029Spjd
137185029Spjddisks_destroy
138