From aad95823844eb8319d3b25b6c8da34a715061c7a Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 12 Sep 2021 03:06:21 +0800 Subject: [PATCH] Fix some tests Signed-off-by: shedaniel --- build.gradle | 1 + .../loom/api/LoomGradleExtensionAPI.java | 3 +- .../loom/configuration/MavenPublication.java | 2 +- .../extension/LoomGradleExtensionApiImpl.java | 9 ++-- .../extension/MinecraftGradleExtension.java | 3 +- .../net/fabricmc/loom/util/ModPlatform.java | 2 - .../test/integration/FabricAPITest.groovy | 1 + .../test/integration/forge/Aw2AtTest.groovy | 10 ++-- .../integration/forge/LegacyAw2AtTest.groovy | 12 ++--- .../LayeredMappingSpecBuilderTest.groovy | 8 ++-- .../test/util/ArchiveAssertionsTrait.groovy | 46 ------------------- .../projects/minimalBase/build.gradle | 2 +- .../projects/mixinApAutoRefmap/build.gradle | 2 +- .../projects/mixinApSimple/build.gradle | 2 +- 14 files changed, 30 insertions(+), 73 deletions(-) delete mode 100644 src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy diff --git a/build.gradle b/build.gradle index f037b0ef..f16006bc 100644 --- a/build.gradle +++ b/build.gradle @@ -241,6 +241,7 @@ jacocoTestReport { test { maxHeapSize = "4096m" useJUnitPlatform() + maxParallelForks = Runtime.runtime.availableProcessors() ?: 1 } import me.shedaniel.javaversionbridge.BridgeTransformingTask diff --git a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java index bfa26a9e..eea65bf5 100644 --- a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java @@ -37,6 +37,7 @@ import org.gradle.api.file.ConfigurableFileCollection; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.provider.ListProperty; import org.gradle.api.provider.Property; +import org.gradle.api.provider.Provider; import org.gradle.api.tasks.SourceSet; import org.gradle.api.publish.maven.MavenPublication; import org.jetbrains.annotations.ApiStatus; @@ -219,7 +220,7 @@ public interface LoomGradleExtensionAPI { boolean isSilentMojangMappingsLicenseEnabled(); - Property getPlatform(); + Provider getPlatform(); default boolean isForge() { return getPlatform().get() == ModPlatform.FORGE; diff --git a/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java b/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java index 85672720..e7fe600d 100644 --- a/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java +++ b/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java @@ -95,7 +95,7 @@ public final class MavenPublication { if (hasSoftwareComponent(publication) || EXCLUDED_PUBLICATIONS.contains(publication)) { continue; - } else if (!reportedDeprecation.get()) { + } else if (!reportedDeprecation.get() && !LoomGradleExtension.get(project).isForge()) { DeprecationHelper deprecationHelper = LoomGradleExtension.get(project).getDeprecationHelper(); deprecationHelper.warn("Loom is applying dependency data manually to publications instead of using a software component (from(components[\"java\"])). This is deprecated and will be removed in Loom 0.12."); reportedDeprecation.set(true); diff --git a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java index c42246bf..4cbf8d23 100644 --- a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java +++ b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java @@ -46,6 +46,7 @@ import org.gradle.api.file.RegularFileProperty; import org.gradle.api.plugins.JavaPluginConvention; import org.gradle.api.provider.ListProperty; import org.gradle.api.provider.Property; +import org.gradle.api.provider.Provider; import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.tasks.SourceSet; @@ -91,7 +92,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA // =================== // Architectury Loom // =================== - private Property platform; + private Provider platform; public List mixinConfigs = new ArrayList<>(); // FORGE: Passed to Minecraft public Set accessTransformers = new HashSet<>(); public boolean useFabricMixin = true; // FORGE: Use Fabric Mixin for better refmap resolutions @@ -125,7 +126,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA this.versionParser = new ModVersionParser(project); this.deprecationHelper = new DeprecationHelper.ProjectBased(project); - this.platform = project.getObjects().property(ModPlatform.class).convention(project.provider(Suppliers.memoize(() -> { + this.platform = project.provider(Suppliers.memoize(() -> { Object platformProperty = project.findProperty(PLATFORM_PROPERTY); if (platformProperty != null) { @@ -140,7 +141,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA } return ModPlatform.FABRIC; - })::get)); + })::get); this.supportsInclude = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.findProperty(INCLUDE_PROPERTY)))); this.launchConfigs = project.container(LaunchProviderSettings.class, baseName -> new LaunchProviderSettings(project, baseName)); @@ -241,7 +242,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA } @Override - public Property getPlatform() { + public Provider getPlatform() { return platform; } diff --git a/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java b/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java index fcc8adb1..9397e17c 100644 --- a/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java @@ -37,6 +37,7 @@ import org.gradle.api.file.ConfigurableFileCollection; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.provider.ListProperty; import org.gradle.api.provider.Property; +import org.gradle.api.provider.Provider; import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.tasks.SourceSet; @@ -175,7 +176,7 @@ public class MinecraftGradleExtension implements LoomGradleExtensionAPI { } @Override - public Property getPlatform() { + public Provider getPlatform() { reportDeprecation(); return parent.getPlatform(); } diff --git a/src/main/java/net/fabricmc/loom/util/ModPlatform.java b/src/main/java/net/fabricmc/loom/util/ModPlatform.java index e10e93d3..0f7ce897 100644 --- a/src/main/java/net/fabricmc/loom/util/ModPlatform.java +++ b/src/main/java/net/fabricmc/loom/util/ModPlatform.java @@ -41,8 +41,6 @@ public enum ModPlatform { } public static void assertPlatform(LoomGradleExtensionAPI extension, ModPlatform platform) { - extension.getPlatform().finalizeValue(); - if (extension.getPlatform().get() != platform) { String msg = "Loom is not running on %s.%nYou can switch to it by adding 'loom.platform = %s' to your gradle.properties"; String name = platform.name().toLowerCase(Locale.ROOT); diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy index cbefa2e0..a477d456 100644 --- a/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy @@ -51,6 +51,7 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait { // Set the version to something constant gradle.buildGradle.text = gradle.buildGradle.text.replace('Globals.baseVersion + "+" + (ENV.GITHUB_RUN_NUMBER ? "" : "local-") + getBranch()', "\"$API_VERSION\"") + .replace('id "fabric-loom"', 'id "dev.architectury.loom"') def server = ServerRunner.create(gradle.projectDir, "1.17.1") .withMod(gradle.getOutputFile("fabric-api-${API_VERSION}.jar")) diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy index 41993e61..734616f1 100644 --- a/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy @@ -24,26 +24,26 @@ package net.fabricmc.loom.test.integration.forge -import net.fabricmc.loom.test.util.ArchiveAssertionsTrait import net.fabricmc.loom.test.util.GradleProjectTestTrait import spock.lang.Specification +import static net.fabricmc.loom.test.LoomTestConstants.* import static org.gradle.testkit.runner.TaskOutcome.SUCCESS -class Aw2AtTest extends Specification implements GradleProjectTestTrait, ArchiveAssertionsTrait { +class Aw2AtTest extends Specification implements GradleProjectTestTrait { def build() { setup: - def gradle = gradleProject(project: "forge/aw2At", version: version) + def gradle = gradleProject(project: "forge/aw2At", version: DEFAULT_GRADLE) when: def result = gradle.run(task: "build") then: result.task(":build").outcome == SUCCESS - getArchiveEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected().replaceAll('\r', '') + gradle.getOutputZipEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected(gradle).replaceAll('\r', '') } String expected() { - return new File(testProjectDir, "expected.accesstransformer.cfg").text + return new File(gradle.projectDir, "expected.accesstransformer.cfg").text } } diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy index 4c40846b..ab5f2c0f 100644 --- a/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy @@ -24,26 +24,26 @@ package net.fabricmc.loom.test.integration.forge -import net.fabricmc.loom.test.util.ArchiveAssertionsTrait import net.fabricmc.loom.test.util.GradleProjectTestTrait import spock.lang.Specification +import static net.fabricmc.loom.test.LoomTestConstants.* import static org.gradle.testkit.runner.TaskOutcome.SUCCESS -class LegacyAw2AtTest extends Specification implements GradleProjectTestTrait, ArchiveAssertionsTrait { +class LegacyAw2AtTest extends Specification implements GradleProjectTestTrait { def build() { setup: - def gradle = gradleProject(project: "forge/legacyAw2At", version: version) + def gradle = gradleProject(project: "forge/legacyAw2At", version: DEFAULT_GRADLE) when: def result = gradle.run(task: "build") then: result.task(":build").outcome == SUCCESS - getArchiveEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected().replaceAll('\r', '') + gradle.getOutputZipEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected(gradle).replaceAll('\r', '') } - String expected() { - return new File(testProjectDir, "expected.accesstransformer.cfg").text + String expected(gradle) { + return new File(gradle.projectDir, "expected.accesstransformer.cfg").text } } diff --git a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy index f0537a2f..cfcb8a2e 100644 --- a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy @@ -40,7 +40,7 @@ class LayeredMappingSpecBuilderTest extends LayeredMappingsSpecification { } def layers = spec.layers() then: - spec.getVersion(mappingContext) == "layered+hash.2198.minecraft.null" + spec.getVersion() == "layered+hash.2198" layers.size() == 2 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec @@ -55,7 +55,7 @@ class LayeredMappingSpecBuilderTest extends LayeredMappingsSpecification { def layers = spec.layers() def parchment = layers[2] as ParchmentMappingsSpec then: - spec.getVersion(mappingContext) == "layered+hash.863752751.minecraft.null" + spec.getVersion() == "layered+hash.863752751" layers.size() == 3 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec @@ -75,7 +75,7 @@ class LayeredMappingSpecBuilderTest extends LayeredMappingsSpecification { def layers = spec.layers() def parchment = layers[2] as ParchmentMappingsSpec then: - spec.getVersion(mappingContext) == "layered+hash.863752757.minecraft.null" + spec.getVersion() == "layered+hash.863752757" layers.size() == 3 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec @@ -95,7 +95,7 @@ class LayeredMappingSpecBuilderTest extends LayeredMappingsSpecification { def layers = spec.layers() def parchment = layers[2] as ParchmentMappingsSpec then: - spec.getVersion(mappingContext) == "layered+hash.1144427140.minecraft.null" + spec.getVersion() == "layered+hash.1144427140" layers.size() == 3 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec diff --git a/src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy b/src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy deleted file mode 100644 index 4ba008c1..00000000 --- a/src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is part of fabric-loom, licensed under the MIT License (MIT). - * - * Copyright (c) 2016-2021 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.util - -import org.zeroturnaround.zip.ZipUtil - -trait ArchiveAssertionsTrait { - String getArchiveEntry(String name, String entry, String project = "") { - def file = getOutputFile(name, project) - - def bytes = ZipUtil.unpackEntry(file, entry) - - if (bytes == null) { - throw new FileNotFoundException("Could not find ${entry} in ${name}") - } - - new String(bytes as byte[]) - } - - boolean hasArchiveEntry(String name, String entry, String project = "") { - def file = getOutputFile(name, project) - ZipUtil.unpackEntry(file, entry) != null - } -} diff --git a/src/test/resources/projects/minimalBase/build.gradle b/src/test/resources/projects/minimalBase/build.gradle index 8fbea237..b42aa7ff 100644 --- a/src/test/resources/projects/minimalBase/build.gradle +++ b/src/test/resources/projects/minimalBase/build.gradle @@ -1,7 +1,7 @@ // This is used by a range of tests that append to this file before running the gradle tasks. // Can be used for tests that require minimal custom setup plugins { - id 'fabric-loom' + id 'dev.architectury.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/mixinApAutoRefmap/build.gradle b/src/test/resources/projects/mixinApAutoRefmap/build.gradle index e425043f..df55bc40 100644 --- a/src/test/resources/projects/mixinApAutoRefmap/build.gradle +++ b/src/test/resources/projects/mixinApAutoRefmap/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' + id 'dev.architectury.loom' id 'com.github.johnrengelman.shadow' version '7.0.0' id 'maven-publish' } diff --git a/src/test/resources/projects/mixinApSimple/build.gradle b/src/test/resources/projects/mixinApSimple/build.gradle index f641e66b..72f51f63 100644 --- a/src/test/resources/projects/mixinApSimple/build.gradle +++ b/src/test/resources/projects/mixinApSimple/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' + id 'dev.architectury.loom' id 'maven-publish' }