]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bmake/unit-tests/cond-cmp-string.mk
Update to bmake-20200902
[FreeBSD/FreeBSD.git] / contrib / bmake / unit-tests / cond-cmp-string.mk
1 # $NetBSD: cond-cmp-string.mk,v 1.3 2020/08/20 18:43:19 rillig Exp $
2 #
3 # Tests for string comparisons in .if conditions.
4
5 # This is a simple comparison of string literals.
6 # Nothing surprising here.
7 .if "str" != "str"
8 .error
9 .endif
10
11 # The right-hand side of the comparison may be written without quotes.
12 .if "str" != str
13 .error
14 .endif
15
16 # The left-hand side of the comparison must be enclosed in quotes.
17 # This one is not enclosed in quotes and thus generates an error message.
18 .if str != str
19 .error
20 .endif
21
22 # The left-hand side of the comparison requires a defined variable.
23 # The variable named "" is not defined, but applying the :U modifier to it
24 # makes it "kind of defined" (see VAR_KEEP).  Therefore it is ok here.
25 .if ${:Ustr} != "str"
26 .error
27 .endif
28
29 # Any character in a string literal may be escaped using a backslash.
30 # This means that "\n" does not mean a newline but a simple "n".
31 .if "string" != "\s\t\r\i\n\g"
32 .error
33 .endif
34
35 # It is not possible to concatenate two string literals to form a single
36 # string.
37 .if "string" != "str""ing"
38 .error
39 .endif