Home | History | Annotate | Line # | Download | only in unit-tests
      1  1.6  rillig # $NetBSD: varmod-head.mk,v 1.6 2024/06/01 18:44:05 rillig Exp $
      2  1.1  rillig #
      3  1.2  rillig # Tests for the :H variable modifier, which returns the dirname of
      4  1.2  rillig # each of the words in the variable value.
      5  1.1  rillig 
      6  1.5  rillig .if ${:U a/b/c :H} != "a/b"
      7  1.5  rillig .  error
      8  1.5  rillig .endif
      9  1.5  rillig 
     10  1.5  rillig .if ${:U def :H} != "."
     11  1.5  rillig .  error
     12  1.5  rillig .endif
     13  1.5  rillig 
     14  1.5  rillig .if ${:U a.b.c :H} != "."
     15  1.5  rillig .  error
     16  1.5  rillig .endif
     17  1.5  rillig 
     18  1.5  rillig .if ${:U a.b/c :H} != "a.b"
     19  1.5  rillig .  error
     20  1.5  rillig .endif
     21  1.5  rillig 
     22  1.5  rillig .if ${:U a :H} != "."
     23  1.5  rillig .  error
     24  1.5  rillig .endif
     25  1.5  rillig 
     26  1.5  rillig .if ${:U a.a :H} != "."
     27  1.5  rillig .  error
     28  1.5  rillig .endif
     29  1.5  rillig 
     30  1.5  rillig .if ${:U .gitignore :H} != "."
     31  1.5  rillig .  error
     32  1.5  rillig .endif
     33  1.5  rillig 
     34  1.5  rillig .if ${:U trailing/ :H} != "trailing"
     35  1.5  rillig .  error
     36  1.5  rillig .endif
     37  1.5  rillig 
     38  1.5  rillig .if ${:U /abs/dir/file :H} != "/abs/dir"
     39  1.5  rillig .  error
     40  1.5  rillig .endif
     41  1.5  rillig 
     42  1.5  rillig .if ${:U rel/dir/file :H} != "rel/dir"
     43  1.5  rillig .  error
     44  1.5  rillig .endif
     45  1.5  rillig 
     46  1.5  rillig # The head of "/" was an empty string before 2020.07.20.14.50.41, leading to
     47  1.5  rillig # the output "before  after", with two spaces.  Since 2020.07.20.14.50.41, the
     48  1.5  rillig # output is "before after", discarding the empty word.
     49  1.5  rillig .if ${:U before/ / after/ :H} == "before after"
     50  1.5  rillig # OK
     51  1.5  rillig .elif ${:U before/ / after/ :H} == "before  after"
     52  1.5  rillig # No '.info' to keep the file compatible with old make versions.
     53  1.5  rillig _!=	echo "The modifier ':H' generates an empty word." 1>&2; echo
     54  1.5  rillig .else
     55  1.5  rillig .  error
     56  1.5  rillig .endif
     57  1.5  rillig 
     58  1.5  rillig # An empty list is split into a single empty word.
     59  1.5  rillig # The dirname of this empty word is ".".
     60  1.5  rillig .if ${:U :H} != "."
     61  1.5  rillig .  error
     62  1.5  rillig .endif
     63  1.5  rillig 
     64  1.6  rillig # If the ':H' is not directly followed by a delimiting ':' or '}', the
     65  1.6  rillig # ':from=to' modifier is tried as a fallback.
     66  1.6  rillig .if ${:U Head :Head=replaced} != "replaced"
     67  1.6  rillig .  error
     68  1.6  rillig .endif
     69  1.6  rillig 
     70  1.5  rillig all: .PHONY
     71