Module Name: src Committed By: rillig Date: Mon Jul 27 18:51:03 UTC 2020
Modified Files: src/distrib/sets/lists/tests: mi Added Files: src/usr.bin/make/unit-tests: archive.exp archive.mk Log Message: make(1): add very basic test for archive handling The whole code in arch.c had been uncovered by tests before. The code coverage shows that neither the archive name nor the member contain any $, even though archive.mk looks like it. It could be necessary to place the variable assignments below the dependency line, to force late evaluation. To generate a diff of this commit: cvs rdiff -u -r1.878 -r1.879 src/distrib/sets/lists/tests/mi cvs rdiff -u -r0 -r1.1 src/usr.bin/make/unit-tests/archive.exp \ src/usr.bin/make/unit-tests/archive.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.878 src/distrib/sets/lists/tests/mi:1.879 --- src/distrib/sets/lists/tests/mi:1.878 Sun Jul 26 22:15:36 2020 +++ src/distrib/sets/lists/tests/mi Mon Jul 27 18:51:03 2020 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.878 2020/07/26 22:15:36 rillig Exp $ +# $NetBSD: mi,v 1.879 2020/07/27 18:51:03 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -4522,6 +4522,8 @@ ./usr/tests/usr.bin/make/t_make tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/Makefile tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/make/unit-tests/archive.exp tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/make/unit-tests/archive.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/comment.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/comment.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/cond-late.exp tests-usr.bin-tests compattestfile,atf Added files: Index: src/usr.bin/make/unit-tests/archive.exp diff -u /dev/null src/usr.bin/make/unit-tests/archive.exp:1.1 --- /dev/null Mon Jul 27 18:51:03 2020 +++ src/usr.bin/make/unit-tests/archive.exp Mon Jul 27 18:51:03 2020 @@ -0,0 +1,10 @@ +ar cru libprog.a archive.mk modmisc.mk varmisc.mk +ranlib libprog.a +ar t libprog.a +archive.mk +modmisc.mk +varmisc.mk +depend-on-existing-member +`depend-on-nonexistent-member' is up to date. +rm libprog.a +exit status 0 Index: src/usr.bin/make/unit-tests/archive.mk diff -u /dev/null src/usr.bin/make/unit-tests/archive.mk:1.1 --- /dev/null Mon Jul 27 18:51:03 2020 +++ src/usr.bin/make/unit-tests/archive.mk Mon Jul 27 18:51:03 2020 @@ -0,0 +1,37 @@ +# $NetBSD: archive.mk,v 1.1 2020/07/27 18:51:03 rillig Exp $ +# +# Very basic demonstration of handling archives, based on the description +# in PSD.doc/tutorial.ms. + +ARCHIVE= libprog.${EXT.a} +FILES= archive.${EXT.mk} modmisc.${EXT.mk} varmisc.mk + +EXT.a= a +EXT.mk= mk + +MAKE_CMD= ${.MAKE} -f ${MAKEFILE} +RUN?= @set -eu; + +all: + ${RUN} ${MAKE_CMD} create-archive + ${RUN} ${MAKE_CMD} list-archive + ${RUN} ${MAKE_CMD} depend-on-existing-member + ${RUN} ${MAKE_CMD} depend-on-nonexistent-member + ${RUN} ${MAKE_CMD} remove-archive + +create-archive: ${ARCHIVE} +${ARCHIVE}: ${ARCHIVE}(${FILES}) + ar cru ${.TARGET} ${.OODATE} + ranlib ${.TARGET} + +list-archive: ${ARCHIVE} + ar t ${.ALLSRC} + +depend-on-existing-member: ${ARCHIVE}(archive.mk) + ${RUN} echo $@ + +depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk) + ${RUN} echo $@ + +remove-archive: ${ARCHIVE} + rm ${ARCHIVE}