From a05a2b40b6b92bbc613661d9406521ed1f599d6e Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Wed, 29 May 2024 06:53:19 -0400 Subject: [PATCH 1/9] Add gametest for startup configs Requires https://github.com/neoforged/FancyModLoader/pull/150#issuecomment-2134028746 to be merged before gametest merge --- .../neoforge/debug/fml/StartupConfigTest.java | 72 +++++++++++++++++++ .../resources/META-INF/neoforge.mods.toml | 5 +- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java diff --git a/tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java b/tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java new file mode 100644 index 0000000000..2329b5976e --- /dev/null +++ b/tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) NeoForged and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.neoforged.neoforge.debug.fml; + +import net.minecraft.gametest.framework.GameTest; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.config.ModConfig; +import net.neoforged.neoforge.common.ModConfigSpec; +import net.neoforged.testframework.annotation.TestHolder; +import net.neoforged.testframework.gametest.EmptyTemplate; +import net.neoforged.testframework.gametest.ExtendedGameTestHelper; + +public class StartupConfigTest { + private static final String MOD_ID = "startup_config_test"; + private static boolean WasLoadedAtInitStartupConfig = false; + private static boolean WasLoadedAtInitCommonConfig = false; + private static boolean WasLoadedAtInitServerConfig = false; + private static boolean WasLoadedAtInitClientConfig = false; + + @GameTest + @EmptyTemplate + @TestHolder(description = "Tests the initial loading state of configs") + static void testStartupConfigs(ExtendedGameTestHelper helper) { + helper.assertTrue(WasLoadedAtInitStartupConfig, "Startup Config was supposed to be loaded at mod init."); + helper.assertFalse(WasLoadedAtInitCommonConfig, "Common Config was NOT supposed to be loaded at mod init."); + helper.assertFalse(WasLoadedAtInitServerConfig, "Server Config was NOT supposed to be loaded at mod init."); + helper.assertFalse(WasLoadedAtInitClientConfig, "Client Config was NOT supposed to be loaded at mod init."); + helper.succeed(); + } + + @Mod(value = MOD_ID) + public static class StartupConfigTestMod { + public StartupConfigTestMod(ModContainer modContainer) { + modContainer.registerConfig(ModConfig.Type.STARTUP, StartupConfig.SPEC); + modContainer.registerConfig(ModConfig.Type.COMMON, CommonConfig.SPEC); + modContainer.registerConfig(ModConfig.Type.SERVER, ServerConfig.SPEC); + modContainer.registerConfig(ModConfig.Type.CLIENT, ClientConfig.SPEC); + WasLoadedAtInitStartupConfig = StartupConfig.SPEC.isLoaded(); + WasLoadedAtInitCommonConfig = CommonConfig.SPEC.isLoaded(); + WasLoadedAtInitServerConfig = ServerConfig.SPEC.isLoaded(); + WasLoadedAtInitClientConfig = ClientConfig.SPEC.isLoaded(); + } + + public static class StartupConfig { + private static final ModConfigSpec.Builder BUILDER = new ModConfigSpec.Builder(); + private static final ModConfigSpec.BooleanValue TEST_MARKER = BUILDER.define("testMarker1", true); + static final ModConfigSpec SPEC = BUILDER.build(); + } + + public static class CommonConfig { + private static final ModConfigSpec.Builder BUILDER = new ModConfigSpec.Builder(); + private static final ModConfigSpec.BooleanValue TEST_MARKER = BUILDER.define("testMarker2", true); + static final ModConfigSpec SPEC = BUILDER.build(); + } + + public static class ServerConfig { + private static final ModConfigSpec.Builder BUILDER = new ModConfigSpec.Builder(); + private static final ModConfigSpec.BooleanValue TEST_MARKER = BUILDER.define("testMarker3", true); + static final ModConfigSpec SPEC = BUILDER.build(); + } + + public static class ClientConfig { + private static final ModConfigSpec.Builder BUILDER = new ModConfigSpec.Builder(); + private static final ModConfigSpec.BooleanValue TEST_MARKER = BUILDER.define("testMarker4", true); + static final ModConfigSpec SPEC = BUILDER.build(); + } + } +} diff --git a/tests/src/main/resources/META-INF/neoforge.mods.toml b/tests/src/main/resources/META-INF/neoforge.mods.toml index 70d23d99cb..4fcaf7d043 100644 --- a/tests/src/main/resources/META-INF/neoforge.mods.toml +++ b/tests/src/main/resources/META-INF/neoforge.mods.toml @@ -35,7 +35,10 @@ license="LGPL v2.1" modId="finalize_spawn_fix_test" [[mods]] - modId="multiple_entrypoints_test" +modId="multiple_entrypoints_test" + +[[mods]] + modId="startup_config_test" [[mods]] modId="ordered_test_1" From 9be4a04f44299a16cfaddd15d5c6c602b905f25f Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Wed, 29 May 2024 07:00:18 -0400 Subject: [PATCH 2/9] Temporary setup of FML PR for testing --- gradle.properties | 2 +- projects/neoforge/build.gradle | 12 ++++++++++++ testframework/build.gradle | 12 ++++++++++++ tests/build.gradle | 12 ++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e2dbeff7ab..b4c61bba00 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ jetbrains_annotations_version=24.0.1 slf4j_api_version=2.0.7 apache_maven_artifact_version=3.8.5 jarjar_version=0.4.0 -fancy_mod_loader_version=3.0.37 +fancy_mod_loader_version=3.0.39-pr-150-StartupConfigs mojang_logging_version=1.1.1 log4j_version=2.22.1 guava_version=31.1.2-jre diff --git a/projects/neoforge/build.gradle b/projects/neoforge/build.gradle index a5df49d0f0..f404f14224 100644 --- a/projects/neoforge/build.gradle +++ b/projects/neoforge/build.gradle @@ -32,6 +32,18 @@ sourceSets { } } +repositories { + maven { + name 'Maven for PR #150' // https://github.com/neoforged/FancyModLoader/pull/150 + url 'https://prmaven.neoforged.net/FancyModLoader/pr150' + content { + includeModule('net.neoforged.fancymodloader', 'junit-fml') + includeModule('net.neoforged.fancymodloader', 'loader') + includeModule('net.neoforged.fancymodloader', 'earlydisplay') + } + } +} + dependencies { runtimeOnly "cpw.mods:bootstraplauncher:${project.bootstraplauncher_version}" diff --git a/testframework/build.gradle b/testframework/build.gradle index 96e2a28ce4..0696405724 100644 --- a/testframework/build.gradle +++ b/testframework/build.gradle @@ -20,6 +20,18 @@ repositories { } } +repositories { + maven { + name 'Maven for PR #150' // https://github.com/neoforged/FancyModLoader/pull/150 + url 'https://prmaven.neoforged.net/FancyModLoader/pr150' + content { + includeModule('net.neoforged.fancymodloader', 'junit-fml') + includeModule('net.neoforged.fancymodloader', 'loader') + includeModule('net.neoforged.fancymodloader', 'earlydisplay') + } + } +} + dependencies { implementation project(':neoforge') diff --git a/tests/build.gradle b/tests/build.gradle index 8951a292fd..4ad5d73418 100644 --- a/tests/build.gradle +++ b/tests/build.gradle @@ -34,6 +34,18 @@ configurations { junitImplementation.extendsFrom(implementation) } +repositories { + maven { + name 'Maven for PR #150' // https://github.com/neoforged/FancyModLoader/pull/150 + url 'https://prmaven.neoforged.net/FancyModLoader/pr150' + content { + includeModule('net.neoforged.fancymodloader', 'junit-fml') + includeModule('net.neoforged.fancymodloader', 'loader') + includeModule('net.neoforged.fancymodloader', 'earlydisplay') + } + } +} + dependencies { implementation(neoforgeProject) implementation(testframeworkProject) From 0b7d62ab8c38410452f9b772b0f1ff75e67c5c48 Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Wed, 29 May 2024 08:28:21 -0400 Subject: [PATCH 3/9] Switched to JUnit test --- .../neoforge/unittest}/StartupConfigTest.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) rename tests/src/{main/java/net/neoforged/neoforge/debug/fml => junit/java/net/neoforged/neoforge/unittest}/StartupConfigTest.java (74%) diff --git a/tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java b/tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java similarity index 74% rename from tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java rename to tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java index 2329b5976e..4c02e0e29d 100644 --- a/tests/src/main/java/net/neoforged/neoforge/debug/fml/StartupConfigTest.java +++ b/tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java @@ -3,17 +3,18 @@ * SPDX-License-Identifier: LGPL-2.1-only */ -package net.neoforged.neoforge.debug.fml; +package net.neoforged.neoforge.unittest; -import net.minecraft.gametest.framework.GameTest; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.neoforge.common.ModConfigSpec; -import net.neoforged.testframework.annotation.TestHolder; -import net.neoforged.testframework.gametest.EmptyTemplate; -import net.neoforged.testframework.gametest.ExtendedGameTestHelper; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; +@TestMethodOrder(MethodOrderer.MethodName.class) public class StartupConfigTest { private static final String MOD_ID = "startup_config_test"; private static boolean WasLoadedAtInitStartupConfig = false; @@ -21,15 +22,12 @@ public class StartupConfigTest { private static boolean WasLoadedAtInitServerConfig = false; private static boolean WasLoadedAtInitClientConfig = false; - @GameTest - @EmptyTemplate - @TestHolder(description = "Tests the initial loading state of configs") - static void testStartupConfigs(ExtendedGameTestHelper helper) { - helper.assertTrue(WasLoadedAtInitStartupConfig, "Startup Config was supposed to be loaded at mod init."); - helper.assertFalse(WasLoadedAtInitCommonConfig, "Common Config was NOT supposed to be loaded at mod init."); - helper.assertFalse(WasLoadedAtInitServerConfig, "Server Config was NOT supposed to be loaded at mod init."); - helper.assertFalse(WasLoadedAtInitClientConfig, "Client Config was NOT supposed to be loaded at mod init."); - helper.succeed(); + @Test + void testStartupConfigs() { + Assertions.assertTrue(WasLoadedAtInitStartupConfig, "Startup Config was supposed to be loaded at mod init."); + Assertions.assertFalse(WasLoadedAtInitCommonConfig, "Common Config was NOT supposed to be loaded at mod init."); + Assertions.assertFalse(WasLoadedAtInitServerConfig, "Server Config was NOT supposed to be loaded at mod init."); + Assertions.assertFalse(WasLoadedAtInitClientConfig, "Client Config was NOT supposed to be loaded at mod init."); } @Mod(value = MOD_ID) From 4e5d07837702b2360faf964a5e9d14ee53fec1ed Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Sun, 2 Jun 2024 07:11:28 -0400 Subject: [PATCH 4/9] typoed field names --- .../neoforge/unittest/StartupConfigTest.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java b/tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java index 4c02e0e29d..6b70fbaf70 100644 --- a/tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java +++ b/tests/src/junit/java/net/neoforged/neoforge/unittest/StartupConfigTest.java @@ -17,17 +17,17 @@ @TestMethodOrder(MethodOrderer.MethodName.class) public class StartupConfigTest { private static final String MOD_ID = "startup_config_test"; - private static boolean WasLoadedAtInitStartupConfig = false; - private static boolean WasLoadedAtInitCommonConfig = false; - private static boolean WasLoadedAtInitServerConfig = false; - private static boolean WasLoadedAtInitClientConfig = false; + private static boolean wasLoadedAtInitStartupConfig = false; + private static boolean wasLoadedAtInitCommonConfig = false; + private static boolean wasLoadedAtInitServerConfig = false; + private static boolean wasLoadedAtInitClientConfig = false; @Test void testStartupConfigs() { - Assertions.assertTrue(WasLoadedAtInitStartupConfig, "Startup Config was supposed to be loaded at mod init."); - Assertions.assertFalse(WasLoadedAtInitCommonConfig, "Common Config was NOT supposed to be loaded at mod init."); - Assertions.assertFalse(WasLoadedAtInitServerConfig, "Server Config was NOT supposed to be loaded at mod init."); - Assertions.assertFalse(WasLoadedAtInitClientConfig, "Client Config was NOT supposed to be loaded at mod init."); + Assertions.assertTrue(wasLoadedAtInitStartupConfig, "Startup Config was supposed to be loaded at mod init."); + Assertions.assertFalse(wasLoadedAtInitCommonConfig, "Common Config was NOT supposed to be loaded at mod init."); + Assertions.assertFalse(wasLoadedAtInitServerConfig, "Server Config was NOT supposed to be loaded at mod init."); + Assertions.assertFalse(wasLoadedAtInitClientConfig, "Client Config was NOT supposed to be loaded at mod init."); } @Mod(value = MOD_ID) @@ -37,10 +37,10 @@ public StartupConfigTestMod(ModContainer modContainer) { modContainer.registerConfig(ModConfig.Type.COMMON, CommonConfig.SPEC); modContainer.registerConfig(ModConfig.Type.SERVER, ServerConfig.SPEC); modContainer.registerConfig(ModConfig.Type.CLIENT, ClientConfig.SPEC); - WasLoadedAtInitStartupConfig = StartupConfig.SPEC.isLoaded(); - WasLoadedAtInitCommonConfig = CommonConfig.SPEC.isLoaded(); - WasLoadedAtInitServerConfig = ServerConfig.SPEC.isLoaded(); - WasLoadedAtInitClientConfig = ClientConfig.SPEC.isLoaded(); + wasLoadedAtInitStartupConfig = StartupConfig.SPEC.isLoaded(); + wasLoadedAtInitCommonConfig = CommonConfig.SPEC.isLoaded(); + wasLoadedAtInitServerConfig = ServerConfig.SPEC.isLoaded(); + wasLoadedAtInitClientConfig = ClientConfig.SPEC.isLoaded(); } public static class StartupConfig { From 49fc3c6f1c1de7c0975ba8d65e65a399df163df5 Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Sun, 2 Jun 2024 09:04:32 -0400 Subject: [PATCH 5/9] Revert "Temporary setup of FML PR for testing" This reverts commit 9be4a04f44299a16cfaddd15d5c6c602b905f25f. --- gradle.properties | 2 +- projects/neoforge/build.gradle | 12 ------------ testframework/build.gradle | 12 ------------ tests/build.gradle | 12 ------------ 4 files changed, 1 insertion(+), 37 deletions(-) diff --git a/gradle.properties b/gradle.properties index b4c61bba00..e2dbeff7ab 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ jetbrains_annotations_version=24.0.1 slf4j_api_version=2.0.7 apache_maven_artifact_version=3.8.5 jarjar_version=0.4.0 -fancy_mod_loader_version=3.0.39-pr-150-StartupConfigs +fancy_mod_loader_version=3.0.37 mojang_logging_version=1.1.1 log4j_version=2.22.1 guava_version=31.1.2-jre diff --git a/projects/neoforge/build.gradle b/projects/neoforge/build.gradle index f404f14224..a5df49d0f0 100644 --- a/projects/neoforge/build.gradle +++ b/projects/neoforge/build.gradle @@ -32,18 +32,6 @@ sourceSets { } } -repositories { - maven { - name 'Maven for PR #150' // https://github.com/neoforged/FancyModLoader/pull/150 - url 'https://prmaven.neoforged.net/FancyModLoader/pr150' - content { - includeModule('net.neoforged.fancymodloader', 'junit-fml') - includeModule('net.neoforged.fancymodloader', 'loader') - includeModule('net.neoforged.fancymodloader', 'earlydisplay') - } - } -} - dependencies { runtimeOnly "cpw.mods:bootstraplauncher:${project.bootstraplauncher_version}" diff --git a/testframework/build.gradle b/testframework/build.gradle index 0696405724..96e2a28ce4 100644 --- a/testframework/build.gradle +++ b/testframework/build.gradle @@ -20,18 +20,6 @@ repositories { } } -repositories { - maven { - name 'Maven for PR #150' // https://github.com/neoforged/FancyModLoader/pull/150 - url 'https://prmaven.neoforged.net/FancyModLoader/pr150' - content { - includeModule('net.neoforged.fancymodloader', 'junit-fml') - includeModule('net.neoforged.fancymodloader', 'loader') - includeModule('net.neoforged.fancymodloader', 'earlydisplay') - } - } -} - dependencies { implementation project(':neoforge') diff --git a/tests/build.gradle b/tests/build.gradle index 4ad5d73418..8951a292fd 100644 --- a/tests/build.gradle +++ b/tests/build.gradle @@ -34,18 +34,6 @@ configurations { junitImplementation.extendsFrom(implementation) } -repositories { - maven { - name 'Maven for PR #150' // https://github.com/neoforged/FancyModLoader/pull/150 - url 'https://prmaven.neoforged.net/FancyModLoader/pr150' - content { - includeModule('net.neoforged.fancymodloader', 'junit-fml') - includeModule('net.neoforged.fancymodloader', 'loader') - includeModule('net.neoforged.fancymodloader', 'earlydisplay') - } - } -} - dependencies { implementation(neoforgeProject) implementation(testframeworkProject) From a8e901d47b873156308c68e252e6845c0daa5ebe Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Sun, 2 Jun 2024 09:12:46 -0400 Subject: [PATCH 6/9] Use released FML --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e2dbeff7ab..e54278b287 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ jetbrains_annotations_version=24.0.1 slf4j_api_version=2.0.7 apache_maven_artifact_version=3.8.5 jarjar_version=0.4.0 -fancy_mod_loader_version=3.0.37 +fancy_mod_loader_version=3.0.43 mojang_logging_version=1.1.1 log4j_version=2.22.1 guava_version=31.1.2-jre From b9f51c75155b640cd3bf4f87adebaf4de202f3d4 Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Sun, 2 Jun 2024 11:39:49 -0400 Subject: [PATCH 7/9] Fix index --- tests/src/main/resources/META-INF/neoforge.mods.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/main/resources/META-INF/neoforge.mods.toml b/tests/src/main/resources/META-INF/neoforge.mods.toml index 4fcaf7d043..a9f791cd7b 100644 --- a/tests/src/main/resources/META-INF/neoforge.mods.toml +++ b/tests/src/main/resources/META-INF/neoforge.mods.toml @@ -35,7 +35,7 @@ license="LGPL v2.1" modId="finalize_spawn_fix_test" [[mods]] -modId="multiple_entrypoints_test" + modId="multiple_entrypoints_test" [[mods]] modId="startup_config_test" From 46501383cb567d8686edb888dddae5620c5f3d23 Mon Sep 17 00:00:00 2001 From: TelepathicGrunt <40846040+TelepathicGrunt@users.noreply.github.com> Date: Sun, 2 Jun 2024 11:39:54 -0400 Subject: [PATCH 8/9] Revert "Use released FML" This reverts commit a8e901d47b873156308c68e252e6845c0daa5ebe. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e54278b287..e2dbeff7ab 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,7 @@ jetbrains_annotations_version=24.0.1 slf4j_api_version=2.0.7 apache_maven_artifact_version=3.8.5 jarjar_version=0.4.0 -fancy_mod_loader_version=3.0.43 +fancy_mod_loader_version=3.0.37 mojang_logging_version=1.1.1 log4j_version=2.22.1 guava_version=31.1.2-jre From 3ab5a80b79187ab3aa56cb97181eeb405cf30623 Mon Sep 17 00:00:00 2001 From: Matyrobbrt Date: Wed, 5 Jun 2024 13:45:03 +0300 Subject: [PATCH 9/9] Fix main mod sourceset being included --- tests/build.gradle | 2 ++ tests/src/junit/resources/META-INF/neoforge.mods.toml | 8 ++++++++ tests/src/main/resources/META-INF/neoforge.mods.toml | 6 ------ 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 tests/src/junit/resources/META-INF/neoforge.mods.toml diff --git a/tests/build.gradle b/tests/build.gradle index 8951a292fd..1829129023 100644 --- a/tests/build.gradle +++ b/tests/build.gradle @@ -109,6 +109,8 @@ afterEvaluate { args.set(outputIndex+1, file('src/generated/resources/').absolutePath); programArguments.set(args); } + runs.junit.modSources = runs.junit.modSources.get().stream() + .filter { it != sourceSets.main }.toList() } license { diff --git a/tests/src/junit/resources/META-INF/neoforge.mods.toml b/tests/src/junit/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000000..62b123f909 --- /dev/null +++ b/tests/src/junit/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,8 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="LGPL v2.1" + +[[mods]] +modId="startup_config_test" +[[mods]] +modId="creative_tab_order_test" diff --git a/tests/src/main/resources/META-INF/neoforge.mods.toml b/tests/src/main/resources/META-INF/neoforge.mods.toml index af445af91e..70d23d99cb 100644 --- a/tests/src/main/resources/META-INF/neoforge.mods.toml +++ b/tests/src/main/resources/META-INF/neoforge.mods.toml @@ -37,12 +37,6 @@ license="LGPL v2.1" [[mods]] modId="multiple_entrypoints_test" -[[mods]] - modId="startup_config_test" -[[mods]] - modId="creative_tab_order_test" - - [[mods]] modId="ordered_test_1" [[mods]]