Fri Oct 9 06:44:42 2020 UTC ()
make(1): use consistent order in .OODATE in test archive.mk


(rillig)
diff -r1.6 -r1.7 src/usr.bin/make/unit-tests/archive.exp
diff -r1.9 -r1.10 src/usr.bin/make/unit-tests/archive.mk

cvs diff -r1.6 -r1.7 src/usr.bin/make/unit-tests/archive.exp (expand / switch to unified diff)

--- src/usr.bin/make/unit-tests/archive.exp 2020/10/08 18:37:26 1.6
+++ src/usr.bin/make/unit-tests/archive.exp 2020/10/09 06:44:42 1.7
@@ -3,26 +3,26 @@ rm -f libprog.a @@ -3,26 +3,26 @@ rm -f libprog.a
3 3
4Making libprog.a out-of-date archive.mk modmisc.mk varmisc.mk 4Making libprog.a out-of-date archive.mk modmisc.mk varmisc.mk
5ar cru libprog.a archive.mk modmisc.mk varmisc.mk 5ar cru libprog.a archive.mk modmisc.mk varmisc.mk
6ranlib libprog.a 6ranlib libprog.a
7 7
8Making create-archive out-of-date libprog.a 8Making create-archive out-of-date libprog.a
9 9
10Making list-archive out-of-date libprog.a 10Making list-archive out-of-date libprog.a
11ar t libprog.a 11ar t libprog.a
12archive.mk 12archive.mk
13modmisc.mk 13modmisc.mk
14varmisc.mk 14varmisc.mk
15 15
16Making list-archive-wildcard out-of-date ternary.mk archive-suffix.mk archive.mk 16Making list-archive-wildcard out-of-date archive-suffix.mk archive.mk ternary.mk
17list-archive-wildcard: archive-suffix.mk 17list-archive-wildcard: archive-suffix.mk
18list-archive-wildcard: archive.mk 18list-archive-wildcard: archive.mk
19list-archive-wildcard: ternary.mk 19list-archive-wildcard: ternary.mk
20 20
21Making depend-on-existing-member out-of-date archive.mk 21Making depend-on-existing-member out-of-date archive.mk
22depend-on-existing-member 22depend-on-existing-member
23 23
24`depend-on-nonexistent-member' is up to date. 24`depend-on-nonexistent-member' is up to date.
25Making remove-archive 25Making remove-archive
26rm -f libprog.a 26rm -f libprog.a
27 27
28exit status 0 28exit status 0

cvs diff -r1.9 -r1.10 src/usr.bin/make/unit-tests/archive.mk (expand / switch to unified diff)

--- src/usr.bin/make/unit-tests/archive.mk 2020/10/08 18:37:26 1.9
+++ src/usr.bin/make/unit-tests/archive.mk 2020/10/09 06:44:42 1.10
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: archive.mk,v 1.9 2020/10/08 18:37:26 rillig Exp $ 1# $NetBSD: archive.mk,v 1.10 2020/10/09 06:44:42 rillig Exp $
2# 2#
3# Very basic demonstration of handling archives, based on the description 3# Very basic demonstration of handling archives, based on the description
4# in PSD.doc/tutorial.ms. 4# in PSD.doc/tutorial.ms.
5# 5#
6# This test aims at covering the code, not at being an introduction to 6# This test aims at covering the code, not at being an introduction to
7# archive handling. That's why it is more complicated and detailed than 7# archive handling. That's why it is more complicated and detailed than
8# strictly necessary. 8# strictly necessary.
9 9
10ARCHIVE= libprog.a 10ARCHIVE= libprog.a
11FILES= archive.mk modmisc.mk varmisc.mk 11FILES= archive.mk modmisc.mk varmisc.mk
12 12
13MAKE_CMD= ${.MAKE} -f ${MAKEFILE} 13MAKE_CMD= ${.MAKE} -f ${MAKEFILE}
14RUN?= @set -eu; 14RUN?= @set -eu;
@@ -25,38 +25,38 @@ all: @@ -25,38 +25,38 @@ all:
25 ${RUN} ${MAKE_CMD} list-archive 25 ${RUN} ${MAKE_CMD} list-archive
26 ${RUN} ${MAKE_CMD} list-archive-wildcard 26 ${RUN} ${MAKE_CMD} list-archive-wildcard
27 ${RUN} ${MAKE_CMD} depend-on-existing-member 27 ${RUN} ${MAKE_CMD} depend-on-existing-member
28 ${RUN} ${MAKE_CMD} depend-on-nonexistent-member 28 ${RUN} ${MAKE_CMD} depend-on-nonexistent-member
29 ${RUN} ${MAKE_CMD} remove-archive 29 ${RUN} ${MAKE_CMD} remove-archive
30 30
31create-archive: ${ARCHIVE} pre post 31create-archive: ${ARCHIVE} pre post
32 32
33# The indirect references with the $$ cover the code in Arch_ParseArchive 33# The indirect references with the $$ cover the code in Arch_ParseArchive
34# that calls Var_Parse. It's an esoteric scenario since at the point where 34# that calls Var_Parse. It's an esoteric scenario since at the point where
35# Arch_ParseArchive is called, the dependency line is already fully expanded. 35# Arch_ParseArchive is called, the dependency line is already fully expanded.
36# 36#
37${ARCHIVE}: $${:Ulibprog.a}(archive.mk modmisc.mk $${:Uvarmisc.mk}) pre post 37${ARCHIVE}: $${:Ulibprog.a}(archive.mk modmisc.mk $${:Uvarmisc.mk}) pre post
38 ar cru ${.TARGET} ${.OODATE} 38 ar cru ${.TARGET} ${.OODATE:O}
39 ranlib ${.TARGET} 39 ranlib ${.TARGET}
40 40
41list-archive: ${ARCHIVE} pre post 41list-archive: ${ARCHIVE} pre post
42 ar t ${.ALLSRC} 42 ar t ${.ALLSRC}
43 43
44# XXX: I had expected that this dependency would select all *.mk files from 44# XXX: I had expected that this dependency would select all *.mk files from
45# the archive. Instead, the globbing is done in the current directory. 45# the archive. Instead, the globbing is done in the current directory.
46# To prevent an overly long file list, the pattern is restricted to [at]*.mk. 46# To prevent an overly long file list, the pattern is restricted to [at]*.mk.
47list-archive-wildcard: ${ARCHIVE}([at]*.mk) pre post 47list-archive-wildcard: ${ARCHIVE}([at]*.mk) pre post
48 ${RUN} printf '%s\n' ${.ALLSRC:O:@member@${.TARGET:Q}': '${member:Q}@} 48 ${RUN} printf '%s\n' ${.ALLSRC:O:@member@${.TARGET:Q}': '${member:Q}@}
49 49
50depend-on-existing-member: ${ARCHIVE}(archive.mk) pre post 50depend-on-existing-member: ${ARCHIVE}(archive.mk) pre post
51 ${RUN} echo $@ 51 ${RUN} echo $@
52 52
53depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk) pre post 53depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk) pre post
54 ${RUN} echo $@ 54 ${RUN} echo $@
55 55
56remove-archive: pre post 56remove-archive: pre post
57 rm -f ${ARCHIVE} 57 rm -f ${ARCHIVE}
58 58
59pre: .USEBEFORE 59pre: .USEBEFORE
60 @echo Making ${.TARGET} ${.OODATE:C,.+,out-of-date,W} ${.OODATE} 60 @echo Making ${.TARGET} ${.OODATE:C,.+,out-of-date,W} ${.OODATE:O}
61post: .USE 61post: .USE
62 @echo 62 @echo