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