1*5f39f884SChris Williamson#!/bin/ksh -p
2*5f39f884SChris Williamson#
3*5f39f884SChris Williamson# This file and its contents are supplied under the terms of the
4*5f39f884SChris Williamson# Common Development and Distribution License ("CDDL"), version 1.0.
5*5f39f884SChris Williamson# You may only use this file in accordance with the terms of version
6*5f39f884SChris Williamson# 1.0 of the CDDL.
7*5f39f884SChris Williamson#
8*5f39f884SChris Williamson# A full copy of the text of the CDDL should have accompanied this
9*5f39f884SChris Williamson# source.  A copy of the CDDL is also available via the Internet at
10*5f39f884SChris Williamson# http://www.illumos.org/license/CDDL.
11*5f39f884SChris Williamson#
12*5f39f884SChris Williamson
13*5f39f884SChris Williamson#
14*5f39f884SChris Williamson# Copyright (c) 2017 by Delphix. All rights reserved.
15*5f39f884SChris Williamson#
16*5f39f884SChris Williamson
17*5f39f884SChris Williamson. $STF_SUITE/tests/functional/channel_program/channel_common.kshlib
18*5f39f884SChris Williamson
19*5f39f884SChris Williamson#
20*5f39f884SChris Williamson# DESCRIPTION:
21*5f39f884SChris Williamson#       zfs.exists should accurately report whether a dataset exists, and
22*5f39f884SChris Williamson#       report an error if a dataset is in another pool.
23*5f39f884SChris Williamson
24*5f39f884SChris Williamsonverify_runnable "global"
25*5f39f884SChris Williamson
26*5f39f884SChris Williamson# create $TESTSNAP and $TESTCLONE
27*5f39f884SChris Williamsoncreate_snapshot
28*5f39f884SChris Williamsoncreate_clone
29*5f39f884SChris Williamson
30*5f39f884SChris Williamsonfunction cleanup
31*5f39f884SChris Williamson{
32*5f39f884SChris Williamson	datasetexists $TESTPOOL/$TESTFS@$TESTSNAP && \
33*5f39f884SChris Williamson	    log_must zfs destroy -R $TESTPOOL/$TESTFS@$TESTSNAP
34*5f39f884SChris Williamson}
35*5f39f884SChris Williamson
36*5f39f884SChris Williamsonlog_must_program $TESTPOOL $ZCP_ROOT/lua_core/tst.exists.zcp \
37*5f39f884SChris Williamson    $TESTPOOL $TESTPOOL/$TESTFS $TESTPOOL/$TESTFS@$TESTSNAP \
38*5f39f884SChris Williamson    $TESTPOOL/$TESTCLONE
39*5f39f884SChris Williamson
40*5f39f884SChris Williamsonlog_mustnot_checkerr_program "not in the target pool" \
41*5f39f884SChris Williamson    $TESTPOOL - <<-EOF
42*5f39f884SChris Williamson	return zfs.exists('rpool')
43*5f39f884SChris WilliamsonEOF
44*5f39f884SChris Williamson
45*5f39f884SChris Williamsonlog_pass "zfs.exists() gives correct results"
46