aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibexec/build-make-test26
-rwxr-xr-xlibexec/build-makedeps10
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