package com.peachpasswords.sync import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test import java.io.File class RustNoiseNativeCoverageTest { @Test fun `release Noise loader uses only the packaged library name`() { val source = projectFile("app/src/main/java/com/peachpasswords/sync/RustNoiseNative.kt").readText() assertTrue(source.contains("System.loadLibrary(\"peach_noise_core\")")) assertFalse(source.contains("System.load(")) assertFalse(source.contains("peach.noise.library.path")) assertFalse(source.contains("System.getProperty")) } @Test fun `host loading configuration stays outside the release loader`() { val gradle = projectFile("app/build.gradle").readText() val rustBuild = projectFile("scripts/build-noise-core.sh").readText() assertTrue(gradle.contains("target/release/libpeach_noise_core.dylib")) assertTrue(gradle.contains("systemProperty \"java.library.path\"")) assertFalse(gradle.contains("systemProperty \"peach.noise.library.path\"")) assertFalse(rustBuild.contains("test-constructors")) } private fun projectFile(relativePath: String): File = listOf(File(relativePath), File("../$relativePath"), File("../../$relativePath")) .firstOrNull { it.exists() && (relativePath != "build.gradle" || it.readText().contains("PEACH_NOISE_CORE_FEATURES")) } ?: error("project file not found: $relativePath") }