Skip to content

Commit 3bc97bf

Browse files
committed
Distinguish failure types: javac, native-test
1 parent ed0268b commit 3bc97bf

File tree

5 files changed

+117
-11
lines changed

5 files changed

+117
-11
lines changed

.github/workflows/check-new-library-versions-in-batch.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
env:
6161
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6262
ISSUE_TITLE_PREFIX: "[Automation] Testing failed for library: "
63-
ISSUE_BODY_PREFIX: "First failing version: "
63+
ISSUE_BODY_PREFIX: "Failure kind: "
6464
strategy:
6565
fail-fast: false
6666
matrix:
@@ -93,11 +93,10 @@ jobs:
9393
readarray -t VERSIONS < <(echo '${{ toJson(matrix.item.versions) }}' | jq -r '.[]')
9494
FIRST_TESTING_VERSION="${VERSIONS[0]}"
9595
96-
TITLE="${{ env.ISSUE_TITLE_PREFIX }}$GROUP_ID:$ARTIFACT_ID"
97-
BODY="${{ env.ISSUE_BODY_PREFIX }}$GROUP_ID:$ARTIFACT_ID:$FIRST_TESTING_VERSION"
96+
TITLE="${{ env.ISSUE_TITLE_PREFIX }}$GROUP_ID:$ARTIFACT_ID:$FIRST_TESTING_VERSION"
9897
9998
ISSUE_NUMBER=$(gh issue list --repo "${{ github.repository }}" --state open --search "$TITLE" --json number,title,body --jq \
100-
'.[] | select(.title == "'"$TITLE"'") | select(.body == "'"$BODY"'") | .number')
99+
'.[] | select(.title == "'"$TITLE"'") | .number')
101100
102101
if [[ -n "$ISSUE_NUMBER" ]]; then
103102
echo "There is no progress since last time this version was tested. Skipping further steps."
@@ -140,9 +139,8 @@ jobs:
140139
cat successful_versions.txt >> $GITHUB_OUTPUT
141140
echo "EOF" >> $GITHUB_OUTPUT
142141
143-
# Extract failed version
144-
FAILED_VERSION=$(grep "^FAILED:" test_results.txt | sed 's/FAILED://g')
145-
echo "failed_version=$FAILED_VERSION" >> $GITHUB_OUTPUT
142+
# Extract failure type and failed version
143+
awk -F'[][]|:' '/^FAILED/ {print "failure_type="$2; print "failed_version="$4}' test_results.txt >> $GITHUB_OUTPUT
146144
147145
- name: "✔️ New library versions are supported (with locks, waiting and retries)"
148146
if: steps.runtests.outputs.successful_versions != ''
@@ -200,8 +198,8 @@ jobs:
200198
201199
FAILED_VERSION="${{ steps.runtests.outputs.failed_version }}"
202200
REPO="${{ github.repository }}"
203-
TITLE="${{ env.ISSUE_TITLE_PREFIX }}${{ matrix.item.name }}"
204-
BODY="${{ env.ISSUE_BODY_PREFIX }}${{ matrix.item.name }}:$FAILED_VERSION"
201+
TITLE="${{ env.ISSUE_TITLE_PREFIX }}${{ matrix.item.name }}:$FAILED_VERSION"
202+
BODY="${{ env.ISSUE_BODY_PREFIX }}${{ steps.runtests.outputs.failure_type }}"
205203
206204
ISSUE_NUMBER=$(gh issue list --repo "$REPO" --state open --search "$TITLE" --json number,title --jq '.[] | select(.title == "'"$TITLE"'") | .number')
207205
if [ -n "$ISSUE_NUMBER" ]; then

