1#!/bin/ksh -p
2#
3# This file and its contents are supplied under the terms of the
4# Common Development and Distribution License ("CDDL"), version 1.0.
5# You may only use this file in accordance with the terms of version
6# 1.0 of the CDDL.
7#
8# A full copy of the text of the CDDL should have accompanied this
9# source.  A copy of the CDDL is also available via the Internet at
10# http://www.illumos.org/license/CDDL.
11#
12
13#
14# Copyright (c) 2016 by Delphix. All rights reserved.
15#
16
17. $STF_SUITE/tests/functional/channel_program/channel_common.kshlib
18
19#
20# DESCRIPTION:
21#	Try channel programs with various lua runtime issues.
22#       the program should fail, but the system should not crash.
23#       Issues include:
24#       * syntax errors
25#       * misuse of language constructs (e.g. indexing non-tables)
26#       * the error() function
27#       * the assert() function
28#
29
30verify_runnable "global"
31
32set -A args "{]" \
33	"retrn 1" \
34	"abc = nil; abc.deref" \
35        "abc = nil; abc()" \
36	"error(0)" \
37	"error(\"string\")" \
38	"error(true)" \
39	"error({})" \
40	"assert(false)"
41
42log_assert "Runtime errors in lua scripts fail as expected."
43
44typeset -i i=0
45while (( i < ${#args[*]} )); do
46	log_mustnot_checkerror_program "execution failed" $TESTPOOL - <<-EOF
47		${args[i]}
48	EOF
49	((i = i + 1))
50done
51
52log_pass "Runtime errors in lua scripts fail as expected."
53