Files
blis/travis/do_sde.sh
Devin Matthews 850a8a46c0 Test all x86_64 configurations*... (#212)
* Add custom SDE cpuid files.

* Set up testing of all x86_64 architectures (except bulldozer) using SDE.

* Update .travis.yml

[ci skip]

* Update do_testsuite.sh

[ci skip]

* Updated .travis.yml with my secret token.

Details:
- Replaced Devin's temporary secret token with my own, which is used by
  Travis when accessing the Intel SDE via Dropbox.

* Work around CPUID dispatch in glibc/libm by patching ld.so.

* Detect path of loader at runtime.

* Attempt to make SDE run on Travis

* Allow unpatched ld.so if we don't know how to patch it.

I *think* this only happens for older glibc without the multi-arch stuff (e.g. Ubuntu 14.04 on Travis), but who knows?

* Upgrade Travis to gcc-6 and binutils-2.26.

* Try to get Travis to use the right assembler.

* Apparently you need ld-2.26 too.

* Try to also patch ld.so from Ubuntu 14.04.

* Take the nuclear option.

* Account for non-absolute dependencies in ldd output.

* String manipulation fail.

* Update patch-ld-so.py

* Add Zen to SDE testing.

* Removed dead variable from travis/do_testsuite.sh.

Details:
- Removed 'BLIS_ENABLE_TEST_OUTPUT=yes' from make invocations in
  travis/do_testsuite.sh. This variable is no longer present in the
  BLIS build system (if it ever was?), and therefore has no effect.
2018-05-29 13:51:21 -05:00

48 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
set -x
SDE_VERSION=sde-external-8.16.0-2018-01-30-lin
SDE_TARBALL=$SDE_VERSION.tar.bz2
SDE=$SDE_VERSION/sde64
set +x
curl -s -X POST https://content.dropboxapi.com/2/files/download -H "Authorization: Bearer $DROPBOX_TOKEN" -H "Dropbox-API-Arg: {\"path\": \"/$SDE_TARBALL\"}" > $SDE_TARBALL
set -x
tar xvf $SDE_TARBALL
make -j2 testsuite-bin
cp $DIST_PATH/testsuite/input.general.fast input.general
cp $DIST_PATH/testsuite/input.operations.fast input.operations
TMP=`ldd ./test_libblis.x | grep ld | sed 's/^.*=> //'`
LD_SO=${TMP%% *}
TMP=`ldd ./test_libblis.x | grep libc | sed 's/^.*=> //'`
LIBC_SO=${TMP%% *}
TMP=`ldd ./test_libblis.x | grep libm | sed 's/^.*=> //'`
LIBM_SO=${TMP%% *}
for LIB in $LD_SO $LIBC_SO $LIBM_SO; do
$DIST_PATH/travis/patch-ld-so.py $LIB .tmp
chmod a+x .tmp
sudo mv .tmp $LIB
done
for ARCH in penryn sandybridge haswell skx knl piledriver steamroller excavator zen; do
if [ "$ARCH" = "knl" ]; then
$SDE -knl -- ./test_libblis.x > output.testsuite
else
$SDE -cpuid_in $DIST_PATH/travis/cpuid/$ARCH.def -- ./test_libblis.x > output.testsuite
fi
$DIST_PATH/build/check-blistest.sh ./output.testsuite
TMP=`grep "active sub-configuration" output.testsuite`
CONFIG=${TMP##* }
if [ "$CONFIG" != "$ARCH" ]; then
echo "Wrong configuration chosen:"
echo " Expected: $ARCH"
echo " Got: $CONFIG"
exit 1
fi
done