.github/workflows/run-consecutive-tests.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,19 @@ VERSIONS_JSON="${VERSIONS_JSON%"${VERSIONS_JSON##*[!\']}"}"
2020
readarray -t VERSIONS < <(echo "$VERSIONS_JSON" | jq -r '.[]')
2121

2222
for VERSION in "${VERSIONS[@]}"; do
23+
# check if javac works for the new version
24+
GVM_TCK_LV="$VERSION" ./gradlew clean javac -Pcoordinates="$TEST_COORDINATES"
25+
RESULT=$?
26+
if [ "$RESULT" -ne 0 ]; then
27+
echo "FAILED [javac]:$VERSION"
28+
break
29+
fi
30+
2331
echo "Running test with GVM_TCK_LV=$VERSION and coordinates=$TEST_COORDINATES"
2432
GVM_TCK_LV="$VERSION" ./gradlew test -Pcoordinates="$TEST_COORDINATES"
2533
RESULT=$?
26-
2734
ATTEMPTS=1
35+
2836
# maybe we failed because the test was flaky => try two more times to be sure
2937
while [ "$RESULT" -ne 0 ] && [ $ATTEMPTS -le 2 ]; do
3038
echo "Re-running the test with GVM_TCK_LV=$VERSION and coordinates=$TEST_COORDINATES"
@@ -36,7 +44,7 @@ for VERSION in "${VERSIONS[@]}"; do
3644
if [ "$RESULT" -eq 0 ]; then
3745
echo "PASSED:$VERSION"
3846
else
39-
echo "FAILED:$VERSION"
47+
echo "FAILED [native-test]:$VERSION"
4048
break
4149
fi
4250
done

tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import org.graalvm.internal.tck.TestedVersionUpdaterTask
1919
import org.graalvm.internal.tck.harness.tasks.TestInvocationTask
2020
import org.graalvm.internal.tck.harness.tasks.CheckstyleInvocationTask
2121
import org.graalvm.internal.tck.harness.tasks.CleanInvocationTask
22+
import org.graalvm.internal.tck.harness.tasks.JavacInvocationTask
23+
import org.graalvm.internal.tck.harness.tasks.JavaTestInvocationTask
2224
import org.graalvm.internal.tck.updaters.FetchExistingLibrariesWithNewerVersionsTask
2325
import org.graalvm.internal.tck.updaters.GroupUnsupportedLibraries
2426

@@ -43,6 +45,18 @@ Provider<Task> checkstyle = tasks.register("checkstyle") { task ->
4345
task.setGroup(JavaBasePlugin.VERIFICATION_GROUP)
4446
}
4547

48+
// gradle javac -Pcoordinates=<maven-coordinates>
49+
Provider<Task> javac = tasks.register("javac") { task ->
50+
task.setDescription("Compiles sources (javac) for all subprojects")
51+
task.setGroup(LifecycleBasePlugin.BUILD_GROUP)
52+
}
53+
54+
// gradle javaTest -Pcoordinates=<maven-coordinates>
55+
Provider<Task> javaTest = tasks.register("javaTest") { task ->
56+
task.setDescription("Runs JVM tests (Gradle 'test') for all subprojects")
57+
task.setGroup(JavaBasePlugin.VERIFICATION_GROUP)
58+
}
59+
4660
tasks.named("check").configure {
4761
dependsOn(checkstyle)
4862
}
@@ -72,6 +86,22 @@ for (String coordinates in matchingCoordinates) {
7286
clean.configure {
7387
dependsOn(cleanTaskName)
7488
}
89+
90+
String javacTaskName = generateTaskName("javac", coordinates)
91+
if ((!tasks.getNames().contains(javacTaskName))) {
92+
tasks.register(javacTaskName, JavacInvocationTask, coordinates)
93+
}
94+
javac.configure {
95+
dependsOn(javacTaskName)
96+
}
97+
98+
String javaTestTaskName = generateTaskName("javaTest", coordinates)
99+
if ((!tasks.getNames().contains(javaTestTaskName))) {
100+
tasks.register(javaTestTaskName, JavaTestInvocationTask, coordinates)
101+
}
102+
javaTest.configure {
103+
dependsOn(javaTestTaskName)
104+
}
75105
}
76106

77107
// gradle diff -PbaseCommit=<base-commit> -PnewCommit=<new-commit>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright and related rights waived via CC0
3+
*
4+
* You should have received a copy of the CC0 legalcode along with this
5+
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
6+
*/
7+
8+
package org.graalvm.internal.tck.harness.tasks
9+
10+
import org.gradle.api.tasks.Input
11+
12+
import javax.inject.Inject
13+
/**
14+
* Task that is used to run JVM tests (Gradle 'test') on subprojects.
15+
*/
16+
@SuppressWarnings("unused")
17+
abstract class JavaTestInvocationTask extends AbstractSubprojectTask {
18+
19+
@Inject
20+
JavaTestInvocationTask(String coordinates) {
21+
super(coordinates)
22+
}
23+
24+
@Override
25+
@Input
26+
List<String> getCommand() {
27+
return [tckExtension.repoRoot.get().asFile.toPath().resolve("gradlew").toString(), "test"]
28+
}
29+
30+
@Override
31+
protected String getErrorMessage(int exitCode) {
32+
"Java tests failed"
33+
}
34+
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright and related rights waived via CC0
3+
*
4+
* You should have received a copy of the CC0 legalcode along with this
5+
* work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
6+
*/
7+
8+
package org.graalvm.internal.tck.harness.tasks
9+
10+
import org.gradle.api.tasks.Input
11+
12+
import javax.inject.Inject
13+
/**
14+
* Task that is used to compile subprojects with javac.
15+
*/
16+
@SuppressWarnings("unused")
17+
abstract class JavacInvocationTask extends AbstractSubprojectTask {
18+
19+
@Inject
20+
JavacInvocationTask(String coordinates) {
21+
super(coordinates)
22+
}
23+
24+
@Override
25+
@Input
26+
List<String> getCommand() {
27+
return [tckExtension.repoRoot.get().asFile.toPath().resolve("gradlew").toString(), "compileTestJava"]
28+
}
29+
30+
@Override
31+
protected String getErrorMessage(int exitCode) {
32+
"Compilation failed"
33+
}
34+
35+
}

0 commit comments

Comments
 (0)