xref: /freebsd/contrib/bmake/unit-tests/sh-errctl.mk (revision 911f0260390e18cf85f3dbf2c719b593efdc1e3c)
1# $NetBSD: sh-errctl.mk,v 1.1 2020/12/12 15:06:11 rillig Exp $
2#
3# Test a shell with error control.  This only works in jobs mode; in compat
4# mode, the default shell is always used, see InitShellNameAndPath.
5#
6# There is a subtle difference between error control and echo control.
7# With error control, each simple command is checked, whereas with echo
8# control, only the last command from each line is checked.  A shell command
9# line that behaves differently in these two modes is "false; true".  In
10# error control mode, this fails, while in echo control mode, it succeeds.
11
12.MAKEFLAGS: -j1 -dj
13
14.SHELL: \
15	name="sh" \
16	path="${.SHELL}" \
17	hasErrCtl="yes" \
18	check="\# error checking on\nset -e" \
19	ignore="\# error checking off\nset +e" \
20	echo="\# echo on" \
21	quiet="\# echo off"
22
23all:
24	@echo silent
25	-echo ignerr; false
26	+echo always
27