diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/client/CreativeTabAnimationTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/client/CreativeTabAnimationTest.java similarity index 82% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/client/CreativeTabAnimationTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/client/CreativeTabAnimationTest.java index cbd3ecb..a64b2f8 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/client/CreativeTabAnimationTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/client/CreativeTabAnimationTest.java @@ -1,10 +1,9 @@ -package dev.zenfyr.pulsar.test.autotest.client; +package dev.zenfyr.pulsar.gametest.client; import dev.zenfyr.pulsar.creativetab.CreativeModeTabAnimaton; -import dev.zenfyr.pulsar.test.autotest.CreativeTabBuilderTest; -import dev.zenfyr.pulsar.test.client.ClientTestContext; -import dev.zenfyr.pulsar.test.client.ClientTestEntrypoint; -import dev.zenfyr.pulsar.test.util.AutoTest; +import dev.zenfyr.pulsar.gametest.common.CreativeTabBuilderTest; +import dev.zenfyr.pulsar.gametest.util.AutoTest; +import dev.zenfyr.pulsar.gametest.util.client.ClientTestContext; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -13,7 +12,7 @@ import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen; import net.minecraft.world.item.Items; @Environment(EnvType.CLIENT) -public class CreativeTabAnimationTest implements ClientModInitializer, ClientTestEntrypoint { +public class CreativeTabAnimationTest implements ClientModInitializer { @Override public void onInitializeClient() { diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/client/ScreenParticleHelperTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/client/ScreenParticleHelperTest.java similarity index 82% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/client/ScreenParticleHelperTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/client/ScreenParticleHelperTest.java index e94a9b6..9fbf223 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/client/ScreenParticleHelperTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/client/ScreenParticleHelperTest.java @@ -1,10 +1,9 @@ -package dev.zenfyr.pulsar.test.autotest.client; +package dev.zenfyr.pulsar.gametest.client; import dev.zenfyr.pulsar.client.particles.ItemStackParticle; import dev.zenfyr.pulsar.client.particles.ScreenParticleHelper; -import dev.zenfyr.pulsar.test.client.ClientTestContext; -import dev.zenfyr.pulsar.test.client.ClientTestEntrypoint; -import dev.zenfyr.pulsar.test.util.AutoTest; +import dev.zenfyr.pulsar.gametest.util.AutoTest; +import dev.zenfyr.pulsar.gametest.util.client.ClientTestContext; import dev.zenfyr.pulsar.util.MathUtil; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -12,7 +11,7 @@ import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.item.Items; @Environment(EnvType.CLIENT) -public class ScreenParticleHelperTest implements ClientTestEntrypoint { +public class ScreenParticleHelperTest { @AutoTest void testCustomScreenParticles(ClientTestContext context) { diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/CreativeTabBuilderTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/CreativeTabBuilderTest.java similarity index 94% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/CreativeTabBuilderTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/common/CreativeTabBuilderTest.java index 1376e29..30d44f9 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/CreativeTabBuilderTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/CreativeTabBuilderTest.java @@ -1,7 +1,7 @@ -package dev.zenfyr.pulsar.test.autotest; +package dev.zenfyr.pulsar.gametest.common; import dev.zenfyr.pulsar.creativetab.CreativeModeTabBuilder; -import dev.zenfyr.pulsar.test.util.Utils; +import dev.zenfyr.pulsar.gametest.util.Utils; import dev.zenfyr.pulsar.util.SupportUtil; import java.util.List; import net.fabricmc.api.EnvType; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/RegistryUtilTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/RegistryUtilTest.java similarity index 93% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/RegistryUtilTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/common/RegistryUtilTest.java index aff0a72..63626f8 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/RegistryUtilTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/RegistryUtilTest.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.autotest; +package dev.zenfyr.pulsar.gametest.common; import dev.zenfyr.pulsar.registry.RegistryUtil; import net.fabricmc.api.ModInitializer; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/ServerReloadersEventTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/ServerReloadersEventTest.java similarity index 95% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/ServerReloadersEventTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/common/ServerReloadersEventTest.java index 9793a0c..293dc59 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/ServerReloadersEventTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/ServerReloadersEventTest.java @@ -1,8 +1,8 @@ -package dev.zenfyr.pulsar.test.autotest; +package dev.zenfyr.pulsar.gametest.common; +import dev.zenfyr.pulsar.gametest.util.Utils; import dev.zenfyr.pulsar.resources.ReloaderType; import dev.zenfyr.pulsar.resources.ServerReloadersEvent; -import dev.zenfyr.pulsar.test.util.Utils; import dev.zenfyr.pulsar.util.PulsarLog; import java.util.Objects; import net.fabricmc.api.ModInitializer; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/util/VirtualMixinsDummyTarget.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/VirtualMixinsDummyTarget.java similarity index 75% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/util/VirtualMixinsDummyTarget.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/common/VirtualMixinsDummyTarget.java index 7335db6..9b84267 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/util/VirtualMixinsDummyTarget.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/VirtualMixinsDummyTarget.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.autotest.util; +package dev.zenfyr.pulsar.gametest.common; // dummy target for the virtual mixins test public class VirtualMixinsDummyTarget { diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/VirtualMixinsTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/VirtualMixinsTest.java similarity index 88% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/VirtualMixinsTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/common/VirtualMixinsTest.java index 8d5ffad..6d176e6 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/VirtualMixinsTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/VirtualMixinsTest.java @@ -1,7 +1,6 @@ -package dev.zenfyr.pulsar.test.autotest; +package dev.zenfyr.pulsar.gametest.common; import dev.zenfyr.pulsar.mixin.VirtualMixins; -import dev.zenfyr.pulsar.test.autotest.util.VirtualMixinsDummyTarget; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import net.fabricmc.api.ModInitializer; @@ -16,7 +15,7 @@ public class VirtualMixinsTest implements PreLaunchEntrypoint, ModInitializer { { "required": false, "minVersion": "0.8", - "package": "dev.zenfyr.pulsar.test.autotest.util.virtualmixins", + "package": "dev.zenfyr.pulsar.gametest.common.virtualmixins", "compatibilityLevel": "JAVA_17", "mixins": [ "VirtualMixinsDummyMixin" diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/util/virtualmixins/VirtualMixinsDummyMixin.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/virtualmixins/VirtualMixinsDummyMixin.java similarity index 80% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/util/virtualmixins/VirtualMixinsDummyMixin.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/common/virtualmixins/VirtualMixinsDummyMixin.java index e0d9e2f..0eca2e9 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/util/virtualmixins/VirtualMixinsDummyMixin.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/common/virtualmixins/VirtualMixinsDummyMixin.java @@ -1,6 +1,6 @@ -package dev.zenfyr.pulsar.test.autotest.util.virtualmixins; +package dev.zenfyr.pulsar.gametest.common.virtualmixins; -import dev.zenfyr.pulsar.test.autotest.util.VirtualMixinsDummyTarget; +import dev.zenfyr.pulsar.gametest.common.VirtualMixinsDummyTarget; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/BaseGameTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/server/BaseGameTest.java similarity index 85% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/BaseGameTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/server/BaseGameTest.java index 61a9e44..7c5a594 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/BaseGameTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/server/BaseGameTest.java @@ -1,7 +1,7 @@ -package dev.zenfyr.pulsar.test.autotest; +package dev.zenfyr.pulsar.gametest.server; import com.mojang.logging.LogUtils; -import dev.zenfyr.pulsar.test.util.Utils; +import dev.zenfyr.pulsar.gametest.util.Utils; import net.fabricmc.fabric.api.gametest.v1.GameTest; import net.minecraft.gametest.framework.GameTestHelper; import org.spongepowered.asm.mixin.MixinEnvironment; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/ItemStackUtilTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/server/ItemStackUtilTest.java similarity index 96% rename from src/testmod/java/dev/zenfyr/pulsar/test/autotest/ItemStackUtilTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/server/ItemStackUtilTest.java index 5011f48..f569f12 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/autotest/ItemStackUtilTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/server/ItemStackUtilTest.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.autotest; +package dev.zenfyr.pulsar.gametest.server; import dev.zenfyr.pulsar.itemstack.ItemStackUtil; import net.fabricmc.fabric.api.gametest.v1.GameTest; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/util/AutoTest.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/AutoTest.java similarity index 87% rename from src/testmod/java/dev/zenfyr/pulsar/test/util/AutoTest.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/AutoTest.java index bdd0772..e304d81 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/util/AutoTest.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/AutoTest.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.util; +package dev.zenfyr.pulsar.gametest.util; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/util/TestContext.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/TestContext.java similarity index 93% rename from src/testmod/java/dev/zenfyr/pulsar/test/util/TestContext.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/TestContext.java index 5321185..a9ea91f 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/util/TestContext.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/TestContext.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.util; +package dev.zenfyr.pulsar.gametest.util; import java.time.Duration; import java.util.function.Function; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/util/TestRunner.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/TestRunner.java similarity index 98% rename from src/testmod/java/dev/zenfyr/pulsar/test/util/TestRunner.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/TestRunner.java index 0ca0a56..f72c2cc 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/util/TestRunner.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/TestRunner.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.util; +package dev.zenfyr.pulsar.gametest.util; import com.mojang.logging.LogUtils; import java.lang.reflect.InvocationTargetException; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/util/Utils.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/Utils.java similarity index 97% rename from src/testmod/java/dev/zenfyr/pulsar/test/util/Utils.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/Utils.java index 64587ac..0220a5e 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/util/Utils.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/Utils.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.util; +package dev.zenfyr.pulsar.gametest.util; import java.time.Instant; import java.time.temporal.ChronoField; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/client/ClientTestContext.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/ClientTestContext.java similarity index 95% rename from src/testmod/java/dev/zenfyr/pulsar/test/client/ClientTestContext.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/ClientTestContext.java index 81a75c1..98d9353 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/client/ClientTestContext.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/ClientTestContext.java @@ -1,6 +1,6 @@ -package dev.zenfyr.pulsar.test.client; +package dev.zenfyr.pulsar.gametest.util.client; -import dev.zenfyr.pulsar.test.util.TestContext; +import dev.zenfyr.pulsar.gametest.util.TestContext; import java.time.Duration; import java.util.function.BiFunction; import java.util.function.Function; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/client/ClientTestEntrypoint.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/ClientTestEntrypoint.java similarity index 74% rename from src/testmod/java/dev/zenfyr/pulsar/test/client/ClientTestEntrypoint.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/ClientTestEntrypoint.java index de0c500..cf63460 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/client/ClientTestEntrypoint.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/ClientTestEntrypoint.java @@ -1,4 +1,4 @@ -package dev.zenfyr.pulsar.test.client; +package dev.zenfyr.pulsar.gametest.util.client; public interface ClientTestEntrypoint { default void onClientTest(ClientTestContext context) { diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/client/FabricClientTestHelper.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/FabricClientTestHelper.java similarity index 97% rename from src/testmod/java/dev/zenfyr/pulsar/test/client/FabricClientTestHelper.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/FabricClientTestHelper.java index ec96ca4..8a7ffa2 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/client/FabricClientTestHelper.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/FabricClientTestHelper.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package dev.zenfyr.pulsar.test.client; +package dev.zenfyr.pulsar.gametest.util.client; -import dev.zenfyr.pulsar.test.util.Utils; +import dev.zenfyr.pulsar.gametest.util.Utils; import java.time.Duration; import java.time.LocalDateTime; import java.util.Objects; diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/client/PulsarTestmodClient.java b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/PulsarTestmodClient.java similarity index 85% rename from src/testmod/java/dev/zenfyr/pulsar/test/client/PulsarTestmodClient.java rename to src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/PulsarTestmodClient.java index f61dcd2..84029b9 100644 --- a/src/testmod/java/dev/zenfyr/pulsar/test/client/PulsarTestmodClient.java +++ b/src/testmod/java/dev/zenfyr/pulsar/gametest/util/client/PulsarTestmodClient.java @@ -1,8 +1,9 @@ -package dev.zenfyr.pulsar.test.client; +package dev.zenfyr.pulsar.gametest.util.client; import com.mojang.logging.LogUtils; import dev.zenfyr.pulsar.client.events.AfterFirstReload; -import dev.zenfyr.pulsar.test.util.Utils; +import dev.zenfyr.pulsar.gametest.util.TestRunner; +import dev.zenfyr.pulsar.gametest.util.Utils; import java.util.regex.Pattern; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.loader.api.FabricLoader; @@ -34,10 +35,10 @@ public class PulsarTestmodClient implements ClientModInitializer { @Override public void onInitializeClient() { if (!Utils.ENABLED) return; + Minecraft client = Minecraft.getInstance(); - AfterFirstReload.EVENT.register(() -> Minecraft.getInstance().execute(() -> { + AfterFirstReload.EVENT.register(() -> client.execute(() -> { try { - Minecraft client = Minecraft.getInstance(); String levelName = "pulsar_test_" + FabricLoader.getInstance() .getModContainer("minecraft") @@ -85,20 +86,20 @@ public class PulsarTestmodClient implements ClientModInitializer { var thread = new Thread(() -> { try { log.info("Started client test."); - ClientTestContext context = new ClientTestContext(Minecraft.getInstance()); + ClientTestContext context = new ClientTestContext(client); context.waitForLevelTicks(200); - GLFW.glfwShowWindow(context.client().getWindow().handle()); + GLFW.glfwShowWindow(client.getWindow().handle()); FabricLoader.getInstance() - .invokeEntrypoints( - "pulsar:client_test", ClientTestEntrypoint.class, e -> e.onClientTest(context)); + .getEntrypoints("pulsar:client_test", Object.class) + .forEach(entrypoint -> TestRunner.runTests(entrypoint, context)); MixinEnvironment.getCurrentEnvironment().audit(); Utils.runChecks(log); - Minecraft.getInstance().stop(); + client.stop(); } catch (Throwable t) { log.error("Failed client test!", t); - System.exit(1); + System.exit(-1); } }); thread.start(); diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/mixin/ServerMainMixin.java b/src/testmod/java/dev/zenfyr/pulsar/test/mixin/ServerMainMixin.java deleted file mode 100644 index de786db..0000000 --- a/src/testmod/java/dev/zenfyr/pulsar/test/mixin/ServerMainMixin.java +++ /dev/null @@ -1,17 +0,0 @@ -package dev.zenfyr.pulsar.test.mixin; - -import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import dev.zenfyr.pulsar.test.util.Utils; -import net.minecraft.server.Main; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -@Mixin(Main.class) -public class ServerMainMixin { - @ModifyExpressionValue( - method = "main", - at = @At(value = "INVOKE", target = "Lnet/minecraft/server/Eula;hasAgreedToEULA()Z")) - private static boolean isEulaAgreedTo(boolean original) { - return original || Utils.ENABLED; - } -} diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/server/PulsarTestmodServer.java b/src/testmod/java/dev/zenfyr/pulsar/test/server/PulsarTestmodServer.java deleted file mode 100644 index 47afd99..0000000 --- a/src/testmod/java/dev/zenfyr/pulsar/test/server/PulsarTestmodServer.java +++ /dev/null @@ -1,41 +0,0 @@ -package dev.zenfyr.pulsar.test.server; - -import com.mojang.logging.LogUtils; -import dev.zenfyr.pulsar.test.util.Utils; -import net.fabricmc.api.DedicatedServerModInitializer; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; -import net.fabricmc.loader.api.FabricLoader; -import org.slf4j.Logger; -import org.spongepowered.asm.mixin.MixinEnvironment; - -public class PulsarTestmodServer implements DedicatedServerModInitializer { - - private static final Logger log = LogUtils.getLogger(); - - @Override - public void onInitializeServer() { - if (!Utils.ENABLED) return; - - ServerLifecycleEvents.SERVER_STARTING.register(server -> { - var thread = new Thread(() -> { - try { - log.info("Started server test."); - ServerTestContext context = new ServerTestContext(server); - context.waitForOverworldTicks(200); - - FabricLoader.getInstance() - .invokeEntrypoints( - "handy:server_test", ServerTestEntrypoint.class, e -> e.onServerTest(context)); - MixinEnvironment.getCurrentEnvironment().audit(); - - Utils.runChecks(log); - server.halt(false); - } catch (Throwable t) { - log.error("Failed server test!", t); - System.exit(1); - } - }); - thread.start(); - }); - } -} diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/server/ServerTestContext.java b/src/testmod/java/dev/zenfyr/pulsar/test/server/ServerTestContext.java deleted file mode 100644 index f2a460e..0000000 --- a/src/testmod/java/dev/zenfyr/pulsar/test/server/ServerTestContext.java +++ /dev/null @@ -1,68 +0,0 @@ -package dev.zenfyr.pulsar.test.server; - -import dev.zenfyr.pulsar.test.util.TestContext; -import java.time.Duration; -import java.time.LocalDateTime; -import java.util.Objects; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import net.minecraft.server.MinecraftServer; - -public record ServerTestContext(MinecraftServer server) implements TestContext { - - public void sendCommand(String command) { - submitAndWait(server -> { - server.getCommands().performPrefixedCommand(server.createCommandSourceStack(), command); - return null; - }); - } - - public void waitForOverworldTicks(long ticks) { - waitFor("Overworld load", server -> server.overworld() != null, Duration.ofMinutes(30)); - final long startTicks = submitAndWait(server -> server.overworld().getGameTime()); - waitFor( - "Overworld load", - server -> Objects.requireNonNull(server.overworld()).getGameTime() > startTicks + ticks, - Duration.ofMinutes(10)); - } - - public void waitFor(String what, Predicate predicate, Duration timeout) { - final LocalDateTime end = LocalDateTime.now().plus(timeout); - - while (true) { - boolean result = submitAndWait(predicate::test); - - if (result) { - break; - } - - if (LocalDateTime.now().isAfter(end)) { - throw new RuntimeException("Timed out waiting for " + what); - } - - waitFor(Duration.ofSeconds(1)); - } - } - - public T submitAndWait(Function function) { - return submit(function).join(); - } - - @Override - public MinecraftServer context() { - return server(); - } - - static void waitFor(Duration duration) { - try { - Thread.sleep(duration.toMillis()); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - - CompletableFuture submit(Function function) { - return server.submit(() -> function.apply(server)); - } -} diff --git a/src/testmod/java/dev/zenfyr/pulsar/test/server/ServerTestEntrypoint.java b/src/testmod/java/dev/zenfyr/pulsar/test/server/ServerTestEntrypoint.java deleted file mode 100644 index bd8328b..0000000 --- a/src/testmod/java/dev/zenfyr/pulsar/test/server/ServerTestEntrypoint.java +++ /dev/null @@ -1,7 +0,0 @@ -package dev.zenfyr.pulsar.test.server; - -public interface ServerTestEntrypoint { - default void onServerTest(ServerTestContext context) { - context.runAllForEntrypoint(this); - } -} diff --git a/src/testmod/resources/fabric.mod.json b/src/testmod/resources/fabric.mod.json index e180a42..16d6139 100644 --- a/src/testmod/resources/fabric.mod.json +++ b/src/testmod/resources/fabric.mod.json @@ -9,28 +9,25 @@ ], "entrypoints": { "fabric-gametest": [ - "dev.zenfyr.pulsar.test.autotest.BaseGameTest", - "dev.zenfyr.pulsar.test.autotest.ItemStackUtilTest" + "dev.zenfyr.pulsar.gametest.server.ItemStackUtilTest", + "dev.zenfyr.pulsar.gametest.server.BaseGameTest" ], "pulsar:client_test": [ - "dev.zenfyr.pulsar.test.autotest.client.CreativeTabAnimationTest", - "dev.zenfyr.pulsar.test.autotest.client.ScreenParticleHelperTest" + "dev.zenfyr.pulsar.gametest.client.CreativeTabAnimationTest", + "dev.zenfyr.pulsar.gametest.client.ScreenParticleHelperTest" ], "preLaunch": [ - "dev.zenfyr.pulsar.test.autotest.VirtualMixinsTest" + "dev.zenfyr.pulsar.gametest.common.VirtualMixinsTest" ], "main": [ - "dev.zenfyr.pulsar.test.autotest.CreativeTabBuilderTest", - "dev.zenfyr.pulsar.test.autotest.ServerReloadersEventTest", - "dev.zenfyr.pulsar.test.autotest.RegistryUtilTest", - "dev.zenfyr.pulsar.test.autotest.VirtualMixinsTest" - ], - "server": [ - "dev.zenfyr.pulsar.test.server.PulsarTestmodServer" + "dev.zenfyr.pulsar.gametest.common.CreativeTabBuilderTest", + "dev.zenfyr.pulsar.gametest.common.ServerReloadersEventTest", + "dev.zenfyr.pulsar.gametest.common.RegistryUtilTest", + "dev.zenfyr.pulsar.gametest.common.VirtualMixinsTest" ], "client": [ - "dev.zenfyr.pulsar.test.client.PulsarTestmodClient", - "dev.zenfyr.pulsar.test.autotest.client.CreativeTabAnimationTest" + "dev.zenfyr.pulsar.gametest.util.client.PulsarTestmodClient", + "dev.zenfyr.pulsar.gametest.client.CreativeTabAnimationTest" ] } } \ No newline at end of file diff --git a/src/testmod/resources/pulsar-testmod.mixins.json b/src/testmod/resources/pulsar-testmod.mixins.json index 59cc13b..f085814 100644 --- a/src/testmod/resources/pulsar-testmod.mixins.json +++ b/src/testmod/resources/pulsar-testmod.mixins.json @@ -1,10 +1,9 @@ { "required": true, "minVersion": "0.8", - "package": "dev.zenfyr.pulsar.test.mixin", + "package": "dev.zenfyr.pulsar.gametest.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ - "ServerMainMixin" ], "injectors": { "defaultRequire": 1