Skip to content

Commit 0769601

Browse files
authored
Configure classpath groups for test task. (#1227)
* Configure classpath groups for test task. Closes #1192 * Fix missing patch * Fix test
1 parent 7cc7cb0 commit 0769601

File tree

4 files changed

+51
-7
lines changed

4 files changed

+51
-7
lines changed

gradle/test.libs.versions.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ java-debug = "0.52.0"
77
mixin = "0.15.3+mixin.0.8.7"
88

99
gradle-nightly = "8.12-20241110002642+0000"
10-
fabric-loader = "0.16.5"
10+
fabric-loader = "0.16.9"
1111
fabric-installer = "1.0.1"
1212

1313
[libraries]

src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java

+24
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import static net.fabricmc.loom.util.Constants.Configurations;
2828

29+
import java.io.File;
2930
import java.io.IOException;
3031
import java.io.UncheckedIOException;
3132
import java.nio.charset.StandardCharsets;
@@ -34,6 +35,7 @@
3435
import java.time.Duration;
3536
import java.util.Optional;
3637
import java.util.function.Consumer;
38+
import java.util.stream.Collectors;
3739

3840
import javax.inject.Inject;
3941

@@ -47,6 +49,7 @@
4749
import org.gradle.api.tasks.TaskContainer;
4850
import org.gradle.api.tasks.compile.JavaCompile;
4951
import org.gradle.api.tasks.javadoc.Javadoc;
52+
import org.gradle.api.tasks.testing.Test;
5053

5154
import net.fabricmc.loom.LoomGradleExtension;
5255
import net.fabricmc.loom.api.InterfaceInjectionExtensionAPI;
@@ -128,6 +131,7 @@ public void run() {
128131
}
129132

130133
configureDecompileTasks(configContext);
134+
configureTestTask();
131135
});
132136

133137
finalizedBy("eclipse", "genEclipseRuns");
@@ -244,6 +248,26 @@ private void configureDecompileTasks(ConfigContext configContext) {
244248
.afterEvaluation();
245249
}
246250

251+
private void configureTestTask() {
252+
final LoomGradleExtension extension = LoomGradleExtension.get(getProject());
253+
254+
if (extension.getMods().isEmpty()) {
255+
return;
256+
}
257+
258+
getProject().getTasks().named(JavaPlugin.TEST_TASK_NAME, Test.class, test -> {
259+
String classPathGroups = extension.getMods().stream()
260+
.map(modSettings ->
261+
SourceSetHelper.getClasspath(modSettings, getProject()).stream()
262+
.map(File::getAbsolutePath)
263+
.collect(Collectors.joining(File.pathSeparator))
264+
)
265+
.collect(Collectors.joining(File.pathSeparator+File.pathSeparator));;
266+
267+
test.systemProperty("fabric.classPathGroups", classPathGroups);
268+
});
269+
}
270+
247271
private LockFile getLockFile() {
248272
final LoomGradleExtension extension = LoomGradleExtension.get(getProject());
249273
final Path cacheDirectory = extension.getFiles().getUserCache().toPath();

src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait {
4444
setup:
4545
def gradle = gradleProject(
4646
repo: "https://github.com/FabricMC/fabric.git",
47-
commit: "41bc64cd617f03d49ecc4a4f7788cb65d465415c",
47+
commit: "70277babddfaf52ee30013af94764da19473b3b1",
4848
version: version,
4949
patch: "fabric_api"
5050
)
@@ -58,7 +58,7 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait {
5858
""".stripIndent()
5959
}
6060

61-
def minecraftVersion = "1.21"
61+
def minecraftVersion = "1.21.4-pre3"
6262
def server = ServerRunner.create(gradle.projectDir, minecraftVersion)
6363
.withMod(gradle.getOutputFile("fabric-api-999.0.0.jar"))
6464

@@ -75,7 +75,7 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait {
7575
7676
dependencies {
7777
minecraft "com.mojang:minecraft:${minecraftVersion}"
78-
mappings "net.fabricmc:yarn:${minecraftVersion}+build.1:v2"
78+
mappings "net.fabricmc:yarn:${minecraftVersion}+build.2:v2"
7979
8080
modImplementation "net.fabricmc.fabric-api:fabric-api:999.0.0"
8181
}

src/test/resources/patches/fabric_api.patch

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
diff --git a/build.gradle b/build.gradle
2-
--- a/build.gradle (revision 41bc64cd617f03d49ecc4a4f7788cb65d465415c)
3-
+++ b/build.gradle (date 1718312645477)
2+
--- a/build.gradle (revision 70277babddfaf52ee30013af94764da19473b3b1)
3+
+++ b/build.gradle (date 1732875235843)
44
@@ -13,7 +13,7 @@
55

66
def ENV = System.getenv()
@@ -34,5 +34,25 @@ diff --git a/build.gradle b/build.gradle
3434
- return version + "+" + latestCommits.get(0).id.substring(0, 8) + DigestUtils.sha256Hex(project.rootProject.minecraft_version).substring(0, 2)
3535
+ return "999.0.0"
3636
}
37-
37+
3838
def getBranch() {
39+
@@ -247,19 +230,6 @@
40+
41+
test {
42+
useJUnitPlatform()
43+
-
44+
- afterEvaluate {
45+
- // See: https://github.com/FabricMC/fabric-loader/pull/585
46+
- def classPathGroups = loom.mods.stream()
47+
- .map { modSettings ->
48+
- SourceSetHelper.getClasspath(modSettings, getProject()).stream()
49+
- .map(File.&getAbsolutePath)
50+
- .collect(Collectors.joining(File.pathSeparator))
51+
- }
52+
- .collect(Collectors.joining(File.pathSeparator+File.pathSeparator))
53+
-
54+
- systemProperty("fabric.classPathGroups", classPathGroups)
55+
- }
56+
}
57+
58+
tasks.withType(ProcessResources).configureEach {

0 commit comments

Comments
 (0)