mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-08-27 20:48:54 +00:00
Adding myself and fixing Windows Tests.
This commit is contained in:
@@ -2152,7 +2152,12 @@ public final class DatapackIngestService {
|
||||
if (fileKey != null) {
|
||||
return "key:" + fileKey;
|
||||
}
|
||||
return "";
|
||||
// Windows exposes no inode-equivalent for a directory, and returning nothing here fails
|
||||
// the identity gate closed, which disables legacy staging replacement on that platform
|
||||
// outright. Creation time is the one stable discriminator the filesystem still offers: a
|
||||
// directory swapped in at the same path brings its own, so a swap is still caught. It is
|
||||
// a weaker guarantee than an inode, so it is only ever the fallback.
|
||||
return "created:" + attributes.creationTime();
|
||||
}
|
||||
|
||||
private static boolean pathExists(Path path, String purpose) throws IOException {
|
||||
|
||||
@@ -374,6 +374,12 @@ final class JigsawStudioHistoryStore {
|
||||
}
|
||||
|
||||
private static void forceDirectory(Path directory) throws IOException {
|
||||
// A directory can only be opened and fsynced on a POSIX filesystem; Windows rejects the
|
||||
// open outright. Matches DirectoryDurability and DatapackIngestService, which already
|
||||
// skip the barrier there.
|
||||
if (!Files.getFileStore(directory).supportsFileAttributeView("posix")) {
|
||||
return;
|
||||
}
|
||||
try (FileChannel channel = FileChannel.open(directory, StandardOpenOption.READ)) {
|
||||
channel.force(true);
|
||||
}
|
||||
|
||||
@@ -145,6 +145,6 @@ public class DiagnosticSeverityPolicyTest {
|
||||
}
|
||||
|
||||
private static String read(String relativePath) throws IOException {
|
||||
return Files.readString(Path.of("src/main/java/art/arcane/iris").resolve(relativePath));
|
||||
return Files.readString(Path.of("src/main/java/art/arcane/iris").resolve(relativePath)).replace("\r\n", "\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class IrisWorldsTest {
|
||||
*/
|
||||
@Test
|
||||
public void oneUnusableWorldIsExcludedInsteadOfFailingTheWholeRegistry() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/IrisWorlds.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/IrisWorlds.java")).replace("\r\n", "\n");
|
||||
|
||||
int accessor = source.indexOf("public static IrisWorlds get()");
|
||||
int accessorEnd = source.indexOf("public synchronized void put(", accessor);
|
||||
|
||||
@@ -70,7 +70,7 @@ public class ProgressBossBarToggleTest {
|
||||
}
|
||||
|
||||
private String source(String relativePath) throws Exception {
|
||||
return Files.readString(Path.of("src/main/java/art/arcane/iris").resolve(relativePath));
|
||||
return Files.readString(Path.of("src/main/java/art/arcane/iris").resolve(relativePath)).replace("\r\n", "\n");
|
||||
}
|
||||
|
||||
private void withProgressBossBar(boolean enabled, Runnable body) {
|
||||
|
||||
+2
-2
@@ -387,7 +387,7 @@ public class ServerConfiguratorDatapackFingerprintTest {
|
||||
@Test
|
||||
public void recoveryRunsBeforeRestoredFingerprintReuseHashFallbackAndCompilation() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/ServerConfigurator.java"));
|
||||
"src/main/java/art/arcane/iris/core/ServerConfigurator.java")).replace("\r\n", "\n");
|
||||
int installIfChanged = source.indexOf("installDataPacksIfChanged(boolean fullInstall)");
|
||||
int recovery = source.indexOf("DatapackIngestService.reapplyFromStaging", installIfChanged);
|
||||
int restored = source.indexOf("restoredCompilerInputFingerprint()", recovery);
|
||||
@@ -407,7 +407,7 @@ public class ServerConfiguratorDatapackFingerprintTest {
|
||||
@Test
|
||||
public void studioTimingSeparatesRecoveryFingerprintCompilationAndTotal() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/ServerConfigurator.java"));
|
||||
"src/main/java/art/arcane/iris/core/ServerConfigurator.java")).replace("\r\n", "\n");
|
||||
int timedInstall = source.indexOf("BiConsumer<String, Long> timingConsumer");
|
||||
int recovery = source.indexOf("\"datapack_external_recovery\"", timedInstall);
|
||||
int fingerprint = source.indexOf("\"datapack_compiler_input_fingerprint\"", recovery);
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ public class DatapackIngestRuntimeInvalidationTest {
|
||||
@Test
|
||||
public void everyPublicMutationInvalidatesLoadedRuntimeBeforeLocking() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java"));
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java")).replace("\r\n", "\n");
|
||||
|
||||
assertInvalidatesBeforeLock(source, "public static Report ingest(");
|
||||
assertInvalidatesBeforeLock(source, "public static ReapplyOutcome reapplyFromStaging(");
|
||||
@@ -21,7 +21,7 @@ public class DatapackIngestRuntimeInvalidationTest {
|
||||
@Test
|
||||
public void noChangeChecksRestoreWhileChangedIngestRemainsRestartBound() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java"));
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java")).replace("\r\n", "\n");
|
||||
int ingest = source.indexOf("public static Report ingest(");
|
||||
int unlock = source.indexOf("TRANSACTION_LOCK.unlock();", ingest);
|
||||
int restore = source.indexOf(
|
||||
|
||||
@@ -249,7 +249,7 @@ public class DatapackIngestServiceTest {
|
||||
@Test
|
||||
public void startupChecksCheapCacheContextBeforeHashingManagedDatapacks() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java"));
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java")).replace("\r\n", "\n");
|
||||
int validation = source.indexOf("public static StartupValidationOutcome validateOnStartup()");
|
||||
int cacheRead = source.indexOf("readStartupValidationCache", validation);
|
||||
int contextCheck = source.indexOf("startupValidationContextMatches(", cacheRead);
|
||||
@@ -266,7 +266,7 @@ public class DatapackIngestServiceTest {
|
||||
@Test
|
||||
public void unchangedPostStartupMaintenanceReturnsBeforeFingerprinting() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java"));
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java")).replace("\r\n", "\n");
|
||||
int refresh = source.indexOf(
|
||||
"refreshStartupValidationAfterMaintenance(boolean maintenanceChanged)");
|
||||
int unchangedGuard = source.indexOf("if (!maintenanceChanged)", refresh);
|
||||
@@ -806,7 +806,7 @@ public class DatapackIngestServiceTest {
|
||||
@Test
|
||||
public void directoryHashRestatsAttributesAndVolumeBeforeOpeningEachFile() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java"));
|
||||
"src/main/java/art/arcane/iris/core/datapack/DatapackIngestService.java")).replace("\r\n", "\n");
|
||||
int method = source.indexOf("private static String directoryHash(File root)");
|
||||
int entries = source.indexOf("List<Path> entries = new ArrayList<>()", method);
|
||||
int loop = source.indexOf("for (Path entry : entries)", entries);
|
||||
|
||||
@@ -54,7 +54,8 @@ public class MissingWorldStorageLogTest {
|
||||
|
||||
assertEquals(2, emitted.size());
|
||||
assertTrue(emitted.get(0), emitted.get(0).contains("world_iris_gone"));
|
||||
assertTrue(emitted.get(0), emitted.get(0).contains("/srv/world/dimensions/iris/gone"));
|
||||
assertTrue(emitted.get(0),
|
||||
emitted.get(0).contains(Path.of("/srv/world/dimensions/iris/gone").toString()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -80,7 +81,8 @@ public class MissingWorldStorageLogTest {
|
||||
|
||||
assertTrue(MissingWorldStorageLog.hasWarned("world_iris_husk"));
|
||||
assertEquals(2, emitted.size());
|
||||
assertTrue(emitted.get(0), emitted.get(0).contains("/srv/world/dimensions/iris/husk"));
|
||||
assertTrue(emitted.get(0),
|
||||
emitted.get(0).contains(Path.of("/srv/world/dimensions/iris/husk").toString()));
|
||||
assertTrue(emitted.get(1), emitted.get(1).contains("world_iris_husk"));
|
||||
assertFalse("an empty folder is deleted, not restored", emitted.get(1).contains("Restore"));
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public class MultiverseCoreLinkTest {
|
||||
|
||||
@Test
|
||||
public void registrationDoesNotRewriteTheRecordedMultiverseName() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/link/MultiverseCoreLink.java")).replace("\r\n", "\n");
|
||||
|
||||
assertFalse("worlds are created under the startup name, so the recorded name needs no correction",
|
||||
source.contains("setLegacyWorldName"));
|
||||
|
||||
@@ -56,7 +56,7 @@ public class PackExportClosureTest {
|
||||
@Test
|
||||
public void bothPackagersExportSpawnersMarkersAndTheFullEntityGraph() throws Exception {
|
||||
String bukkit = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/project/IrisPackageCompiler.java"));
|
||||
"src/main/java/art/arcane/iris/core/project/IrisPackageCompiler.java")).replace("\r\n", "\n");
|
||||
assertTrue("Bukkit packager must write spawners/", bukkit.contains("\"spawners/\""));
|
||||
assertTrue("Bukkit packager must write markers/", bukkit.contains("\"markers/\""));
|
||||
assertTrue("Bukkit packager must export region objects alongside biome objects",
|
||||
@@ -64,7 +64,7 @@ public class PackExportClosureTest {
|
||||
assertTrue("Bukkit packager must export entity loot tables", bukkit.contains("getLoot().getTables()"));
|
||||
|
||||
String modded = Files.readString(Path.of(
|
||||
"../adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java"));
|
||||
"../adapters/modded-common/src/main/java/art/arcane/iris/modded/command/ModdedStudioCommands.java")).replace("\r\n", "\n");
|
||||
assertTrue("modded packager must write spawners/", modded.contains("\"spawners\""));
|
||||
assertTrue("modded packager must write markers/", modded.contains("\"markers\""));
|
||||
assertTrue("modded packager must include initial spawns", modded.contains("getInitialSpawns"));
|
||||
|
||||
@@ -21,7 +21,7 @@ public class StudioEntitySpawningTest {
|
||||
@Test
|
||||
public void studioWorldRulesEnableVanillaMobSpawning() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlService.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/WorldRuntimeControlService.java")).replace("\r\n", "\n");
|
||||
int helperStart = source.indexOf("static void enableStudioEntitySpawning");
|
||||
int helperEnd = source.indexOf("public boolean applyNoonTimeLock", helperStart);
|
||||
String helper = source.substring(helperStart, helperEnd);
|
||||
@@ -38,7 +38,7 @@ public class StudioEntitySpawningTest {
|
||||
@Test
|
||||
public void generalStudioUsesAPlayerModeEligibleForNaturalSpawning() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/project/IrisProject.java"));
|
||||
"src/main/java/art/arcane/iris/core/project/IrisProject.java")).replace("\r\n", "\n");
|
||||
|
||||
assertFalse(source.contains("GameMode.SPECTATOR"));
|
||||
assertTrue(source.contains("GameMode.CREATIVE"));
|
||||
|
||||
+5
-5
@@ -65,7 +65,7 @@ public class StudioOpenCoordinatorOpenKindTest {
|
||||
@Test
|
||||
public void studioTimingSeparatesOrderedLifecyclePhases() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int previous = -1;
|
||||
for (String phase : List.of(
|
||||
"resolve_dimension_and_cleanup",
|
||||
@@ -87,7 +87,7 @@ public class StudioOpenCoordinatorOpenKindTest {
|
||||
@Test
|
||||
public void structureStateActivatesAfterStandardTeleportBeforeFinalization() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int entryReady = source.indexOf(
|
||||
"entryLoadFuture.get(STUDIO_ENTRY_LOAD_TIMEOUT_SECONDS, TimeUnit.SECONDS)");
|
||||
int teleport = source.indexOf(
|
||||
@@ -121,7 +121,7 @@ public class StudioOpenCoordinatorOpenKindTest {
|
||||
@Test
|
||||
public void failedOpenMarshalsRetainedStateAbandonmentToTheServerScheduler() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int methodStart = source.indexOf(
|
||||
"private void abandonStudioEntryBootstrap(World world, Throwable failure)");
|
||||
int methodEnd = source.indexOf("private void deferFailedOpenCleanup", methodStart);
|
||||
@@ -135,7 +135,7 @@ public class StudioOpenCoordinatorOpenKindTest {
|
||||
@Test
|
||||
public void queuedRestartDefersFailedOpenCleanupWithoutAcquiringALiveCloseLease() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int openCatch = source.indexOf("} catch (Throwable e) {");
|
||||
int restartCheck = source.indexOf(
|
||||
".active(LifecycleOperationCoordinator.Domain.SERVER_LIFECYCLE)",
|
||||
@@ -160,7 +160,7 @@ public class StudioOpenCoordinatorOpenKindTest {
|
||||
@Test
|
||||
public void openFinalizerReturnsToTheServerThreadBeforeCompletion() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int finalizerCall = source.indexOf("runOpenFinalizer(request.onDone(), world);");
|
||||
int futureCompletion = source.indexOf(
|
||||
"future.complete(new StudioOpenResult(world, safeEntry))", finalizerCall);
|
||||
|
||||
+2
-2
@@ -34,7 +34,7 @@ public class StudioOpenCoordinatorSpawnStuckRegressionTest {
|
||||
@Test
|
||||
public void paperEntryChunkLoadIsAsyncBeforeTheRetentionTicket() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int asyncLoad = source.indexOf("requested = WorldRuntimeControlService.get().requestChunkAsync(");
|
||||
int urgentFlag = source.indexOf("true);", asyncLoad);
|
||||
int retentionTicket = source.indexOf("world.addPluginChunkTicket", asyncLoad);
|
||||
@@ -47,7 +47,7 @@ public class StudioOpenCoordinatorSpawnStuckRegressionTest {
|
||||
@Test
|
||||
public void foliaRetainsItsNonBlockingTicketBootstrapPath() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java"));
|
||||
"src/main/java/art/arcane/iris/core/runtime/StudioOpenCoordinator.java")).replace("\r\n", "\n");
|
||||
int foliaBranch = source.indexOf("if (!J.isFolia())");
|
||||
int retentionSchedule = source.indexOf(
|
||||
"return scheduleEntryChunkRetention(world, chunkX, chunkZ);",
|
||||
|
||||
@@ -87,7 +87,7 @@ public class JigsawStudioLifecycleTest {
|
||||
@Test
|
||||
public void committedStudioActivationDisablesNaturalMobSpawning() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/service/JigsawStudioService.java"));
|
||||
"src/main/java/art/arcane/iris/core/service/JigsawStudioService.java")).replace("\r\n", "\n");
|
||||
int registerStart = source.indexOf("public void register(");
|
||||
int commitStart = source.indexOf("public void activationCommitted(", registerStart);
|
||||
int commitEnd = source.indexOf("public void markChunkGenerated(", commitStart);
|
||||
|
||||
+1
-1
@@ -186,7 +186,7 @@ public class PackDownloadProgressReporterTest {
|
||||
public void playerHudAlwaysShowsLoaderLaneAndActionBarWithCleanup() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/service/PackDownloadProgressReporter.java"
|
||||
));
|
||||
)).replace("\r\n", "\n");
|
||||
|
||||
assertFalse(source.contains("HudSlotRequest"));
|
||||
assertFalse(source.contains("HudSurface"));
|
||||
|
||||
+4
-4
@@ -15,7 +15,7 @@ import static org.junit.Assert.assertTrue;
|
||||
public class StudioSVCPackDownloadContractTest {
|
||||
@Test
|
||||
public void downloadsUseReporterCompletionWithoutMutatingLiveDatapacks() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java")).replace("\r\n", "\n");
|
||||
|
||||
assertTrue(source.contains("reporter.succeed(result);"));
|
||||
assertFalse(method(source, "public void downloadBuiltIn(VolmitSender sender, String key)")
|
||||
@@ -26,7 +26,7 @@ public class StudioSVCPackDownloadContractTest {
|
||||
|
||||
@Test
|
||||
public void downloadLeaseIsAcquiredBeforeUnconditionalIoDispatch() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java")).replace("\r\n", "\n");
|
||||
int mutationStart = source.indexOf("private void runPackMutation(");
|
||||
int mutationEnd = source.indexOf("private void executePackMutation(", mutationStart);
|
||||
String runPackMutation = source.substring(mutationStart, mutationEnd);
|
||||
@@ -47,7 +47,7 @@ public class StudioSVCPackDownloadContractTest {
|
||||
|
||||
@Test
|
||||
public void acceptedDownloadsRouteFeedbackProgressAndTerminalStatesThroughReporter() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java")).replace("\r\n", "\n");
|
||||
String builtIn = method(source, "public void downloadBuiltIn(VolmitSender sender, String key)");
|
||||
String remote = method(source, "public void downloadUrl(VolmitSender sender, String url)");
|
||||
String execute = method(source, "private void executePackMutation(");
|
||||
@@ -64,7 +64,7 @@ public class StudioSVCPackDownloadContractTest {
|
||||
|
||||
@Test
|
||||
public void shutdownClosesAdmissionAndDrainsTrackedDownloadBeforeServiceTeardown() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/service/StudioSVC.java")).replace("\r\n", "\n");
|
||||
String onDisable = method(source, "public void onDisable()");
|
||||
String quiesce = method(source, "public void quiesceDownloadsForShutdown()");
|
||||
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ public class StudioSVCWorldPackFeedbackContractTest {
|
||||
public void persistentPackCopyUsesLocalizedStyledOperatorFeedback() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/service/StudioSVC.java"
|
||||
));
|
||||
)).replace("\r\n", "\n");
|
||||
|
||||
assertEquals(1, occurrences(source, "STUDIO_S_V_C_PACK_COPY_REQUIRES_ASYNC_THREAD"));
|
||||
assertEquals(2, occurrences(source, "STUDIO_S_V_C_PACK_INSTALL_FAILED"));
|
||||
|
||||
@@ -163,7 +163,7 @@ public class StudioSVCWorldPackPublishTest {
|
||||
@Test
|
||||
public void replaceExistingRejectsSymbolicTargetBeforePublication() throws Exception {
|
||||
String sourceCode = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/service/StudioSVC.java"));
|
||||
"src/main/java/art/arcane/iris/core/service/StudioSVC.java")).replace("\r\n", "\n");
|
||||
int install = sourceCode.indexOf("private IrisDimension installIntoDirectory(");
|
||||
int initialTargetSafety = sourceCode.indexOf(
|
||||
"requireSafePublicationTarget(target, replaceExisting)",
|
||||
@@ -296,7 +296,7 @@ public class StudioSVCWorldPackPublishTest {
|
||||
@Test
|
||||
public void replacementKeepsTargetUnauthorizedThroughPublishedFingerprintWindow() throws Exception {
|
||||
String sourceCode = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/service/StudioSVC.java"));
|
||||
"src/main/java/art/arcane/iris/core/service/StudioSVC.java")).replace("\r\n", "\n");
|
||||
int install = sourceCode.indexOf("private IrisDimension installIntoDirectory(");
|
||||
int beginMutation = sourceCode.indexOf("PackValidationRegistry.beginRootMutation(target)", install);
|
||||
int publish = sourceCode.indexOf("AtomicDirectoryPublisher.publish(stage, target)", beginMutation);
|
||||
|
||||
@@ -11,7 +11,7 @@ import static org.junit.Assert.assertTrue;
|
||||
public class IrisCreatorProgressContractTest {
|
||||
@Test
|
||||
public void persistentCreateReportsTheWholeLifecycleInsteadOfOnlySpawnChunks() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/tools/IrisCreator.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/tools/IrisCreator.java")).replace("\r\n", "\n");
|
||||
|
||||
int startReporter = source.indexOf("WorldCreationProgressReporter.start(sender, name)");
|
||||
int resolve = source.indexOf("0.02D, \"resolve_dimension\"", startReporter);
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@ import static org.junit.Assert.assertTrue;
|
||||
public class IrisPersistentWorldCreationContractTest {
|
||||
@Test
|
||||
public void productionCreateFreezesIntoCurrentPlatformStorageBeforeWorldCreation() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/tools/IrisCreator.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/tools/IrisCreator.java")).replace("\r\n", "\n");
|
||||
int createStart = source.indexOf("private World createReserved(");
|
||||
int createEnd = source.indexOf("static Player createTeleportTarget(", createStart);
|
||||
String create = source.substring(createStart, createEnd);
|
||||
@@ -39,7 +39,7 @@ public class IrisPersistentWorldCreationContractTest {
|
||||
|
||||
@Test
|
||||
public void persistentCreatorPreservesConfiguredNameAndCanonicalIdentity() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java"));
|
||||
String source = Files.readString(Path.of("src/main/java/art/arcane/iris/core/tools/IrisWorldCreator.java")).replace("\r\n", "\n");
|
||||
int createStart = source.indexOf("public WorldCreator create()");
|
||||
int createEnd = source.indexOf("private World.Environment findEnvironment()", createStart);
|
||||
String create = source.substring(createStart, createEnd);
|
||||
@@ -61,7 +61,7 @@ public class IrisPersistentWorldCreationContractTest {
|
||||
public void publicBukkitBackendRebuildKeepsExactFallbackWorldName() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/lifecycle/WorldLifecycleRequest.java"
|
||||
));
|
||||
)).replace("\r\n", "\n");
|
||||
int rebuildStart = source.indexOf("public WorldCreator toWorldCreator()");
|
||||
int rebuildEnd = source.indexOf("return creator;", rebuildStart);
|
||||
String rebuild = source.substring(rebuildStart, rebuildEnd);
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ public class WorldCreationProgressReporterTest {
|
||||
public void bukkitHudMutationIsMarshalledOffTheAsyncReporterThread() throws Exception {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/core/tools/WorldCreationProgressReporter.java"
|
||||
));
|
||||
)).replace("\r\n", "\n");
|
||||
|
||||
assertEquals(1, occurrences(source, "Bukkit.createBossBar("));
|
||||
assertTrue(source.contains("J.sfut(reporter::initializePlayerHud)"));
|
||||
|
||||
@@ -12,7 +12,7 @@ public class EngineRuntimePublicationContractTest {
|
||||
@Test
|
||||
public void worldManagerStartsOnlyAfterTheRuntimeSessionIsReady() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java"));
|
||||
"src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java")).replace("\r\n", "\n");
|
||||
int publishStart = source.indexOf("void publishRuntime(");
|
||||
int publishEnd = source.indexOf("private void scheduleRuntimeTasks", publishStart);
|
||||
String publish = source.substring(publishStart, publishEnd);
|
||||
@@ -27,7 +27,7 @@ public class EngineRuntimePublicationContractTest {
|
||||
@Test
|
||||
public void failedManagerStartClosesAdmissionBeforeRuntimeCleanup() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java"));
|
||||
"src/main/java/art/arcane/iris/engine/EngineRuntimeBuilder.java")).replace("\r\n", "\n");
|
||||
int publishStart = source.indexOf("void publishRuntime(");
|
||||
int publishEnd = source.indexOf("private void scheduleRuntimeTasks", publishStart);
|
||||
String publish = source.substring(publishStart, publishEnd);
|
||||
|
||||
@@ -12,7 +12,7 @@ public class EngineShutdownOwnershipContractTest {
|
||||
@Test
|
||||
public void ownershipCloseMustSucceedBeforeMantleRelease() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java"));
|
||||
"src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java")).replace("\r\n", "\n");
|
||||
int ownershipClose = source.indexOf("NativeStructureOwnershipStore.close(engine)");
|
||||
int ownershipGate = source.indexOf("if (ownershipFailure == null)", ownershipClose);
|
||||
int mantleRelease = source.indexOf("releaseMantle(failure)", ownershipGate);
|
||||
@@ -25,7 +25,7 @@ public class EngineShutdownOwnershipContractTest {
|
||||
@Test
|
||||
public void failedConstructionKeepsMantleOpenWhileOwnershipWritesRemain() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java"));
|
||||
"src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java")).replace("\r\n", "\n");
|
||||
int cleanupStart = source.indexOf("void cleanupFailedConstruction");
|
||||
int cleanupEnd = source.indexOf("Throwable closeAssembly", cleanupStart);
|
||||
String cleanup = source.substring(cleanupStart, cleanupEnd);
|
||||
|
||||
+5
-5
@@ -12,7 +12,7 @@ public class NativeStructureBootstrapLifecycleContractTest {
|
||||
@Test
|
||||
public void closeWaitsBeforeLifecycleMutationAndGenerationSeal() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java"));
|
||||
"src/main/java/art/arcane/iris/engine/EngineShutdownSequence.java")).replace("\r\n", "\n");
|
||||
int closeStart = source.indexOf("void close()");
|
||||
int closeEnd = source.indexOf("void cleanupFailedConstruction", closeStart);
|
||||
String close = source.substring(closeStart, closeEnd);
|
||||
@@ -28,7 +28,7 @@ public class NativeStructureBootstrapLifecycleContractTest {
|
||||
@Test
|
||||
public void fullAndComplexHotloadWaitBeforeLifecycleMutationAndGenerationSeal() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/EngineHotloader.java"));
|
||||
"src/main/java/art/arcane/iris/engine/EngineHotloader.java")).replace("\r\n", "\n");
|
||||
int complexStart = source.indexOf("void hotloadComplex()");
|
||||
int fullStart = source.indexOf("void hotloadSilently()", complexStart);
|
||||
String complex = source.substring(complexStart, fullStart);
|
||||
@@ -52,7 +52,7 @@ public class NativeStructureBootstrapLifecycleContractTest {
|
||||
@Test
|
||||
public void ringBootstrapStartsUnderTheSameLifecycleLock() throws IOException {
|
||||
String source = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/IrisEngine.java"));
|
||||
"src/main/java/art/arcane/iris/engine/IrisEngine.java")).replace("\r\n", "\n");
|
||||
int start = source.indexOf("public CompletableFuture<Void> startNativeStructureBootstrap(");
|
||||
int end = source.indexOf("void awaitNativeStructureBootstrap", start);
|
||||
String method = source.substring(start, end);
|
||||
@@ -68,7 +68,7 @@ public class NativeStructureBootstrapLifecycleContractTest {
|
||||
@Test
|
||||
public void studioVolumeQueriesStayOutsideCachesUntilTheBootstrapGateReleases() throws IOException {
|
||||
String engineSource = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/IrisEngine.java"));
|
||||
"src/main/java/art/arcane/iris/engine/IrisEngine.java")).replace("\r\n", "\n");
|
||||
int queryStart = engineSource.indexOf(
|
||||
"public KList<NativeStructureVolume> getNativeStructureVolumes(");
|
||||
int queryEnd = engineSource.indexOf(
|
||||
@@ -77,7 +77,7 @@ public class NativeStructureBootstrapLifecycleContractTest {
|
||||
int setterEnd = engineSource.indexOf("public IrisEngineData getEngineData()", queryEnd);
|
||||
String setter = engineSource.substring(queryEnd, setterEnd);
|
||||
String generatorSource = Files.readString(Path.of(
|
||||
"src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java"));
|
||||
"src/main/java/art/arcane/iris/engine/platform/BukkitChunkGenerator.java")).replace("\r\n", "\n");
|
||||
int releaseStart = generatorSource.indexOf("public void endStudioEntryBootstrap()");
|
||||
int releaseEnd = generatorSource.indexOf(
|
||||
"public boolean isStudioEntryBootstrapActive()", releaseStart);
|
||||
|
||||
+1
-1
@@ -235,7 +235,7 @@ public class StructureHandlerTest {
|
||||
public void completionUsesOneReachabilitySnapshotAndLocatableKeys() throws IOException {
|
||||
Path sourcePath = Path.of(
|
||||
"src/main/java/art/arcane/iris/util/common/director/specialhandlers/StructureHandler.java");
|
||||
String source = Files.readString(sourcePath);
|
||||
String source = Files.readString(sourcePath).replace("\r\n", "\n");
|
||||
int methodStart = source.indexOf("public KList<String> getPossibilities()");
|
||||
int methodEnd = source.indexOf("@Override\n public String toString", methodStart);
|
||||
String method = source.substring(methodStart, methodEnd);
|
||||
|
||||
Reference in New Issue
Block a user