freebsd-skq/contrib/bmake/unit-tests/sh-errctl.mk
Simon J. Gerraty 06b9b3e0ad Merge bmake-20210110
Quite a lot of churn on style, but lots of
good work refactoring complicated functions
and lots more unit-tests.
Thanks mostly to rillig at NetBSD

Some interesting entries from ChangeLog

o .MAKE.{UID,GID} represent uid and gid running make.

o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
  checks in InitObjdir.  Explicit .OBJDIR target always allows
  read-only directory.

o add more unit tests for META MODE

Merge commit '8e11a9b4250be3c3379c45fa820bff78d99d5946' into main

Change-Id: I464fd4c013067f0915671c1ccc96d2d8090b2b9c
2021-01-13 22:21:37 -08:00

27 lines
842 B
Makefile

# $NetBSD: sh-errctl.mk,v 1.1 2020/12/12 15:06:11 rillig Exp $
#
# Test a shell with error control. This only works in jobs mode; in compat
# mode, the default shell is always used, see InitShellNameAndPath.
#
# There is a subtle difference between error control and echo control.
# With error control, each simple command is checked, whereas with echo
# control, only the last command from each line is checked. A shell command
# line that behaves differently in these two modes is "false; true". In
# error control mode, this fails, while in echo control mode, it succeeds.
.MAKEFLAGS: -j1 -dj
.SHELL: \
name="sh" \
path="${.SHELL}" \
hasErrCtl="yes" \
check="\# error checking on\nset -e" \
ignore="\# error checking off\nset +e" \
echo="\# echo on" \
quiet="\# echo off"
all:
@echo silent
-echo ignerr; false
+echo always