On Wed, Apr 24, 2013 at 09:15:30AM -0700, Garrett Cooper wrote: > > On Apr 23, 2013, at 10:28 AM, Garrett Cooper wrote: > > > On Apr 23, 2013, at 9:59 AM, Brooks Davis wrote: > > > >> 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). > >> > >> 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. > >> > >> At a glance using WITHOUT_TESTS and NO_TEST internally would simplify > >> some of the special cases in your patch. > > > > 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). > > > > 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
The functional parts seem fine. Some comments below.
-- Brooks
> 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 \
The trailing backslash may be a good idea, but is inconsistant with all
the Makefiles in the system. If you want to make that change is should
discussed seperately.
>
> # 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 \
This could be on the previous line.
> 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
pgpueRGF9ilpv.pgp
Description: PGP signature
