diff options
Diffstat (limited to 'unit-tests/varname-dot-path.mk')
| -rw-r--r-- | unit-tests/varname-dot-path.mk | 54 |
1 files changed, 51 insertions, 3 deletions
diff --git a/unit-tests/varname-dot-path.mk b/unit-tests/varname-dot-path.mk index 8f4e3a5dcfa4..85a6f264eb5a 100644 --- a/unit-tests/varname-dot-path.mk +++ b/unit-tests/varname-dot-path.mk @@ -1,8 +1,56 @@ -# $NetBSD: varname-dot-path.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $ +# $NetBSD: varname-dot-path.mk,v 1.3 2020/10/02 18:46:54 rillig Exp $ # -# Tests for the special .PATH variable. +# Tests for the special .PATH variable, which TODO: describe the purpose. -# TODO: Implementation +_!= mkdir -p varname-dot-path.d + +# By default, .PATH consists of "." and .CURDIR. +# XXX: Why both? Shouldn't they have the same effect? +.if ${.PATH} != ". ${.CURDIR}" +. error ${.PATH} +.endif + +# The special target .PATH adds a directory to the path. +.PATH: / +.if ${.PATH} != ". ${.CURDIR} /" +. error ${.PATH} +.endif + +# Only existing directories are added to the path, the others are ignored. +.PATH: /nonexistent +.if ${.PATH} != ". ${.CURDIR} /" +. error ${.PATH} +.endif + +# Only directories are added to the path, not regular files. +.PATH: ${.PARSEDIR}/${.PARSEFILE} +.if ${.PATH} != ". ${.CURDIR} /" +. error ${.PATH} +.endif + +# Relative directories can be added as well. +# Each directory is only added once to the path. +.PATH: varname-dot-path.d / +.if ${.PATH} != ". ${.CURDIR} / varname-dot-path.d" +. error ${.PATH} +.endif + +# The pathnames are not normalized before being added to the path. +.PATH: ./. +.if ${.PATH} != ". ${.CURDIR} / varname-dot-path.d ./." +. error ${.PATH} +.endif + +# The two default entries can be placed at the back of the path, +# by adding the special entry ".DOTLAST" somewhere in the path. +# The entry .DOTLAST, if any, is listed in the path, always at the +# very beginning, to make this magic less surprising. +.PATH: .DOTLAST +.if ${.PATH} != ".DOTLAST / varname-dot-path.d ./. . ${.CURDIR}" +. error ${.PATH} +.endif + +_!= rmdir varname-dot-path.d all: @:; |
