1*eda14cbcSMatt Macy#!/bin/ksh -p
2*eda14cbcSMatt Macy#
3*eda14cbcSMatt Macy# This file and its contents are supplied under the terms of the
4*eda14cbcSMatt Macy# Common Development and Distribution License ("CDDL"), version 1.0.
5*eda14cbcSMatt Macy# You may only use this file in accordance with the terms of version
6*eda14cbcSMatt Macy# 1.0 of the CDDL.
7*eda14cbcSMatt Macy#
8*eda14cbcSMatt Macy# A full copy of the text of the CDDL should have accompanied this
9*eda14cbcSMatt Macy# source.  A copy of the CDDL is also available via the Internet at
10*eda14cbcSMatt Macy# http://www.illumos.org/license/CDDL.
11*eda14cbcSMatt Macy#
12*eda14cbcSMatt Macy
13*eda14cbcSMatt Macy#
14*eda14cbcSMatt Macy# Copyright (c) 2016 by Delphix. All rights reserved.
15*eda14cbcSMatt Macy#
16*eda14cbcSMatt Macy
17*eda14cbcSMatt Macy. $STF_SUITE/tests/functional/channel_program/channel_common.kshlib
18*eda14cbcSMatt Macy. $STF_SUITE/tests/functional/zvol/zvol_common.shlib
19*eda14cbcSMatt Macy
20*eda14cbcSMatt Macy#
21*eda14cbcSMatt Macy# DESCRIPTION:
22*eda14cbcSMatt Macy#	Getting filesystem and snapshot count/limit props should work correctly.
23*eda14cbcSMatt Macy#
24*eda14cbcSMatt Macy
25*eda14cbcSMatt Macyverify_runnable "global"
26*eda14cbcSMatt Macy
27*eda14cbcSMatt Macyfs=$TESTPOOL/testchild
28*eda14cbcSMatt Macysnap=$fs@$TESTSNAP
29*eda14cbcSMatt Macy
30*eda14cbcSMatt Macyfunction cleanup
31*eda14cbcSMatt Macy{
32*eda14cbcSMatt Macy	destroy_dataset $fs "-R"
33*eda14cbcSMatt Macy	log_must rm -rf $fs/foo
34*eda14cbcSMatt Macy	log_must rm -rf $fs/bar
35*eda14cbcSMatt Macy}
36*eda14cbcSMatt Macy
37*eda14cbcSMatt Macylog_onexit cleanup
38*eda14cbcSMatt Macy
39*eda14cbcSMatt Macylog_must zfs create $fs
40*eda14cbcSMatt Macylog_must zfs create $fs/foo
41*eda14cbcSMatt Macycreate_snapshot $fs $TESTSNAP
42*eda14cbcSMatt Macy
43*eda14cbcSMatt Macylog_must_program $TESTPOOL - <<-EOF
44*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "snapshot_limit")
45*eda14cbcSMatt Macy	assert(ans == -1)
46*eda14cbcSMatt Macy	assert(src == 'default')
47*eda14cbcSMatt Macy
48*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "snapshot_count")
49*eda14cbcSMatt Macy	assert(ans == nil)
50*eda14cbcSMatt Macy	assert(src == nil)
51*eda14cbcSMatt MacyEOF
52*eda14cbcSMatt Macy
53*eda14cbcSMatt Macylog_must_program $TESTPOOL - <<-EOF
54*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "filesystem_limit")
55*eda14cbcSMatt Macy	assert(ans == -1)
56*eda14cbcSMatt Macy	assert(src == 'default')
57*eda14cbcSMatt Macy
58*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "filesystem_count")
59*eda14cbcSMatt Macy	assert(ans == nil)
60*eda14cbcSMatt Macy	assert(src == nil)
61*eda14cbcSMatt MacyEOF
62*eda14cbcSMatt Macy
63*eda14cbcSMatt Macylog_must zfs set snapshot_limit=10 $fs
64*eda14cbcSMatt Macy
65*eda14cbcSMatt Macylog_must_program $TESTPOOL - <<-EOF
66*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "snapshot_limit")
67*eda14cbcSMatt Macy	assert(ans == 10)
68*eda14cbcSMatt Macy	assert(src == '$fs')
69*eda14cbcSMatt Macy
70*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "snapshot_count")
71*eda14cbcSMatt Macy	assert(ans == 1)
72*eda14cbcSMatt Macy	assert(src == nil)
73*eda14cbcSMatt MacyEOF
74*eda14cbcSMatt Macy
75*eda14cbcSMatt Macylog_must zfs set filesystem_limit=8 $fs
76*eda14cbcSMatt Macy
77*eda14cbcSMatt Macylog_must zfs create $fs/bar
78*eda14cbcSMatt Macy
79*eda14cbcSMatt Macylog_must_program $TESTPOOL - <<-EOF
80*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "filesystem_limit")
81*eda14cbcSMatt Macy	assert(ans == 8)
82*eda14cbcSMatt Macy	assert(src == '$fs')
83*eda14cbcSMatt Macy
84*eda14cbcSMatt Macy	ans, src = zfs.get_prop("$fs", "filesystem_count")
85*eda14cbcSMatt Macy	assert(ans == 2)
86*eda14cbcSMatt Macy	assert(src == nil)
87*eda14cbcSMatt MacyEOF
88*eda14cbcSMatt Macy
89*eda14cbcSMatt Macylog_pass "Getting filesystem and snapshot count/limit props should work correctly."
90