diff options
Diffstat (limited to 'unit-tests/varmod-gmtime.mk')
-rw-r--r-- | unit-tests/varmod-gmtime.mk | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/unit-tests/varmod-gmtime.mk b/unit-tests/varmod-gmtime.mk new file mode 100644 index 0000000000000..0a05ad58d9828 --- /dev/null +++ b/unit-tests/varmod-gmtime.mk @@ -0,0 +1,35 @@ +# $NetBSD: varmod-gmtime.mk,v 1.2 2020/08/16 12:48:55 rillig Exp $ +# +# Tests for the :gmtime variable modifier, which formats a timestamp +# using strftime(3). + +all: mod-gmtime +all: mod-gmtime-indirect + +mod-gmtime: + @echo $@: + @echo ${%Y:L:gmtim=1593536400} # modifier name too short + @echo ${%Y:L:gmtime=1593536400} # 2020-07-01T00:00:00Z + @echo ${%Y:L:gmtimer=1593536400} # modifier name too long + @echo ${%Y:L:gm=gm:M*} + +mod-gmtime-indirect: + @echo $@: + + # As of 2020-08-16, it is not possible to pass the seconds via a + # variable expression. This is because parsing of the :gmtime + # modifier stops at the '$' and returns to ApplyModifiers. + # + # There, a colon would be skipped but not a dollar. + # Parsing therefore continues at the '$' of the ${:U159...}, looking + # for an ordinary variable modifier. + # + # At this point, the ${:U} is expanded and interpreted as a variable + # modifier, which results in the error message "Unknown modifier '1'". + # + # If ApplyModifier_Gmtime were to pass its argument through + # ParseModifierPart, this would work. + @echo ${%Y:L:gmtime=${:U1593536400}} + +all: + @:; |