RustNoiseNativeCoverageTest.kt

1.5 KB · raw

1package com.peachpasswords.sync23import org.junit.Assert.assertFalse4import org.junit.Assert.assertTrue5import org.junit.Test6import java.io.File78class RustNoiseNativeCoverageTest {9    @Test10    fun `release Noise loader uses only the packaged library name`() {11        val source = projectFile("app/src/main/java/com/peachpasswords/sync/RustNoiseNative.kt").readText()1213        assertTrue(source.contains("System.loadLibrary(\"peach_noise_core\")"))14        assertFalse(source.contains("System.load("))15        assertFalse(source.contains("peach.noise.library.path"))16        assertFalse(source.contains("System.getProperty"))17    }1819    @Test20    fun `host loading configuration stays outside the release loader`() {21        val gradle = projectFile("app/build.gradle").readText()22        val rustBuild = projectFile("scripts/build-noise-core.sh").readText()2324        assertTrue(gradle.contains("target/release/libpeach_noise_core.dylib"))25        assertTrue(gradle.contains("systemProperty \"java.library.path\""))26        assertFalse(gradle.contains("systemProperty \"peach.noise.library.path\""))27        assertFalse(rustBuild.contains("test-constructors"))28    }29    private fun projectFile(relativePath: String): File =30        listOf(File(relativePath), File("../$relativePath"), File("../../$relativePath"))31            .firstOrNull { it.exists() && (relativePath != "build.gradle" || it.readText().contains("PEACH_NOISE_CORE_FEATURES")) }32            ?: error("project file not found: $relativePath")33}