Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make/unit-tests make(1): add very basic test for arc...



details:   https://anonhg.NetBSD.org/src/rev/45a56fa1446d
branches:  trunk
changeset: 936465:45a56fa1446d
user:      rillig <rillig%NetBSD.org@localhost>
date:      Mon Jul 27 18:51:03 2020 +0000

description:
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.

diffstat:

 distrib/sets/lists/tests/mi         |   4 +++-
 usr.bin/make/unit-tests/Makefile    |   3 ++-
 usr.bin/make/unit-tests/archive.exp |  10 ++++++++++
 usr.bin/make/unit-tests/archive.mk  |  37 +++++++++++++++++++++++++++++++++++++
 4 files changed, 52 insertions(+), 2 deletions(-)

diffs (90 lines):

diff -r f5aa37e57112 -r 45a56fa1446d distrib/sets/lists/tests/mi
--- a/distrib/sets/lists/tests/mi       Mon Jul 27 18:38:10 2020 +0000
+++ b/distrib/sets/lists/tests/mi       Mon Jul 27 18:51:03 2020 +0000
@@ -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
diff -r f5aa37e57112 -r 45a56fa1446d usr.bin/make/unit-tests/Makefile
--- a/usr.bin/make/unit-tests/Makefile  Mon Jul 27 18:38:10 2020 +0000
+++ b/usr.bin/make/unit-tests/Makefile  Mon Jul 27 18:51:03 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.66 2020/07/26 22:15:36 rillig Exp $
+# $NetBSD: Makefile,v 1.67 2020/07/27 18:51:56 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -30,6 +30,7 @@
 
 # Each test is in a sub-makefile.
 # Keep the list sorted.
+TESTS+=                archive
 TESTS+=                comment
 TESTS+=                cond-late
 TESTS+=                cond-short
diff -r f5aa37e57112 -r 45a56fa1446d usr.bin/make/unit-tests/archive.exp
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/make/unit-tests/archive.exp       Mon Jul 27 18:51:03 2020 +0000
@@ -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
diff -r f5aa37e57112 -r 45a56fa1446d usr.bin/make/unit-tests/archive.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/usr.bin/make/unit-tests/archive.mk        Mon Jul 27 18:51:03 2020 +0000
@@ -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}



Home | Main Index | Thread Index | Old Index