From 91388d507b3290f8d2375ee367eab0e7c770618c Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 12 Oct 2023 22:29:07 +0800 Subject: [PATCH] Add NeoForge test --- .../test/integration/forge/ForgeTest.groovy | 4 ++ .../integration/forge/NeoForgeTest.groovy | 56 +++++++++++++++++++ .../projects/forge/simple/build.gradle | 4 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/test/groovy/net/fabricmc/loom/test/integration/forge/NeoForgeTest.groovy diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/forge/ForgeTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/forge/ForgeTest.groovy index 68de1b705..7bd14046b 100644 --- a/src/test/groovy/net/fabricmc/loom/test/integration/forge/ForgeTest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/integration/forge/ForgeTest.groovy @@ -40,6 +40,8 @@ class ForgeTest extends Specification implements GradleProjectTestTrait { gradle.buildGradle.text = gradle.buildGradle.text.replace('@MCVERSION@', mcVersion) .replace('@FORGEVERSION@', forgeVersion) .replace('@MAPPINGS@', mappings) + .replace('@REPOSITORIES@', '') + .replace('@PACKAGE@', 'net.minecraftforge:forge') when: def result = gradle.run(task: "build") @@ -49,6 +51,8 @@ class ForgeTest extends Specification implements GradleProjectTestTrait { where: mcVersion | forgeVersion | mappings + '1.20.1' | "47.2.1" | "loom.officialMojangMappings()" + '1.20.1' | "47.2.1" | "'net.fabricmc:yarn:1.19.4+build.2:v2'" '1.19.4' | "45.0.43" | "loom.officialMojangMappings()" '1.19.4' | "45.0.43" | "'net.fabricmc:yarn:1.19.4+build.2:v2'" '1.18.1' | "39.0.63" | "loom.officialMojangMappings()" diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/forge/NeoForgeTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/forge/NeoForgeTest.groovy new file mode 100644 index 000000000..c5f8b7f0b --- /dev/null +++ b/src/test/groovy/net/fabricmc/loom/test/integration/forge/NeoForgeTest.groovy @@ -0,0 +1,56 @@ +/* + * This file is part of fabric-loom, licensed under the MIT License (MIT). + * + * Copyright (c) 2021-2023 FabricMC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package net.fabricmc.loom.test.integration.forge + +import net.fabricmc.loom.test.util.GradleProjectTestTrait +import spock.lang.Specification +import spock.lang.Unroll + +import static net.fabricmc.loom.test.LoomTestConstants.DEFAULT_GRADLE +import static org.gradle.testkit.runner.TaskOutcome.SUCCESS + +class NeoForgeTest extends Specification implements GradleProjectTestTrait { + @Unroll + def "build #mcVersion #forgeVersion #mappings"() { + setup: + def gradle = gradleProject(project: "forge/simple", version: DEFAULT_GRADLE) + gradle.buildGradle.text = gradle.buildGradle.text.replace('@MCVERSION@', mcVersion) + .replace('@FORGEVERSION@', forgeVersion) + .replace('@MAPPINGS@', mappings) + .replace('@REPOSITORIES@', 'maven { url "https://maven.neoforged.net/releases/" }') + .replace('@PACKAGE@', 'net.neoforged:forge') + + when: + def result = gradle.run(task: "build") + + then: + result.task(":build").outcome == SUCCESS + + where: + mcVersion | forgeVersion | mappings + '1.20.1' | "47.1.79" | "loom.officialMojangMappings()" + '1.20.1' | "47.1.79" | "'net.fabricmc:yarn:1.20.1+build.1:v2'" + } +} diff --git a/src/test/resources/projects/forge/simple/build.gradle b/src/test/resources/projects/forge/simple/build.gradle index 1f540a39b..895a65ce2 100644 --- a/src/test/resources/projects/forge/simple/build.gradle +++ b/src/test/resources/projects/forge/simple/build.gradle @@ -24,13 +24,15 @@ repositories { // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. + + @REPOSITORIES@ } dependencies { // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:$mcVersion" mappings @MAPPINGS@ - forge "net.minecraftforge:forge:$mcVersion-$forgeVersion" + forge "@PACKAGE@:$mcVersion-$forgeVersion" } tasks.withType(JavaCompile).configureEach {