aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_user/zfs_list/zfs_list.kshlib
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_user/zfs_list/zfs_list.kshlib')
-rw-r--r--sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_user/zfs_list/zfs_list.kshlib118
1 files changed, 118 insertions, 0 deletions
diff --git a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_user/zfs_list/zfs_list.kshlib b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_user/zfs_list/zfs_list.kshlib
new file mode 100644
index 000000000000..03c9d1f07a87
--- /dev/null
+++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_user/zfs_list/zfs_list.kshlib
@@ -0,0 +1,118 @@
+#
+# 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
+
+#
+# A function that verifies sort order. It takes as input
+# a command, which gets executed. We then iterate over the results
+# comparing that the sort order passed in via the list
+#
+function verify_sort { # command list name
+
+ # now verify we've sorted by creation date:
+ typeset CMD=$1
+ typeset list=$2
+ typeset name=$3
+
+ typeset -i RET=0
+ typeset -i index=1
+
+ # run the command to verify that it works
+ log_must eval "$CMD > /dev/null"
+
+ # Now check the sort order
+ for dataset in $( $CMD )
+ do
+ ACTUAL=$(basename $dataset)
+ if [ "$dataset" != "$TESTPOOL/$TESTFS" ]
+ then
+ EXPECTED=$(echo $list | awk "{print \$$index}")
+ if [ "$ACTUAL" != "$EXPECTED" ]
+ then
+ log_note "WARNING:" \
+ "'$ACTUAL' does not equal '$EXPECTED'"
+ log_fail "ERROR: Sort by $name fails."
+ fi
+
+ ((index = index + 1))
+ fi
+ done
+
+ # finally check to see if we have the expected number of elements
+ if [ $index -ne $(echo $list | awk '{print split($0,arr)+1}') ]
+ then
+ log_fail "Warning: " \
+ "unexpected number of filesystems found in list output!"
+ fi
+}
+
+# A function that verifies reverse sort order. It takes as input
+# a command, which gets executed. We then iterate over the results
+# comparing that the sort order passed in via the list
+#
+function verify_reverse_sort { # command list name
+
+ typeset CMD=$1
+ typeset list=$2
+ typeset name=$3
+
+ # set our index to the be number of elements in the list
+ typeset -i index=$(echo $list | awk '{print split($0,arr)}')
+
+ log_note "Checking reverse sort by '$name'," \
+ "expecting the reverse of '$list'"
+ log_must eval "$CMD > /dev/null"
+
+ for dataset in $( $CMD )
+ do
+ ACTUAL=$(basename $dataset)
+ if [ "$dataset" != "$TESTPOOL/$TESTFS" ]
+ then
+ EXPECTED=$(echo $list | awk "{print \$$index}")
+ if [ "$ACTUAL" != "$EXPECTED" ]
+ then
+ log_note "Warning:" \
+ "'$ACTUAL' does not equal to" \
+ "the reverse of '$EXPECTED'"
+ log_fail "ERROR: Reverse sort by '$name' fails."
+ fi
+
+ ((index = index - 1))
+ fi
+ done
+
+ # finally check to see if we have the expected number of elements
+ if [ $index -ne 0 ]
+ then
+ log_fail "Warning: " \
+ "unexpected number of filesystems found in list output!"
+ fi
+}