2023-09-29 10:32:31 -04:00
|
|
|
#!/bin/bash
|
|
|
|
|
# Run tests (run from Dockerfile)
|
|
|
|
|
|
2024-01-09 12:43:29 -05:00
|
|
|
export UE_DOTNET_VERSION=net8.0
|
|
|
|
|
|
2023-09-29 10:32:31 -04:00
|
|
|
# Start Redis and MongoDB in the background for tests to use
|
|
|
|
|
redis-server --save "" --appendonly no --daemonize yes || exit 1
|
|
|
|
|
mongod --noauth --quiet --fork --dbpath /tmp/mongodb --logpath /tmp/mongod.log || exit 1
|
|
|
|
|
|
|
|
|
|
testProjects=(
|
|
|
|
|
"Source/Programs/Shared/EpicGames.BuildGraph.Tests/EpicGames.BuildGraph.Tests.csproj"
|
|
|
|
|
"Source/Programs/Shared/EpicGames.Core.Tests/EpicGames.Core.Tests.csproj"
|
|
|
|
|
"Source/Programs/Shared/EpicGames.Horde.Tests/EpicGames.Horde.Tests.csproj"
|
|
|
|
|
"Source/Programs/Shared/EpicGames.IoHash.Tests/EpicGames.IoHash.Tests.csproj"
|
|
|
|
|
"Source/Programs/Shared/EpicGames.Redis.Tests/EpicGames.Redis.Tests.csproj"
|
|
|
|
|
"Source/Programs/Shared/EpicGames.Serialization.Tests/EpicGames.Serialization.Tests.csproj"
|
|
|
|
|
"Source/Programs/Horde/Horde.Server.Tests/Horde.Server.Tests.csproj"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
for csProj in "${testProjects[@]}"; do
|
|
|
|
|
filename="${csProj##*/}"
|
2023-09-29 12:43:46 -04:00
|
|
|
args=("test")
|
2023-09-29 10:32:31 -04:00
|
|
|
if [ "$code_coverage" = "true" ]; then
|
2023-09-29 12:43:46 -04:00
|
|
|
args=(dotcover test --dcOutput=/tmp/${filename}.dcvr --dcFilters="+:EpicGames*;+:Horde*;-:*.Tests")
|
2023-09-29 10:32:31 -04:00
|
|
|
fi
|
2023-12-01 10:22:30 -05:00
|
|
|
dotnet "${args[@]}" "$csProj" --blame-hang-timeout 5m --blame-hang-dump-type mini --logger 'console;verbosity=normal' || exit 1
|
2023-09-29 10:32:31 -04:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
mkdir /tmp/dotcover-report
|
|
|
|
|
touch /tmp/empty
|
|
|
|
|
if [ "$code_coverage" = "true" ]; then
|
|
|
|
|
dotnet dotcover merge --source=/tmp/*.dcvr --output=/tmp/dotcover-merged.dcvr
|
|
|
|
|
dotnet dotcover report --source=/tmp/dotcover-merged.dcvr --output=/tmp/dotcover-report/report.html:/tmp/dotcover-report/report.json --reportType=HTML,JSON
|
|
|
|
|
zip -r /tmp/dotcover-report/dotcover-report.zip /tmp/dotcover-report
|
|
|
|
|
fi
|