From 852a8a00273c9128efeed0217a8e5d3fcd8bf780 Mon Sep 17 00:00:00 2001 From: Lena Date: Sat, 1 Aug 2026 00:00:00 +0000 Subject: app: harden mirroring lifecycle and state --- .../java/invalid/lena/scrcpy/CrashlogTest.java | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/src/test/java/invalid/lena/scrcpy/CrashlogTest.java (limited to 'app/src/test/java/invalid/lena/scrcpy/CrashlogTest.java') diff --git a/app/src/test/java/invalid/lena/scrcpy/CrashlogTest.java b/app/src/test/java/invalid/lena/scrcpy/CrashlogTest.java new file mode 100644 index 0000000..41c05a1 --- /dev/null +++ b/app/src/test/java/invalid/lena/scrcpy/CrashlogTest.java @@ -0,0 +1,36 @@ +package invalid.lena.scrcpy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.nio.file.Files; + +public class CrashlogTest { + + @Rule + public TemporaryFolder dir = new TemporaryFolder(); + + @Test + public void pruneKeepsNewestCrashlogsOnly() throws Exception { + for (int i = 0; i < 7; i++) { + File file = new File(dir.getRoot(), "crash-" + i + ".log"); + Files.write(file.toPath(), new byte[]{(byte) i}); + assertTrue(file.setLastModified(1_000L + i)); + } + File unrelated = dir.newFile("notes.txt"); + + Crashlog.prune(dir.getRoot(), 5); + + File[] logs = dir.getRoot().listFiles((parent, name) -> name.endsWith(".log")); + assertEquals(5, logs.length); + assertFalse(new File(dir.getRoot(), "crash-0.log").exists()); + assertFalse(new File(dir.getRoot(), "crash-1.log").exists()); + assertTrue(unrelated.exists()); + } +} -- cgit v1.2.3