Artifact 541777ce91ec4d8d4c82a710c4dadb2cf28e5bfc:
- Executable file
build/test/test
— part of check-in
[fdb515dc70]
at
2010-09-26 04:46:40
on branch trunk
— Added StaticTk builds
Updated to move failed builds into failed directory (user: rkeene, size: 5667) [annotate] [blame] [check-ins using]
#! /bin/bash VERSIONS="8.4.19 8.5.9 cvs_HEAD" # Find the base directory for x in 1 2 3 __fail__; do if [ "${x}" = "${fail}" ]; then echo 'Unable to find KitCreator, aborting.' >&2 exit 1 fi if [ -x kitcreator ]; then break fi cd .. done ROOTDIR="$(pwd)" TESTDIR="${ROOTDIR}/build/test" export ROOTDIR TESTDIR # Handle command-line arguments if [ "$1" = "clean" ]; then rm -rf "${TESTDIR}/kits" fi # Create place to put kits mkdir "${TESTDIR}/kits" >/dev/null 2>/dev/null mkdir "${TESTDIR}/kits/failed" >/dev/null 2>/dev/null if [ ! -d "${TESTDIR}/kits" ]; then echo 'Unable to create kits/ directory, aborting.' >&2 exit 1 fi # Cleanup for file in "${TESTDIR}"/kits/*.log; do if echo "${file}" | grep -- '-build.log$' >/dev/null; then continue fi rm -f "${file}" done failed="" for kit in normal normal-zip normal-threaded normal-threaded-zip normal-statictk normal-notk normal-threaded-notk normal-threaded-zip-notk min min-static win32 win32-zip win32-threaded win32-threaded-zip win32-notk win32-threaded-notk arm-min; do kitcreator="./kitcreator" args="" runnable="1" iszip="0" statictk="0" notk="0" # Handle base configuration case "${kit}" in normal|normal-*) true ;; min) kitcreator="./build/make-minkit" iszip="1" notk="1" ;; min-static) kitcreator="./build/make-minkit-static" iszip="1" notk="1" ;; win32|win32-*) kitcreator="./build/make-kit-win32" runnable="0" ;; arm-min) kitcreator="./build/make-kit-arm" runnable="0" notk="1" iszip="1" ;; esac # Handle additional configuration tempkit="-${kit}-" for try in 1 2 3 4 5 6 7 8 9; do case "-${tempkit}-" in *-threaded-*) tempkit="$(echo "${tempkit}" | sed 's@-threaded-@-@')" args="${args} --enable-threads" ;; *-zip-*) tempkit="$(echo "${tempkit}" | sed 's@-zip-@-@')" args="${args} --enable-kit-storage=zip" iszip="1" ;; *-statictk-*) tempkit="$(echo "${tempkit}" | sed 's@-statictk-@-@')" if [ "${notk}" = "0" ]; then statictk="1" else echo "${kit}: Unable to create StaticTk and NoTk, ignoring StaticTk" >&2 fi ;; *-notk-*) tempkit="$(echo "${tempkit}" | sed 's@-notk-@-@')" if [ "${statictk}" = "0" ]; then notk="1" else echo "${kit}: Unable to create StaticTk and NoTk, ignoring NoTk" >&2 fi ;; esac done for version in ${VERSIONS}; do # Create Tclkit createdkit="tclkit-${version}" outputname="${TESTDIR}/kits/tclkit-${version}-${kit}" failoutputname="${TESTDIR}/kits/failed/tclkit-${version}-${kit}" buildlog="${outputname}-build.log" failbuildlog="${failoutputname}-build.log" if [ ! -f "${outputname}" ]; then unset KITCREATOR_PKGS STATICTK if [ -f "${failoutputname}" ]; then echo "Skipping rebuilding failed kit ${version}/${kit} ..." failed="${failed} ${version}/${kit}-build" continue fi echo "Creating Tclkit ${version}/${kit}..." if [ "${notk}" = "1" ]; then KITCREATOR_PKGS='itcl mk4tcl' export KITCREATOR_PKGS fi if [ "${statictk}" = "1" ]; then STATICTK="1" export STATICTK fi buildfailed="0" "${kitcreator}" "${version}" ${args} > "${buildlog}" 2>&1 || buildfailed="1" grep -n '^' */build.log >> "${buildlog}" 2>&1 if [ ! -f "${createdkit}" ]; then echo "Failed to create kit ${version}/${kit}" >&2 failed="${failed} ${version}/${kit}-build" touch "${failoutputname}" mv "${buildlog}" "${failbuildlog}" continue fi # Verify sanity of created kit issane=1 ## Verify the Win32 kits are case "-${version}-${kit}-" in *-win32-notk-*|*-win32-*-notk-*) if ! file "${createdkit}" | grep 'MS Windows (console)' >/dev/null; then echo "Kit failed sanity check for being a console application" >&2 issane=0 fi ;; *-win32-*) if ! file "${createdkit}" | grep 'MS Windows (GUI)' >/dev/null; then echo "Kit failed sanity check for being a GUI application" >&2 issane=0 fi ;; esac ## Verify the build completed without warnings if [ "${buildfailed}" = "1" ]; then echo "Kit failed sanity check for Building" >&2 issane=0 fi # Make note of sanity failure if [ "${issane}" != "1" ]; then echo "Kit failed sanity ${version}/${kit}" >&2 failed="${failed} ${version}/${kit}-sanity" mv "${createdkit}" "${failoutputname}" mv "${buildlog}" "${failbuildlog}" continue fi # Rename created kit to final destination mv "${createdkit}" "${outputname}" fi # Test zip status if unzip -l "${outputname}" 2>&1 | grep 'boot\.tcl' >/dev/null; then canunzip="1" else canunzip="0" fi if [ "${iszip}" != "${canunzip}" ]; then echo "Failed to unzip zipkit or was able to unzip non-zipkit ${version}/${kit}" >&2 failed="${failed} ${version}/${kit}-zip" continue fi # Do not continue past here for un-runnable kits if [ "${runnable}" != "1" ]; then continue fi # Perform battery of tests for testscp in "${TESTDIR}"/tests/*.tcl; do testscp_tag="$(basename "${testscp}" .tcl)" testscppre="$(dirname "${testscp}")/${testscp_tag}.sh" scplogfile="${outputname}-${testscp_tag}.log" ( if [ -f "${testscppre}" ]; then . "${testscppre}" fi "${outputname}" "${testscp}" "${outputname}" "${kit}" "${version}" ) > "${scplogfile}" 2>&1 if [ "$?" != "0" ]; then echo "Script failed: ${testscp_tag} on ${version}/${kit}" >&2 failed="${failed} ${version}/${kit}-test-${testscp_tag}" continue fi done done done if [ -n "${failed}" ]; then echo "Failed: ${failed}" fi