| Index: buildbot/buildbot_spec2k.sh
|
| diff --git a/buildbot/buildbot_spec2k.sh b/buildbot/buildbot_spec2k.sh
|
| index d93b508d9951d66cfbaf2bbd57dec7a3ae41f188..6c9837ea88679c46e3191dc1328630c70dc61351 100755
|
| --- a/buildbot/buildbot_spec2k.sh
|
| +++ b/buildbot/buildbot_spec2k.sh
|
| @@ -11,19 +11,19 @@ set -o errexit
|
| # SCRIPT CONFIG
|
| ######################################################################
|
|
|
| -CLOBBER=${CLOBBER:-yes}
|
| -SCONS_TRUSTED="./scons --mode=opt-host -j8"
|
| -SCONS_NACL="./scons --mode=opt-host,nacl -j8"
|
| -SPEC_HARNESS=${SPEC_HARNESS:-${HOME}/cpu2000-redhat64-ia32}/
|
| +readonly CLOBBER=${CLOBBER:-yes}
|
| +readonly SCONS_TRUSTED="./scons --mode=opt-host -j8"
|
| +readonly SCONS_NACL="./scons --mode=opt-host,nacl -j8"
|
| +readonly SPEC_HARNESS=${SPEC_HARNESS:-${HOME}/cpu2000-redhat64-ia32}/
|
|
|
| -TRYBOT_TESTS="176.gcc 179.art 181.mcf 197.parser 252.eon 254.gap"
|
| -TRYBOT_TRANSLATOR_TESTS="176.gcc"
|
| -TRYBOT_X86_64_ZERO_BASED_SANDBOX_TESTS="176.gcc"
|
| +readonly TRYBOT_TESTS="176.gcc 179.art 181.mcf 197.parser 252.eon 254.gap"
|
| +readonly TRYBOT_TRANSLATOR_TESTS="176.gcc"
|
| +readonly TRYBOT_X86_64_ZERO_BASED_SANDBOX_TESTS="176.gcc"
|
|
|
| readonly BUILDBOT_PNACL="buildbot/buildbot_pnacl.sh"
|
| readonly UP_DOWN_LOAD="buildbot/file_up_down_load.sh"
|
|
|
| -SPEC_BASE="tests/spec2k"
|
| +readonly SPEC_BASE="tests/spec2k"
|
| readonly ARCHIVE_NAME=$(${SPEC_BASE}/run_all.sh GetTestArchiveName)
|
|
|
| readonly NAME_ARM_TRY_UPLOAD=$(${BUILDBOT_PNACL} NAME_ARM_TRY_UPLOAD)
|
| @@ -31,8 +31,14 @@ readonly NAME_ARM_TRY_DOWNLOAD=$(${BUILDBOT_PNACL} NAME_ARM_TRY_DOWNLOAD)
|
| readonly NAME_ARM_UPLOAD=$(${BUILDBOT_PNACL} NAME_ARM_UPLOAD)
|
| readonly NAME_ARM_DOWNLOAD=$(${BUILDBOT_PNACL} NAME_ARM_DOWNLOAD)
|
|
|
| +readonly QEMU_TOOL="$(pwd)/toolchain/linux_arm-trusted/run_under_qemu_arm"
|
| +
|
| +# Note: the tool for updating the canned nexes lives at:
|
| +# tools/canned_nexe_tool.sh
|
| +readonly CANNED_NEXE_REV=1001
|
| +
|
| # If true, terminate script when first error is encountered.
|
| -FAIL_FAST=${FAIL_FAST:-false}
|
| +readonly FAIL_FAST=${FAIL_FAST:-false}
|
| RETCODE=0
|
|
|
| # Print the number of tests being run for the buildbot status output
|
| @@ -128,10 +134,10 @@ upload-test-binaries() {
|
| echo "@@@BUILD_STEP spec2k upload@@@"
|
| if [[ ${try} == "try" ]]; then
|
| ${UP_DOWN_LOAD} UploadArmBinariesForHWBotsTry ${NAME_ARM_TRY_UPLOAD} \
|
| - ${ARCHIVE_NAME}
|
| + ${ARCHIVE_NAME}
|
| else
|
| ${UP_DOWN_LOAD} UploadArmBinariesForHWBots ${NAME_ARM_UPLOAD} \
|
| - ${ARCHIVE_NAME}
|
| + ${ARCHIVE_NAME}
|
| fi
|
| }
|
|
|
| @@ -140,10 +146,10 @@ download-test-binaries() {
|
| echo "@@@BUILD_STEP spec2k download@@@"
|
| if [[ ${try} == "try" ]]; then
|
| ${UP_DOWN_LOAD} DownloadArmBinariesForHWBotsTry ${NAME_ARM_TRY_DOWNLOAD} \
|
| - ${ARCHIVE_NAME}
|
| + ${ARCHIVE_NAME}
|
| else
|
| ${UP_DOWN_LOAD} DownloadArmBinariesForHWBots ${NAME_ARM_DOWNLOAD} \
|
| - ${ARCHIVE_NAME}
|
| + ${ARCHIVE_NAME}
|
| fi
|
| echo "@@@BUILD_STEP spec2k untar@@@"
|
| pushd ${SPEC_BASE}
|
| @@ -151,6 +157,84 @@ download-test-binaries() {
|
| popd
|
| }
|
|
|
| +download-validator-test-nexes() {
|
| + local arch="$1"
|
| + echo "@@@BUILD_STEP validator test download@@@"
|
| + ${UP_DOWN_LOAD} DownloadArchivedNexes ${CANNED_NEXE_REV} \
|
| + "${arch}_giant" giant_nexe.tar.bz2
|
| + # This generates "CannedNexes/" in the current directory
|
| + rm -rf CannedNexes
|
| + tar jxf giant_nexe.tar.bz2
|
| +}
|
| +
|
| +get-validator() {
|
| + local arch="$1"
|
| + if [[ ${arch} == "x86-32" ]] ; then
|
| + echo "$(pwd)/scons-out/opt-linux-x86-32/staging/ncval"
|
| + elif [[ ${arch} == "x86-64" ]] ; then
|
| + echo "$(pwd)/scons-out/opt-linux-x86-64/staging/ncval"
|
| + elif [[ ${arch} == "arm" ]] ; then
|
| + echo "$(pwd)/scons-out/opt-linux-arm/staging/arm-ncval-core"
|
| + else
|
| + echo "ERROR: unknown arch"
|
| + fi
|
| +}
|
| +
|
| +LogTimeHelper() {
|
| + # This format is recognized by the buildbot system
|
| + echo "RESULT $1_$2: $3= $(bc) secs"
|
| +}
|
| +
|
| +LogTimedRun() {
|
| + local graph=$1
|
| + local benchmark=$2
|
| + local variant=$3
|
| + shift 3
|
| + # S: system mode CPU-seconds used by the process
|
| + # U: user mode CPU-seconds used by the process
|
| + # We add a plus sign inbetween so that we can pipe the output to "bc"
|
| + # Note: the >() magic creates a "fake" file (think named pipe)
|
| + # which passes the output of time to LogTimeHelper
|
| + /usr/bin/time -f "%U + %S" \
|
| + --output >(LogTimeHelper ${graph} ${benchmark} ${variant}) \
|
| + "$@"
|
| +}
|
| +
|
| +build-validator() {
|
| + local arch="$1"
|
| + echo "@@@BUILD_STEP build validator [${arch}]@@@"
|
| + if [[ ${arch} == "arm" ]] ; then
|
| + # TODO(robertm): build the validator
|
| + echo "NYI"
|
| + else
|
| + ${SCONS_NACL} platform=${arch} ncval
|
| + fi
|
| +}
|
| +
|
| +measure-validator-speed() {
|
| + local arch="$1"
|
| + local validator=$(get-validator ${arch})
|
| +
|
| + echo "@@@BUILD_STEP validator speed test [${arch}]@@@"
|
| + if [[ ! -e ${validator} ]] ; then
|
| + echo "ERROR: missing validator executable: ${validator}"
|
| + handle-error
|
| + return
|
| + fi
|
| +
|
| + if [[ ${arch} == "arm" && $(uname -p) != arm* ]] ; then
|
| + # TODO(robertm): build the validator
|
| + validator="${QEMU_TOOL} ${validator}"
|
| + fi
|
| +
|
| + for nexe in CannedNexes/* ; do
|
| + echo "timing validation of ${nexe}"
|
| + ls --size --block-size=1 ${nexe}
|
| + LogTimedRun "validationtime" $(basename ${nexe}) "canned" \
|
| + ${validator} ${nexe}
|
| + done
|
| +}
|
| +
|
| ######################################################################
|
| # NOTE: trybots only runs a subset of the the spec2k tests
|
| # TODO: elminate this long running bot in favor per arch sharded bots
|
| @@ -194,6 +278,9 @@ pnacl-trybot-x8632() {
|
| run-tests SetupPnaclTranslatorX8632Opt "${TRYBOT_TRANSLATOR_TESTS}" 1 1
|
| build-tests SetupPnaclTranslatorFastX8632Opt "${TRYBOT_TRANSLATOR_TESTS}" 1 1
|
| run-tests SetupPnaclTranslatorFastX8632Opt "${TRYBOT_TRANSLATOR_TESTS}" 1 1
|
| + build-validator x86-32
|
| + download-validator-test-nexes x86-32
|
| + measure-validator-speed x86-32
|
| }
|
|
|
| pnacl-x86-64-zero-based-sandbox() {
|
| @@ -216,6 +303,9 @@ pnacl-trybot-x8664() {
|
| build-tests SetupPnaclTranslatorFastX8664Opt "${TRYBOT_TRANSLATOR_TESTS}" 1 1
|
| run-tests SetupPnaclTranslatorFastX8664Opt "${TRYBOT_TRANSLATOR_TESTS}" 1 1
|
| pnacl-x86-64-zero-based-sandbox
|
| + build-validator x86-64
|
| + download-validator-test-nexes x86-64
|
| + measure-validator-speed x86-64
|
| }
|
|
|
| # We probably will not keep a qemu bot on the waterfall, but will keep this
|
| @@ -257,6 +347,7 @@ pnacl-x8664() {
|
| build-tests "${setups}" all 1 3
|
| run-tests "${setups}" all 1 3
|
| pnacl-x86-64-zero-based-sandbox
|
| + measure-validator-speed x86-64
|
| }
|
|
|
| pnacl-x8632() {
|
| @@ -269,6 +360,9 @@ pnacl-x8632() {
|
| SetupPnaclTranslatorFastX8632Opt"
|
| build-tests "${setups}" all 1 3
|
| run-tests "${setups}" all 1 3
|
| + build-validator x86-32
|
| + download-validator-test-nexes x86-32
|
| + measure-validator-speed x86-32
|
| }
|
|
|
| nacl-x8632() {
|
| @@ -278,6 +372,9 @@ nacl-x8632() {
|
| SetupNaclX8632Opt"
|
| build-tests "${setups}" all 1 3
|
| run-tests "${setups}" all 1 3
|
| + build-validator x86-32
|
| + download-validator-test-nexes x86-32
|
| + measure-validator-speed x86-32
|
| }
|
|
|
| nacl-x8664() {
|
| @@ -287,6 +384,9 @@ nacl-x8664() {
|
| SetupNaclX8664Opt"
|
| build-tests "${setups}" all 1 3
|
| run-tests "${setups}" all 1 3
|
| + build-validator x86-64
|
| + download-validator-test-nexes x86-64
|
| + measure-validator-speed x86-64
|
| }
|
|
|
|
|
|
|