]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/varname-dot-path.mk
Update to bmake-20201101
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / varname-dot-path.mk
1 # $NetBSD: varname-dot-path.mk,v 1.3 2020/10/02 18:46:54 rillig Exp $
2 #
3 # Tests for the special .PATH variable, which TODO: describe the purpose.
4
5 _!=     mkdir -p varname-dot-path.d
6
7 # By default, .PATH consists of "." and .CURDIR.
8 # XXX: Why both? Shouldn't they have the same effect?
9 .if ${.PATH} != ". ${.CURDIR}"
10 .  error ${.PATH}
11 .endif
12
13 # The special target .PATH adds a directory to the path.
14 .PATH: /
15 .if ${.PATH} != ". ${.CURDIR} /"
16 .  error ${.PATH}
17 .endif
18
19 # Only existing directories are added to the path, the others are ignored.
20 .PATH: /nonexistent
21 .if ${.PATH} != ". ${.CURDIR} /"
22 .  error ${.PATH}
23 .endif
24
25 # Only directories are added to the path, not regular files.
26 .PATH: ${.PARSEDIR}/${.PARSEFILE}
27 .if ${.PATH} != ". ${.CURDIR} /"
28 .  error ${.PATH}
29 .endif
30
31 # Relative directories can be added as well.
32 # Each directory is only added once to the path.
33 .PATH: varname-dot-path.d /
34 .if ${.PATH} != ". ${.CURDIR} / varname-dot-path.d"
35 .  error ${.PATH}
36 .endif
37
38 # The pathnames are not normalized before being added to the path.
39 .PATH: ./.
40 .if ${.PATH} != ". ${.CURDIR} / varname-dot-path.d ./."
41 .  error ${.PATH}
42 .endif
43
44 # The two default entries can be placed at the back of the path,
45 # by adding the special entry ".DOTLAST" somewhere in the path.
46 # The entry .DOTLAST, if any, is listed in the path, always at the
47 # very beginning, to make this magic less surprising.
48 .PATH: .DOTLAST
49 .if ${.PATH} != ".DOTLAST / varname-dot-path.d ./. . ${.CURDIR}"
50 .  error ${.PATH}
51 .endif
52
53 _!=     rmdir varname-dot-path.d
54
55 all:
56         @:;