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