Page MenuHomeFreeBSD

D3680.id8785.diff
No OneTemporary

D3680.id8785.diff

Index: Mk/Scripts/do-depends.sh
===================================================================
--- Mk/Scripts/do-depends.sh
+++ Mk/Scripts/do-depends.sh
@@ -21,6 +21,7 @@
target=$2
depends_args=$3
if [ -z "${dp_USE_PACKAGE_DEPENDS}" -a -z "${dp_USE_PACKAGE_DEPENDS_ONLY}" ]; then
+ echo ${dp_MAKE} -C ${origin} -DINSTALLS_DEPENDS ${target} ${depends_args}
${dp_MAKE} -C ${origin} -DINSTALLS_DEPENDS ${target} ${depends_args}
return 0
fi
@@ -46,6 +47,7 @@
echo "===> dp_USE_PACKAGE_DEPENDS_ONLY set - not building missing dependency from source" >&2
exit 1
else
+ echo MAKE
${dp_MAKE} -C ${origin} -DINSTALLS_DEPENDS ${target} ${depends_args}
fi
}
Index: Mk/Uses/perl5.mk
===================================================================
--- Mk/Uses/perl5.mk
+++ Mk/Uses/perl5.mk
@@ -308,15 +308,10 @@
@${RM} -f ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH}/perllocal.pod* || :
@${RMDIR} -p ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH} 2>/dev/null || :
-.if !target(regression-test)
-TEST_ARGS?= ${MAKE_ARGS}
-TEST_ENV?= ${MAKE_ENV}
+.if !target(do-test)
TEST_TARGET?= test
TEST_WRKSRC?= ${BUILD_WRKSRC}
-.if !target(test)
-test: regression-test
-.endif # test
-regression-test: build
+do-test:
.if ${USE_PERL5:Mmodbuild*}
-cd ${TEST_WRKSRC}/ && ${SETENV} ${TEST_ENV} ${PERL5} ${PL_BUILD} ${TEST_TARGET} ${TEST_ARGS}
.elif ${USE_PERL5:Mconfigure}
Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -650,6 +650,9 @@
# run-depends-list
# - Show all directories which are run-dependencies
# for this port.
+# test-depends-list
+# - Show all directories which are test-dependencies
+# for this port.
#
# extract - Unpacks ${DISTFILES} into ${WRKDIR}.
# patch - Apply any provided patches to the source.
@@ -661,6 +664,7 @@
# flag.
# deinstall - Remove the installation.
# deinstall-all - Remove all installations with the same PKGORIGIN.
+# test - Run tests fot the port.
# package - Create a package from an _installed_ port.
# package-recursive
# - Create a package for a port and _all_ of its dependencies.
@@ -845,6 +849,13 @@
# - Disable CCACHE support for example for certain ports if
# CCACHE is enabled. User settable.
#
+# For test:
+#
+# TEST_TARGET
+# - Default target for sub-make in test stage.
+# Default: (none)
+# TEST_WRKSRC - Directory to do test in (default: ${WRKSRC}).
+#
# For install:
#
# INSTALL_TARGET
@@ -1422,7 +1433,7 @@
DESTDIRNAME?= DESTDIR
# setup empty variables for USES targets
-.for target in sanity fetch extract patch configure build install package stage
+.for target in sanity fetch extract patch configure build install test package stage
_USES_${target}?=
.endfor
@@ -1477,6 +1488,9 @@
PKG_NOTE_no_provide_shlib= yes
.endif
+TEST_ARGS?= ${MAKE_ARGS}
+TEST_ENV?= ${MAKE_ENV}
+
PKG_ENV+= PORTSDIR=${PORTSDIR}
CONFIGURE_ENV+= XDG_DATA_HOME=${WRKDIR} \
XDG_CONFIG_HOME=${WRKDIR} \
@@ -1546,6 +1560,7 @@
CONFIGURE_WRKSRC?= ${WRKSRC}
BUILD_WRKSRC?= ${WRKSRC}
INSTALL_WRKSRC?=${WRKSRC}
+TEST_WRKSRC?= ${WRKSRC}
PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE} \
RESETPREFIX=${PREFIX}
@@ -1932,6 +1947,7 @@
EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PORTNAME}.${PREFIX:S/\//_/g}
CONFIGURE_COOKIE?= ${WRKDIR}/.configure_done.${PORTNAME}.${PREFIX:S/\//_/g}
INSTALL_COOKIE?= ${WRKDIR}/.install_done.${PORTNAME}.${PREFIX:S/\//_/g}
+TEST_COOKIE?= ${WRKDIR}/.test_done.${PORTNAME}.${PREFIX:S/\//_/g}
BUILD_COOKIE?= ${WRKDIR}/.build_done.${PORTNAME}.${PREFIX:S/\//_/g}
PATCH_COOKIE?= ${WRKDIR}/.patch_done.${PORTNAME}.${PREFIX:S/\//_/g}
PACKAGE_COOKIE?= ${WRKDIR}/.package_done.${PORTNAME}.${PREFIX:S/\//_/g}
@@ -2792,7 +2808,7 @@
.endif
_TARGETS= check-sanity fetch checksum extract patch configure all build \
- install reinstall package stage restage
+ install reinstall test package stage restage
.for target in ${_TARGETS}
.if !target(${target})
@@ -3453,6 +3469,23 @@
@(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${FAKEROOT} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET})
.endif
+# Test
+
+.if !target(do-test) && defined(TEST_TARGET)
+DO_MAKE_TEST?= ${SETENV} ${TEST_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${TEST_ARGS:C,^${DESTDIRNAME}=.*,,g}
+do-test:
+ @(cd ${TEST_WRKSRC}; if ! ${DO_MAKE_TEST} ${TEST_TARGET}; then \
+ if [ -n "${TEST_FAIL_MESSAGE}" ] ; then \
+ ${ECHO_MSG} "===> Tests failed unexpectedly."; \
+ (${ECHO_CMD} "${TEST_FAIL_MESSAGE}") | ${FMT} 75 79 ; \
+ fi; \
+ ${FALSE}; \
+ fi)
+.elif !target(do-test)
+do-test:
+ @${DO_NADA}
+.endif
+
# Package
.if !target(do-package)
@@ -3739,6 +3772,8 @@
@${ECHO_MSG} "===> Staging for ${PKGNAME}"
install-message:
@${ECHO_MSG} "===> Installing for ${PKGNAME}"
+test-message:
+ @${ECHO_MSG} "===> Testing for ${PKGNAME}"
package-message:
@${ECHO_MSG} "===> Building package for ${PKGNAME}"
@@ -4259,7 +4294,7 @@
.if !target(depends)
depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends
-.for deptype in PKG EXTRACT PATCH FETCH BUILD LIB RUN
+.for deptype in PKG EXTRACT PATCH FETCH BUILD LIB RUN TEST
${deptype:tl}-depends:
.if defined(${deptype}_DEPENDS) && !defined(NO_DEPENDS)
@${SETENV} \
@@ -4457,6 +4492,24 @@
fi; \
done | ${SORT} -u
+test-depends-list:
+.if defined(TEST_DEPENDS)
+ @${TEST-DEPENDS-LIST}
+.endif
+
+TEST-DEPENDS-LIST= \
+ for dir in $$(${ECHO_CMD} "${TEST_DEPENDS}" | ${SED} -E -e 's,([^: ]*):([^: ]*)(:[^ ]*)?,\2,g' -e 'y/ /\n/'| ${SORT} -u); do \
+ case $$dir in \
+ /*) pdir=$$dir ;; \
+ *) pdir=${PORTSDIR}/$$dir ;; \
+ esac ; \
+ if [ -d $$pdir ]; then \
+ ${ECHO_CMD} $$pdir; \
+ else \
+ ${ECHO_MSG} "${PKGNAME}: \"$$pdir\" non-existent -- dependency list incomplete" >&2; \
+ fi; \
+ done | ${SORT} -u
+
# Package (recursive runtime) dependency list. Print out both directory names
# and package names.
@@ -5555,7 +5608,7 @@
# Please note that the order of the following targets is important, and
# should not be modified.
-_TARGETS_STAGES= SANITY PKG FETCH EXTRACT PATCH CONFIGURE BUILD INSTALL PACKAGE STAGE
+_TARGETS_STAGES= SANITY PKG FETCH EXTRACT PATCH CONFIGURE BUILD INSTALL TEST PACKAGE STAGE
# Define the SEQ of actions to take when each target is ran, and which targets
# it depends on before running its SEQ.
@@ -5619,6 +5672,8 @@
.if defined(DEVELOPER)
_STAGE_SEQ+= 995:stage-qa
.endif
+_TEST_DEP= stage
+_TEST_SEQ= 100:test-message 150:test-depends 300:pre-test 500:do-test 800:post-test
_INSTALL_DEP= stage
_INSTALL_SEQ= 100:install-message 150:run-depends 151:lib-depends \
200:check-already-installed
@@ -5669,7 +5724,7 @@
# See above *_SEQ and *_DEP. The _DEP will run before this defined target is
# ran. The _SEQ will run as this target once _DEP is satisfied.
-.for target in extract patch configure build stage install package
+.for target in extract patch configure build stage install test package
# Check if config dialog needs to show and execute it if needed. If is it not
# needed (_OPTIONS_OK), then just depend on the cookie which is defined later
Index: devel/pire/Makefile
===================================================================
--- devel/pire/Makefile
+++ devel/pire/Makefile
@@ -33,7 +33,7 @@
BUILD_DEPENDS+= cppunit-config:${PORTSDIR}/devel/cppunit
CONFIGURE_ARGS+=--with-cppunit-prefix=${LOCALBASE}
-regression-test: build
+do-test:
@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} check || \
(${CAT} ${WRKSRC}/tests/test-suite.log; false)
.endif

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 20, 6:13 AM (7 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30003539
Default Alt Text
D3680.id8785.diff (7 KB)

Event Timeline