2015-11-24 17:47:33 -08:00
#!/usr/bin/env bash
#
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
set -e
SOURCE = " ${ BASH_SOURCE [0] } "
while [ -h " $SOURCE " ] ; do # resolve $SOURCE until the file is no longer a symlink
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
SOURCE = " $( readlink " $SOURCE " ) "
2015-12-28 11:47:21 -08:00
[ [ " $SOURCE " != /* ] ] && SOURCE = " $DIR / $SOURCE " # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
2015-11-24 17:47:33 -08:00
done
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
2015-12-28 11:47:21 -08:00
source " $DIR /../common/_common.sh "
2015-12-14 17:39:29 -08:00
2016-01-29 19:04:18 -08:00
TestProjects = $( loadTestProjectList)
TestScripts = $( loadTestScriptList)
2015-12-14 17:39:29 -08:00
2016-01-29 19:04:18 -08:00
failedTests = ( )
failCount = 0
2016-01-22 14:02:08 -08:00
2016-01-29 19:04:18 -08:00
# Copy TestProjects to $TEST_BIN_ROOT
mkdir -p " $TEST_BIN_ROOT /TestProjects "
cp -a $REPOROOT /test/TestProjects/* $TEST_BIN_ROOT /TestProjects
2015-12-16 13:04:29 -08:00
2016-01-29 19:04:18 -08:00
pushd " $TEST_BIN_ROOT "
2015-12-16 13:04:29 -08:00
set +e
2016-01-23 12:55:03 -08:00
for project in $TestProjects
2015-12-14 17:39:29 -08:00
do
2016-02-02 12:17:56 -08:00
# This is a workaroudn for issue #1184, where dotnet test needs to be executed from the folder containing the project.json.
pushd " $REPOROOT /test/ $project "
dotnet test -xml " $TEST_BIN_ROOT \$project-testResults.xml " -notrait category = failing
popd
2015-12-16 13:04:29 -08:00
exitCode = $?
failCount += $exitCode
if [ $exitCode -ne 0 ] ; then
2016-01-12 08:46:33 -08:00
failedTests += ( " ${ project } .dll " )
2015-12-16 13:04:29 -08:00
fi
done
2016-01-23 12:55:03 -08:00
popd
for script in $TestScripts
2016-01-29 19:04:18 -08:00
do
scriptName = ${ script } .sh
2016-01-23 12:55:03 -08:00
" $REPOROOT /scripts/test/ ${ scriptName } "
2016-01-22 14:02:08 -08:00
exitCode = $?
if [ $exitCode -ne 0 ] ; then
2016-01-23 12:55:03 -08:00
failedTests += ( " $scriptName " )
2016-01-22 16:31:35 -08:00
failCount += 1
2016-01-22 14:02:08 -08:00
fi
done
2016-01-06 02:27:16 -08:00
2015-12-16 13:04:29 -08:00
for test in ${ failedTests [@] }
do
2016-01-29 19:04:18 -08:00
error " $test failed. Logs in ' $TEST_BIN_ROOT / ${ test } -testResults.xml' "
2015-12-14 17:39:29 -08:00
done
2015-12-16 13:04:29 -08:00
set -e
exit $failCount