Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Apr 2013 09:15:30 -0700
From:      Garrett Cooper <yaneurabeya@gmail.com>
To:        Brooks Davis <brooks@FreeBSD.org>
Cc:        arch@freebsd.org, "Simon J. Gerraty" <sjg@juniper.net>, benno@FreeBSD.org, toolchain@freebsd.org
Subject:   Re: [RFC] [Optionally] build tests with buildworld
Message-ID:  <FE0C5382-DC03-4272-B497-EE9884BC7C2F@gmail.com>
In-Reply-To: <1D2E12CF-08F2-4151-AB33-84C4270CFBC6@gmail.com>
References:  <CAGHfRMCTRM4sFS09jLp3DegJ5U0xujHmaw0YuAW1JTOuTqHGaw@mail.gmail.com> <20130423165958.GA91607@lor.one-eyed-alien.net> <1D2E12CF-08F2-4151-AB33-84C4270CFBC6@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_8DBC637E-2732-44C7-A30E-A2898AE64D0E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


On Apr 23, 2013, at 10:28 AM, Garrett Cooper wrote:

> On Apr 23, 2013, at 9:59 AM, Brooks Davis wrote:
>=20
>> On Fri, Apr 19, 2013 at 11:17:50PM -0700, Garrett Cooper wrote:
>>> Hi arch@ and toolchain@,
>>>   One of the items that I'm proposing be added to Makefile.inc1 in
>>> order to make building and installing tests on CURRENT (ATF and
>>> otherwise) is a build knob called TESTS_WITH_WORLD (the name can be
>>> modified), which allows me to build and install various tests on my
>>> git branch like the example ATF tests I produced, pjdfstest, some of
>>> the prove tests from tools/regression, etc (there are other
>>> outstanding changes, but this was the key one that I need feedback =
on
>>> just to be safe).
>>=20
>> I don't understand way you don't use WITH_TESTS processed
>> through bsd.own.mk.  You'd presumably have to add it to the list of
>> supported NO_* options for the bootstrap case, but that's trivial.  =
Then
>> you use could use normal MK_* variables.  That would also let you use
>> WITH(OUT)_TESTS in individual directories and they would always work.
>>=20
>> At a glance using WITHOUT_TESTS and NO_TEST internally would simplify
>> some of the special cases in your patch.
>=20
> This is something that I considered, but I wasn't sure that it was the =
best route to go about things because I thought we were doing away/had =
done away with most of the NO_* knobs (and unfortunately one cannot mix =
and match WITH_* and WITHOUT_* because they're considered contradictory =
according to bsd.own.mk -- something that Simon has debated against =
having in the past).
>=20
> I'm all for doing that though because that would simplify things =
greatly from an end-user perspective.

Hi Brooks!
	Does this look ok? Most of the MK_TESTS logic has been shoved =
into bsd.own.mk and NO_TESTS is sprinkled around Makefile.inc1 as =
recommended.
Thanks!
-Garrett

--Apple-Mail=_8DBC637E-2732-44C7-A30E-A2898AE64D0E
Content-Disposition: attachment;
	filename=build-tests-with-world.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="build-tests-with-world.patch"
Content-Transfer-Encoding: 7bit

Index: Makefile.inc1
===================================================================
--- Makefile.inc1	(revision 249833)
+++ Makefile.inc1	(working copy)
@@ -91,6 +91,9 @@
 .if ${MK_OFED} != "no"
 SUBDIR+=contrib/ofed
 .endif
+.if ${MK_TESTS} != "no"
+SUBDIR+=tests
+.endif
 #
 # We must do etc/ last for install/distribute to work.
 #
@@ -253,7 +256,8 @@
 		SSP_CFLAGS= \
 		-DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \
 		-DNO_PIC -DNO_PROFILE -DNO_SHARED \
-		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
+		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD \
+		-DNO_TESTS \
 
 # build-tools stage
 TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
@@ -263,12 +267,14 @@
 		BOOTSTRAPPING=${OSRELDATE} \
 		SSP_CFLAGS= \
 		-DNO_LINT \
-		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
+		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD \
+		-DNO_TESTS \
 
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		-DWITHOUT_GDB
+		-DWITHOUT_GDB \
+		-DNO_TESTS \
 
 # world stage
 WMAKEENV=	${CROSSENV} \
@@ -343,7 +349,8 @@
 		-DLIBRARIES_ONLY \
 		-DNO_CPU_CFLAGS \
 		-DNO_CTF \
-		-DNO_LINT
+		-DNO_LINT \
+		-DNO_TESTS \
 
 LIB32WMAKE=	${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \
 		-DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO -DWITHOUT_HTML
@@ -489,7 +496,7 @@
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; \
 	    ${WMAKE} -DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
-	    -DWITHOUT_MAN -DNO_PROFILE libraries
+	    -DWITHOUT_MAN -DNO_PROFILE -DNO_TESTS libraries
 _depend:
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -1734,6 +1741,7 @@
 NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
 	-DWITHOUT_MAN -DWITHOUT_NLS -DNO_PROFILE \
 	-DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS \
+	-DNO_TESTS \
 	TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
 	CPUTYPE=${XDEV_CPUTYPE}
 
Index: share/mk/bsd.own.mk
===================================================================
--- share/mk/bsd.own.mk	(revision 249833)
+++ share/mk/bsd.own.mk	(working copy)
@@ -376,8 +376,16 @@
     NAND \
     OFED \
     OPENSSH_NONE_CIPHER \
-    SHARED_TOOLCHAIN
+    SHARED_TOOLCHAIN \
 
+# bsd.test.mk doesn't work with !bmake. Also don't build tests if NO_TESTS is
+# defined; this is for buildworld and elsewhere (ports potentially).
+.if defined(.PARSEDIR) && !defined(NO_TESTS)
+__DEFAULT_NO_OPTIONS+=TESTS
+.else
+MK_TESTS:=	no
+.endif
+
 #
 # Default behaviour of some options depends on the architecture.  Unfortunately
 # this means that we have to test TARGET_ARCH (the buildworld case) as well

--Apple-Mail=_8DBC637E-2732-44C7-A30E-A2898AE64D0E--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE0C5382-DC03-4272-B497-EE9884BC7C2F>