diff options
Diffstat (limited to 'tests')
11 files changed, 406 insertions, 0 deletions
diff --git a/tests/runfiles/linux.run b/tests/runfiles/linux.run index 0a64e8cd5..cde8105f9 100644 --- a/tests/runfiles/linux.run +++ b/tests/runfiles/linux.run @@ -255,6 +255,12 @@ tests = ['zfs_snapshot_001_neg', 'zfs_snapshot_002_neg', 'zfs_snapshot_009_pos'] tags = ['functional', 'cli_root', 'zfs_snapshot'] +[tests/functional/cli_root/zfs_sysfs] +tests = ['zfeature_set_unsupported.ksh', 'zfs_get_unsupported', + 'zfs_set_unsupported', 'zfs_sysfs_live.ksh', 'zpool_get_unsupported', + 'zpool_set_unsupported'] +tags = ['functional', 'cli_root', 'zfs_sysfs'] + [tests/functional/cli_root/zfs_unload-key] tests = ['zfs_unload-key', 'zfs_unload-key_all', 'zfs_unload-key_recursive'] tags = ['functional', 'cli_root', 'zfs_unload-key'] diff --git a/tests/zfs-tests/tests/functional/cli_root/Makefile.am b/tests/zfs-tests/tests/functional/cli_root/Makefile.am index aab49b168..7a765a160 100644 --- a/tests/zfs-tests/tests/functional/cli_root/Makefile.am +++ b/tests/zfs-tests/tests/functional/cli_root/Makefile.am @@ -28,6 +28,7 @@ SUBDIRS = \ zfs_set \ zfs_share \ zfs_snapshot \ + zfs_sysfs \ zfs_unload-key \ zfs_unmount \ zfs_unshare \ diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/Makefile.am b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/Makefile.am new file mode 100644 index 000000000..6a83edf2a --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/Makefile.am @@ -0,0 +1,10 @@ +pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/cli_root/zfs_sysfs +dist_pkgdata_SCRIPTS = \ + setup.ksh \ + cleanup.ksh \ + zfeature_set_unsupported.ksh \ + zfs_get_unsupported.ksh \ + zfs_set_unsupported.ksh \ + zfs_sysfs_live.ksh \ + zpool_get_unsupported.ksh \ + zpool_set_unsupported.ksh diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/cleanup.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/cleanup.ksh new file mode 100755 index 000000000..79cd6e9f9 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/cleanup.ksh @@ -0,0 +1,30 @@ +#!/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 2007 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +. $STF_SUITE/include/libtest.shlib + +default_cleanup diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/setup.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/setup.ksh new file mode 100755 index 000000000..969238599 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/setup.ksh @@ -0,0 +1,32 @@ +#!/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 2007 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +. $STF_SUITE/include/libtest.shlib + +DISK=${DISKS%% *} + +default_container_volume_setup $DISK diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfeature_set_unsupported.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfeature_set_unsupported.ksh new file mode 100755 index 000000000..c9d242243 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfeature_set_unsupported.ksh @@ -0,0 +1,54 @@ +#!/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 (c) 2018 by Delphix. All rights reserved. +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# A feature not supported by the zfs module should fail in 'zpool set <feature>' +# +# STRATEGY: +# 1. Run zpool set <featureprop> with env var 'ZFS_SYSFS_PROP_SUPPORT_TEST' +# 2. Verify that zpool set returns error +# + +verify_runnable "global" + +if ! is_linux ; then + log_unsupported "sysfs is linux-only" +fi + +claim="Features not supported by zfs module should fail in 'zpool set <feature>'" + +unsupported_feature="feature@large_blocks" +value="enabled" + +log_assert $claim + +log_mustnot eval "ZFS_SYSFS_PROP_SUPPORT_TEST=yes zpool set \ + ${unsupported_feature}=${value} $TESTPOOL/$TESTFS >/dev/null 2>&1" + +log_pass $claim diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_get_unsupported.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_get_unsupported.ksh new file mode 100755 index 000000000..59ed7e950 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_get_unsupported.ksh @@ -0,0 +1,53 @@ +#!/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 (c) 2018 by Delphix. All rights reserved. +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# A property not supported by the zfs module should fail in 'zfs get <prop>' +# +# STRATEGY: +# 1. Run zfs get <prop> with the env variable 'ZFS_SYSFS_PROP_SUPPORT_TEST' +# 2. Verify that zfs get returns error +# + +verify_runnable "global" + +if ! is_linux ; then + log_unsupported "sysfs is linux-only" +fi + +claim="Properties not supported by zfs module should fail in 'zfs get <prop>'" + +unsupported_prop="dnodesize" + +log_assert $claim + +log_mustnot eval "ZFS_SYSFS_PROP_SUPPORT_TEST=yes zfs get ${unsupported_prop} \ + $TESTPOOL/$TESTFS >/dev/null 2>&1" + +log_pass $claim diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_set_unsupported.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_set_unsupported.ksh new file mode 100755 index 000000000..5a0b88a0b --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_set_unsupported.ksh @@ -0,0 +1,54 @@ +#!/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 (c) 2018 by Delphix. All rights reserved. +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# A property not supported by the zfs module should fail in 'zfs set <prop>' +# +# STRATEGY: +# 1. Run zfs set <prop> with the env variable 'ZFS_SYSFS_PROP_SUPPORT_TEST' +# 2. Verify that zfs get returns error +# + +verify_runnable "global" + +if ! is_linux ; then + log_unsupported "sysfs is linux-only" +fi + +claim="Properties not supported by zfs module should fail in 'zfs set <prop>'" + +unsupported_prop="dnodesize" +value="any" + +log_assert $claim + +log_mustnot eval "ZFS_SYSFS_PROP_SUPPORT_TEST=yes zfs set \ + ${unsupported_prop}=${value} $TESTPOOL/$TESTFS >/dev/null 2>&1" + +log_pass $claim diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_sysfs_live.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_sysfs_live.ksh new file mode 100755 index 000000000..17ac8f8a1 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zfs_sysfs_live.ksh @@ -0,0 +1,57 @@ +#!/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 (c) 2018 by Delphix. All rights reserved. +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# Test if the expected '/sys/module/zfs/<dir>/<attr>' are present +# + +verify_runnable "global" + +if ! is_linux ; then + log_unsupported "sysfs is linux-only" +fi + +claim="Expected '/sys/module/zfs/<dir>/<attr>' attributes are present" + +feature_attr="/sys/module/zfs/features.pool/org.open-zfs:large_blocks/guid" +pool_prop__attr="/sys/module/zfs/properties.pool/comment/values" +ds_prop__attr="/sys/module/zfs/properties.dataset/recordsize/values" + +log_assert $claim + +log_must cat $feature_attr +log_must cat $pool_prop__attr +log_must cat $ds_prop__attr + +# force a read of all the attributes for show func code coverage +log_must grep -R "[a-z]" /sys/module/zfs/features.* +log_must grep -R "[a-z]" /sys/module/zfs/properties.* +log_mustnot grep -RE "[^[:print:]]" /sys/module/zfs/properties.* + +log_pass $claim diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zpool_get_unsupported.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zpool_get_unsupported.ksh new file mode 100755 index 000000000..3ab1d941e --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zpool_get_unsupported.ksh @@ -0,0 +1,55 @@ +#!/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 (c) 2018 by Delphix. All rights reserved. +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# A property not supported by the zfs module should fail in 'zpool get <prop>' +# +# STRATEGY: +# 1. Run zpool get <prop> with the env variable 'ZFS_SYSFS_PROP_SUPPORT_TEST' +# 2. Verify that zfs get returns error +# + +verify_runnable "global" + +if ! is_linux ; then + log_unsupported "sysfs is linux-only" +fi + +export ZFS_SYSFS_PROP_SUPPORT_TEST + +claim="Properties not supported by zfs module should fail in 'zpool get <prop>'" + +unsupported_prop="comment" + +log_assert $claim + +log_mustnot eval "ZFS_SYSFS_PROP_SUPPORT_TEST=yes zpool get \ + ${unsupported_prop} $TESTPOOL/$TESTFS >/dev/null 2>&1" + +log_pass $claim diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zpool_set_unsupported.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zpool_set_unsupported.ksh new file mode 100755 index 000000000..03eb2aea3 --- /dev/null +++ b/tests/zfs-tests/tests/functional/cli_root/zfs_sysfs/zpool_set_unsupported.ksh @@ -0,0 +1,54 @@ +#!/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 (c) 2018 by Delphix. All rights reserved. +# + +. $STF_SUITE/include/libtest.shlib + +# +# DESCRIPTION: +# A property not supported by the zfs module should fail in 'zpool set <prop>' +# +# STRATEGY: +# 1. Run zpool set <prop> with the env variable 'ZFS_SYSFS_PROP_SUPPORT_TEST' +# 2. Verify that zpool set returns error +# + +verify_runnable "global" + +if ! is_linux ; then + log_unsupported "sysfs is linux-only" +fi + +claim="Properties not supported by zfs module should fail in 'zpool set <prop>'" + +unsupported_prop="comment" +value="You Shall Not Pass" + +log_assert $claim + +log_mustnot eval "ZFS_SYSFS_PROP_SUPPORT_TEST=yes zpool set \ + ${unsupported_prop}=${value} $TESTPOOL/$TESTFS >/dev/null 2>&1" + +log_pass $claim |