Skip to content

Commit 7480068

Browse files
authored
Merge pull request #93 from oSoMoN/upstream-test-suite-skipped-tests-issue92
Upstream test suite: correctly handle tests that are skipped (fixes #92)
2 parents 763074a + f75c187 commit 7480068

File tree

1 file changed

+30
-22
lines changed

1 file changed

+30
-22
lines changed

tests/run-upstream-testsuite.sh

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ total=$(echo "$tests" | wc -w)
7676
echo "Running $total tests"
7777
export LC_ALL=C
7878
export KEEP=yes
79-
exitcode=0
8079
timestamp=$(date -Iseconds)
8180
urlroot="$gitserver/cgit/diffutils.git/tree/tests/"
8281
passed=0
@@ -91,31 +90,39 @@ do
9190
# because other binaries aren't implemented yet
9291
if ! grep -E -s -q "(diff3|sdiff)" "$test"
9392
then
94-
sh "$test" 1> stdout.txt 2> stderr.txt && result="PASS" || exitcode=1
95-
json+="{\"test\":\"$test\",\"result\":\"$result\","
96-
json+="\"url\":\"$url\","
97-
json+="\"stdout\":\"$(base64 -w0 < stdout.txt)\","
98-
json+="\"stderr\":\"$(base64 -w0 < stderr.txt)\","
99-
json+="\"files\":{"
100-
cd gt-$test.*
101-
# Note: this doesn't include the contents of subdirectories,
102-
# but there isn't much value added in doing so
103-
for file in *
104-
do
105-
[[ -f "$file" ]] && json+="\"$file\":\"$(base64 -w0 < "$file")\","
106-
done
107-
json="${json%,}}},"
108-
cd - > /dev/null
109-
[[ "$result" = "PASS" ]] && (( passed++ ))
110-
[[ "$result" = "FAIL" ]] && (( failed++ ))
93+
sh "$test" 1> stdout.txt 2> stderr.txt && result="PASS"
94+
if [[ $? = 77 ]]
95+
then
96+
result="SKIP"
97+
else
98+
json+="{\"test\":\"$test\",\"result\":\"$result\","
99+
json+="\"url\":\"$url\","
100+
json+="\"stdout\":\"$(base64 -w0 < stdout.txt)\","
101+
json+="\"stderr\":\"$(base64 -w0 < stderr.txt)\","
102+
json+="\"files\":{"
103+
cd gt-$test.*
104+
# Note: this doesn't include the contents of subdirectories,
105+
# but there isn't much value added in doing so
106+
for file in *
107+
do
108+
[[ -f "$file" ]] && json+="\"$file\":\"$(base64 -w0 < "$file")\","
109+
done
110+
json="${json%,}}},"
111+
cd - > /dev/null
112+
[[ "$result" = "PASS" ]] && (( passed++ ))
113+
[[ "$result" = "FAIL" ]] && (( failed++ ))
114+
fi
111115
else
112116
result="SKIP"
113-
(( skipped++ ))
114-
json+="{\"test\":\"$test\",\"url\":\"$url\",\"result\":\"$result\"},"
115117
fi
116118
color=2 # green
117119
[[ "$result" = "FAIL" ]] && color=1 # red
118-
[[ "$result" = "SKIP" ]] && color=3 # yellow
120+
if [[ $result = "SKIP" ]]
121+
then
122+
(( skipped++ ))
123+
json+="{\"test\":\"$test\",\"url\":\"$url\",\"result\":\"$result\"},"
124+
color=3 # yellow
125+
fi
119126
printf " %-40s $(tput setaf $color)$result$(tput sgr0)\n" "$test"
120127
done
121128
echo ""
@@ -143,4 +150,5 @@ resultsfile="test-results.json"
143150
echo "$json" | jq > "$resultsfile"
144151
echo "Results written to $scriptpath/$resultsfile"
145152

146-
exit $exitcode
153+
(( failed > 0 )) && exit 1
154+
exit 0

0 commit comments

Comments
 (0)