diff options
-rwxr-xr-x | libexec/build-make-test | 26 | ||||
-rwxr-xr-x | libexec/build-makedeps | 10 |
2 files changed, 36 insertions, 0 deletions
diff --git a/libexec/build-make-test b/libexec/build-make-test new file mode 100755 index 0000000..272a808 --- /dev/null +++ b/libexec/build-make-test @@ -0,0 +1,26 @@ +#!/usr/bin/env build + +exit_cleanup() +{ + ret=$? + + if [ ${ret} -ne 0 ]; then + echo "error: test failed for ${CATEGORY}/${NAME}" >&2 + echo "logfile: '${PKG_LOGFILE}'" >&2 + exit ${ret} + fi + exit 0 +} +trap exit_cleanup EXIT + +pkg_test() { echo "test: no test defined"; } + +echo "testing: ${1}" +load_rules "${1}" +mkenv "test" +PKG_LOGFILE="${L}/test" + +cd "${W}" +pkg_test >> "${PKG_LOGFILE}" 2>&1 + +# vim: filetype=sh diff --git a/libexec/build-makedeps b/libexec/build-makedeps index 2c9e6de..93a0271 100755 --- a/libexec/build-makedeps +++ b/libexec/build-makedeps @@ -8,6 +8,7 @@ all_prep: all_all_prep all_compile: all_all_compile all_archive: all_all_archive all_install: all_all_install +all_test: all_all_test all_export: all_all_export all_makedeps: all_source: @@ -51,6 +52,7 @@ for package in $(echo "${BUILDER_PKGDIR}"/*/*); do package_compile="${W}/.compiled" package_archive="${BUILDER_ATFDIR}/${CATEGORY}/${NAME}-${VERSION}-${RELEASE}.${ARCHIVE_FORMAT}" package_install="${SYSROOT}/var/db/binpkgs/${CATEGORY}/${NAME}" + package_test="${W}/.tested" package_export="${BUILDER_TOPDIR}/exports/${CATEGORY}/${NAME}-${VERSION}-${RELEASE}.${CHOST%%-*}.rpm" package_logdir="${L}" @@ -86,6 +88,7 @@ for package in $(echo "${BUILDER_PKGDIR}"/*/*); do # packages. So we do some FS level checks first in hopes of avoiding # it and improving performance. package_bdeps= + package_tdeps= for pkg_dep in ${BDEPENDS}; do if ! test -d "${BUILDER_PKGDIR}/${pkg_dep}"; then die "bad BDEPENDS in package '${package}'" @@ -93,6 +96,7 @@ for package in $(echo "${BUILDER_PKGDIR}"/*/*); do die "no Buildrules for '${pkg_dep}'" fi package_bdeps="${package_bdeps} ${SYSROOT}/var/db/binpkgs/${pkg_dep}" + package_tdeps="${package_tdeps} ${BUILDER_TMPDIR}/${pkg_dep}/work/.tested" done package_rdeps= @@ -131,6 +135,9 @@ ${package_archive}: ${package_compile} ${package_make}_install: ${package_install} ${package_install}: ${package_archive} ${package_rdeps} @build-make-install "${CATEGORY}/${NAME}" +${package_make}_test: ${package_test} +${package_test}: ${package_tdeps} ${package_install} + @build-make-test "${CATEGORY}/${NAME}" ${package_make}_export: ${package_export} ${package_export}: ${package_install} @build-make-export "${CATEGORY}/${NAME}" @@ -172,6 +179,7 @@ EOF eval "${category}_SOURCES=\"\${${category}_SOURCES} ${package_sources}\"" eval "${category}_PACKAGES=\"\${${category}_PACKAGES} ${package_archive}\"" eval "${category}_INSTALL=\"\${${category}_INSTALL} ${package_install}\"" + eval "${category}_TEST=\"\${${category}_TEST} ${package_test}\"" eval "${category}_EXPORT=\"\${${category}_EXPORT} ${package_export}\"" eval "${category}_CLEAN=\"\${${category}_CLEAN} ${package_make}_clean\"" eval "${category}_DISTCLEAN=\"\${${category}_DISTCLEAN} ${package_make}_distclean\"" @@ -189,6 +197,7 @@ ${CATEGORY}_all: ${CATEGORY}_archive ${CATEGORY}_all_fetch: $(eval echo "\${${CATEGORY}_SOURCES}") ${CATEGORY}_all_archive: $(eval echo "\${${CATEGORY}_PACKAGES}") ${CATEGORY}_all_install: $(eval echo "\${${CATEGORY}_INSTALL}") +${CATEGORY}_all_test: $(eval echo "\${${CATEGORY}_TEST}") ${CATEGORY}_all_export: $(eval echo "\${${CATEGORY}_EXPORT}") ${CATEGORY}_all_clean: $(eval echo "\${${CATEGORY}_CLEAN}") ${CATEGORY}_all_distclean: $(eval echo "\${${CATEGORY}_DISTCLEAN}") @@ -196,6 +205,7 @@ all_all: ${CATEGORY}_all all_all_fetch: ${CATEGORY}_all_fetch all_all_archive: ${CATEGORY}_all_archive all_all_install: ${CATEGORY}_all_install +all_all_test: ${CATEGORY}_all_test all_all_export: ${CATEGORY}_all_export EOF |