summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Dagnelie <[email protected]>2019-08-25 18:33:03 -0700
committerBrian Behlendorf <[email protected]>2019-08-25 18:33:03 -0700
commit95f0144675dd0e18617355443be0fbc7171af76b (patch)
treec3bc50ceff8222859603827c1da3fcebe1935bed
parenta18f8bce5c6acb9c3990b2917efa96d1828e541c (diff)
Add regression test for "zpool list -p"
Other than this test, zpool list -p is not well tested by any of the automated tests. Add a test for zpool list -p. Reviewed-by: Prakash Surya <[email protected]> Reviewed-by: Serapheim Dimitropoulos <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Paul Dagnelie <[email protected]> Closes #9134
-rw-r--r--tests/runfiles/linux.run2
-rw-r--r--tests/zfs-tests/tests/functional/cli_root/zpool_get/Makefile.am5
-rwxr-xr-xtests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_005_pos.ksh78
-rw-r--r--tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_parsable.cfg33
4 files changed, 115 insertions, 3 deletions
diff --git a/tests/runfiles/linux.run b/tests/runfiles/linux.run
index 848c19e3e..80b48ee1d 100644
--- a/tests/runfiles/linux.run
+++ b/tests/runfiles/linux.run
@@ -361,7 +361,7 @@ tags = ['functional', 'cli_root', 'zpool_export']
[tests/functional/cli_root/zpool_get]
tests = ['zpool_get_001_pos', 'zpool_get_002_pos', 'zpool_get_003_pos',
- 'zpool_get_004_neg']
+ 'zpool_get_004_neg', 'zpool_get_005_pos']
tags = ['functional', 'cli_root', 'zpool_get']
[tests/functional/cli_root/zpool_history]
diff --git a/tests/zfs-tests/tests/functional/cli_root/zpool_get/Makefile.am b/tests/zfs-tests/tests/functional/cli_root/zpool_get/Makefile.am
index 36a7f2312..0c87c9b37 100644
--- a/tests/zfs-tests/tests/functional/cli_root/zpool_get/Makefile.am
+++ b/tests/zfs-tests/tests/functional/cli_root/zpool_get/Makefile.am
@@ -5,7 +5,8 @@ dist_pkgdata_SCRIPTS = \
zpool_get_001_pos.ksh \
zpool_get_002_pos.ksh \
zpool_get_003_pos.ksh \
- zpool_get_004_neg.ksh
+ zpool_get_004_neg.ksh \
+ zpool_get_005_pos.ksh
dist_pkgdata_DATA = \
- zpool_get.cfg
+ zpool_get.cfg zpool_get_parsable.cfg
diff --git a/tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_005_pos.ksh b/tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_005_pos.ksh
new file mode 100755
index 000000000..ad27d180f
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_005_pos.ksh
@@ -0,0 +1,78 @@
+#!/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 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+#
+# Copyright (c) 2014 by Delphix. All rights reserved.
+#
+
+. $STF_SUITE/include/libtest.shlib
+. $STF_SUITE/tests/functional/cli_root/zpool_get/zpool_get_parsable.cfg
+
+#
+# DESCRIPTION:
+#
+# Zpool get returns parsable values for all known parsable properties
+#
+# STRATEGY:
+# 1. For all parsable properties, verify zpool get -p returns a parsable value
+#
+
+if ! is_global_zone ; then
+ TESTPOOL=${TESTPOOL%%/*}
+fi
+
+typeset -i i=0
+
+while [[ $i -lt "${#properties[@]}" ]]; do
+ log_note "Checking for parsable ${properties[$i]} property"
+ log_must eval "zpool get -p ${properties[$i]} $TESTPOOL >/tmp/value.$$"
+ grep "${properties[$i]}" /tmp/value.$$ >/dev/null 2>&1
+ if [[ $? -ne 0 ]]; then
+ log_fail "${properties[$i]} not seen in output"
+ fi
+
+ typeset v=$(grep "${properties[$i]}" /tmp/value.$$ | awk '{print $3}')
+
+ log_note "${properties[$i]} has a value of $v"
+
+ # Determine if this value is a valid number, result in return code
+ log_must test -n "$v"
+ expr $v + 0 >/dev/null 2>&1
+
+ # All properties must be positive integers in order to be
+ # parsable (i.e. a return code of 0 or 1 from expr above).
+ # The only exception is "expandsize", which may be "-".
+ if [[ ! ($? -eq 0 || $? -eq 1 || \
+ ("${properties[$i]}" = "expandsize" && "$v" = "-")) ]]; then
+ log_fail "${properties[$i]} is not parsable"
+ fi
+
+ i=$(( $i + 1 ))
+done
+
+rm /tmp/value.$$
+log_pass "Zpool get returns parsable values for all known parsable properties"
diff --git a/tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_parsable.cfg b/tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_parsable.cfg
new file mode 100644
index 000000000..e7b95a472
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get_parsable.cfg
@@ -0,0 +1,33 @@
+#
+# 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 2009 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+#
+# Copyright (c) 2013, 2014 by Delphix. All rights reserved.
+#
+
+# Set the expected properties of zpool
+typeset -a properties=("allocated" "capacity" "expandsize" "free" "freeing"
+ "leaked" "size")