aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/varmod-gmtime.mk
blob: 0a05ad58d982801bfcf7a61cb7bac6570cc8d370 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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:
	@:;