45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script to find which test causes crash
|
|
set -e
|
|
|
|
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
|
|
|
|
cd /home/robotics/anhnv/RobotNet10/srcs/RobotNet10/RobotApp/Communication/CeresSharp.Test
|
|
|
|
echo "=== Finding crashing test ==="
|
|
echo ""
|
|
|
|
# Get all test names
|
|
TESTS=$(dotnet test --list-tests 2>&1 | grep -E "^\s+[A-Z]" | sed 's/^\s*//')
|
|
|
|
CRASHED_TESTS=()
|
|
PASSED_TESTS=()
|
|
|
|
for test in $TESTS; do
|
|
echo -n "Testing: $test ... "
|
|
|
|
# Run test with timeout
|
|
if timeout 10 dotnet test --filter "FullyQualifiedName~$test" 2>&1 | grep -qE "(Passed|Failed.*0.*Passed.*1)"; then
|
|
echo "PASSED"
|
|
PASSED_TESTS+=("$test")
|
|
elif timeout 10 dotnet test --filter "FullyQualifiedName~$test" 2>&1 | grep -qE "(crash|Terminating|Aborted|SIGSEGV|SIGABRT)"; then
|
|
echo "CRASHED!"
|
|
CRASHED_TESTS+=("$test")
|
|
else
|
|
echo "UNKNOWN"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "=== Summary ==="
|
|
echo "Passed: ${#PASSED_TESTS[@]}"
|
|
echo "Crashed: ${#CRASHED_TESTS[@]}"
|
|
echo ""
|
|
if [ ${#CRASHED_TESTS[@]} -gt 0 ]; then
|
|
echo "Crashed tests:"
|
|
for test in "${CRASHED_TESTS[@]}"; do
|
|
echo " - $test"
|
|
done
|
|
fi
|
|
|