Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make/unit-tests make(1): add test for deleting targe...
details: https://anonhg.NetBSD.org/src/rev/84bb2bd1d262
branches: trunk
changeset: 945320:84bb2bd1d262
user: rillig <rillig%NetBSD.org@localhost>
date: Sun Oct 25 21:31:00 2020 +0000
description:
make(1): add test for deleting targets using .DELETE_ON_ERROR
diffstat:
usr.bin/make/unit-tests/deptgt-delete_on_error.exp | 50 ++++++++++++++++++++++
usr.bin/make/unit-tests/deptgt-delete_on_error.mk | 45 ++++++++++++++++++-
2 files changed, 91 insertions(+), 4 deletions(-)
diffs (108 lines):
diff -r 8e2a881a969e -r 84bb2bd1d262 usr.bin/make/unit-tests/deptgt-delete_on_error.exp
--- a/usr.bin/make/unit-tests/deptgt-delete_on_error.exp Sun Oct 25 20:34:05 2020 +0000
+++ b/usr.bin/make/unit-tests/deptgt-delete_on_error.exp Sun Oct 25 21:31:00 2020 +0000
@@ -1,1 +1,51 @@
+Compatibility mode
+> deptgt-delete_on_error-regular; false
+*** Error code 1 (continuing)
+make: *** deptgt-delete_on_error-regular removed
+> deptgt-delete_on_error-regular-delete; false
+*** Error code 1 (continuing)
+make: *** deptgt-delete_on_error-regular-delete removed
+> deptgt-delete_on_error-phony; false
+*** Error code 1 (continuing)
+make: *** deptgt-delete_on_error-phony removed
+> deptgt-delete_on_error-phony-delete; false
+*** Error code 1 (continuing)
+make: *** deptgt-delete_on_error-phony-delete removed
+> deptgt-delete_on_error-precious; false
+*** Error code 1 (continuing)
+> deptgt-delete_on_error-precious-delete; false
+*** Error code 1 (continuing)
+
+Stop.
+make: stopped in unit-tests
+
+Parallel mode
+> deptgt-delete_on_error-regular; false
+*** [deptgt-delete_on_error-regular] Error code 1
+make: *** deptgt-delete_on_error-regular removed
+
+make: stopped in unit-tests
+> deptgt-delete_on_error-regular-delete; false
+*** [deptgt-delete_on_error-regular-delete] Error code 1
+make: *** deptgt-delete_on_error-regular-delete removed
+
+make: stopped in unit-tests
+> deptgt-delete_on_error-phony; false
+*** [deptgt-delete_on_error-phony] Error code 1
+
+make: stopped in unit-tests
+> deptgt-delete_on_error-phony-delete; false
+*** [deptgt-delete_on_error-phony-delete] Error code 1
+
+make: stopped in unit-tests
+> deptgt-delete_on_error-precious; false
+*** [deptgt-delete_on_error-precious] Error code 1
+
+make: stopped in unit-tests
+> deptgt-delete_on_error-precious-delete; false
+*** [deptgt-delete_on_error-precious-delete] Error code 1
+
+make: stopped in unit-tests
+*** Error code 1 (ignored)
+*** Error code 1 (ignored)
exit status 0
diff -r 8e2a881a969e -r 84bb2bd1d262 usr.bin/make/unit-tests/deptgt-delete_on_error.mk
--- a/usr.bin/make/unit-tests/deptgt-delete_on_error.mk Sun Oct 25 20:34:05 2020 +0000
+++ b/usr.bin/make/unit-tests/deptgt-delete_on_error.mk Sun Oct 25 21:31:00 2020 +0000
@@ -1,8 +1,45 @@
-# $NetBSD: deptgt-delete_on_error.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
+ # $NetBSD: deptgt-delete_on_error.mk,v 1.3 2020/10/25 21:31:00 rillig Exp $
+#
+# Tests for the special target .DELETE_ON_ERROR in dependency declarations,
+# which controls whether the target is deleted if a shell command fails or
+# is interrupted.
+#
+# In compatibility mode, regular and phony targets are deleted, but precious
+# targets are preserved.
#
-# Tests for the special target .DELETE_ON_ERROR in dependency declarations.
+# In parallel mode, regular targets are deleted, while phony and precious
+# targets are preserved.
+#
+# See also:
+# CompatDeleteTarget
+# JobDeleteTarget
-# TODO: Implementation
+THIS= deptgt-delete_on_error
+TARGETS= ${THIS}-regular ${THIS}-regular-delete
+TARGETS+= ${THIS}-phony ${THIS}-phony-delete
+TARGETS+= ${THIS}-precious ${THIS}-precious-delete
all:
- @:;
+ @rm -f ${TARGETS}
+ @echo 'Compatibility mode'
+ @-${.MAKE} -f ${MAKEFILE} -k ${TARGETS}
+ @rm -f ${TARGETS}
+ @echo
+ @echo 'Parallel mode'
+ @-${.MAKE} -f ${MAKEFILE} -k -j1 ${TARGETS}
+ @rm -f ${TARGETS}
+
+${THIS}-regular{,-delete}:
+ > ${.TARGET}; false
+
+${THIS}-phony{,-delete}: .PHONY
+ > ${.TARGET}; false
+
+${THIS}-precious{,-delete}: .PRECIOUS
+ > ${.TARGET}; false
+
+# The special target .DELETE_ON_ERROR is a global setting.
+# It does not apply to single targets.
+# The following line is therefore misleading but does not generate any
+# warning or even an error message.
+.DELETE_ON_ERROR: ${TARGETS:M*-delete}
Home |
Main Index |
Thread Index |
Old Index