[VERY VERY VERY BAD IDEA]

This commit is contained in:
Brian Neumann-Fopiano
2026-09-20 04:24:42 -04:00
parent f0e7fea13b
commit 2fa0853e42
892 changed files with 13482 additions and 53554 deletions
@@ -20,7 +20,7 @@ import static org.junit.Assert.assertTrue;
public class GenerationRevisionScopeTest {
private static final String ENGINE_ROOT = "core/src/main/java/art/arcane/iris/generation/runtime/";
private static final String NMS_ROOT = "adapters/bukkit/nms/v26_2_R1/src/main/java/art/arcane/iris/platform/bukkit/nms/v26_2_R1/";
private static final String BUKKIT_POLICY_ROOT = "core/src/main/java/art/arcane/iris/platform/bukkit/nms/";
private static final String COMMAND_ROOT = "adapters/bukkit/plugin/src/main/java/art/arcane/iris/command/";
@Rule
@@ -70,7 +70,7 @@ public class GenerationRevisionScopeTest {
assertNewSourceChangesRevision(fixture, root + "/NewSource.java");
}
assertNewSourceChangesRevision(fixture, ENGINE_ROOT + "NewDiagnostics.java");
assertNewSourceChangesRevision(fixture, NMS_ROOT + "NmsWorldLifecycleHelper.java");
assertNewSourceChangesRevision(fixture, BUKKIT_POLICY_ROOT + "NewGenerationPolicy.java");
assertNewSourceChangesRevision(fixture, COMMAND_ROOT + "NewCommand.java");
assertNewSourceChangesRevision(fixture, "core/src/main/java/art/arcane/iris/world/safeguard/NewTask.java");
}
@@ -87,10 +87,31 @@ public class GenerationRevisionScopeTest {
assertTrue(relative, manifest.sources().containsKey(relative));
}
assertFalse(manifest.sources().containsKey(ENGINE_ROOT + "EngineDiagnostics.java"));
assertFalse(manifest.sources().containsKey(NMS_ROOT + "NmsWorldLifecycle.java"));
assertFalse(manifest.sources().containsKey(COMMAND_ROOT + "CommandIris.java"));
}
@Test
public void publishedNativeSourcesChangeTheGenerationFingerprint() throws Exception {
Fixture fixture = fixture();
Path nativeSources = fixture.root().resolve("native-sources.jar");
writeNativeSources(nativeSources, "class NativeGenerator { int height = 1; }");
Map<String, Path> dependencies = Map.of("volmlib", fixture.dependencies().get("volmlib"),
"com.github.VolmitSoftware.VolmLib:native-minecraft26_2-sources", nativeSources);
String original = GenerationBuildRevision.fingerprint(
GenerationBuildRevision.capture(fixture.options(), dependencies));
writeNativeSources(nativeSources, "class NativeGenerator { int height = 2; }");
assertNotEquals(original, GenerationBuildRevision.fingerprint(
GenerationBuildRevision.capture(fixture.options(), dependencies)));
}
private static void writeNativeSources(Path archive, String content) throws IOException {
try (ZipOutputStream output = new ZipOutputStream(Files.newOutputStream(archive))) {
output.putNextEntry(new ZipEntry("modded/art/arcane/volmlib/nativelib/NativeGenerator.java"));
output.write(content.getBytes(StandardCharsets.UTF_8));
output.closeEntry();
}
}
private static void assertNewSourceChangesRevision(Fixture fixture, String relative) throws IOException {
Path source = fixture.root().resolve(relative);
write(source, "class NewSource {}");
@@ -144,9 +165,9 @@ public class GenerationRevisionScopeTest {
"core/src/main/java/art/arcane/iris/pack/loading/IrisData.java",
"core/src/main/java/art/arcane/iris/configuration/IrisSettings.java",
"core/agent/src/main/java/GenerationTransformer.java",
NMS_ROOT + "NmsGenerationHooks.java",
NMS_ROOT + "NmsGenerationRegistry.java",
NMS_ROOT + "NMSBinding.java",
BUKKIT_POLICY_ROOT + "BukkitGeneratorContext.java",
BUKKIT_POLICY_ROOT + "BukkitBiomePolicy.java",
BUKKIT_POLICY_ROOT + "BukkitBinding.java",
"spi/src/main/java/art/arcane/iris/spi/PlatformGenerationRegistry.java",
"adapters/modded-common/src/main/java/art/arcane/iris/modded/IrisModdedChunkGenerator.java"
);
@@ -25,8 +25,8 @@ public class ModdedArtifactVerifierTest {
private static final String METADATA = "fabric.mod.json";
private static final String CODEC_CLASS = "art/arcane/volmlib/util/mantle/io/Lz4IOWorkerCodecSupport.class";
private static final String HARDWARE_CLASS = "art/arcane/iris/platform/bootstrap/getHardware.class";
private static final String MIXIN_CONFIG = "irisworldgen.entity.mixins.json";
private static final String CLIENT_MIXIN_CONFIG = "irisworldgen.client.mixins.json";
private static final String MIXIN_CONFIG = "volmlib.entity.mixins.json";
private static final String CLIENT_MIXIN_CONFIG = "volmlib.client.mixins.json";
private static final String NEOFORGE_METADATA = "META-INF/neoforge.mods.toml";
private static final List<String> REQUIRED_ENTRIES = List.of(METADATA, CODEC_CLASS, HARDWARE_CLASS);
private static final byte[] INTERNAL_CODEC = (
@@ -0,0 +1,45 @@
import org.gradle.api.GradleException;
import org.junit.Test;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
public class NativeRuntimeArtifactsTest {
@Test
public void recordsExactDependenciesAndRetainsSharedProviderReferences() throws Exception {
Path directory = Files.createTempDirectory("native-artifacts");
File provider = directory.resolve("provider.jar").toFile();
ClassWriter writer = new ClassWriter(0);
writer.visit(Opcodes.V17, Opcodes.ACC_PUBLIC, "art/arcane/volmlib/nativelib/v26_2_R1/terrain/Provider", null,
"art/arcane/volmlib/util/collection/KList", null);
writer.visitEnd();
try (JarOutputStream jar = new JarOutputStream(Files.newOutputStream(provider.toPath()))) {
jar.putNextEntry(new JarEntry("art/arcane/volmlib/nativelib/v26_2_R1/terrain/Provider.class"));
jar.write(writer.toByteArray());
jar.closeEntry();
}
File rules = directory.resolve("keep.pro").toFile();
NativeRuntimeArtifacts.generate(Map.of("native-common", provider, "native-v26_2_R1", provider),
"revision", directory.toFile(), rules);
assertTrue(Files.readString(rules.toPath()).contains("-keep class art.arcane.volmlib.util.collection.KList { *; }"));
File plugin = directory.resolve("plugin.jar").toFile();
try (JarOutputStream jar = new JarOutputStream(Files.newOutputStream(plugin.toPath()))) {
jar.putNextEntry(new JarEntry(NativeRuntimeArtifacts.MANIFEST));
Files.copy(directory.resolve(NativeRuntimeArtifacts.MANIFEST), jar);
jar.closeEntry();
}
NativeRuntimeArtifacts.verify(plugin, List.of("v26_2_R1"), "revision");
assertThrows(GradleException.class, () -> NativeRuntimeArtifacts.verify(plugin, List.of("v26_3_R1"), "revision"));
assertThrows(GradleException.class, () -> NativeRuntimeArtifacts.verify(plugin, List.of("v26_2_R1"), "other"));
}
}