From ef12d0dc10beb42a8d653cd3498c66e04ad8f9eb Mon Sep 17 00:00:00 2001 From: Rely-xcy <179817675+Rely-xcy@users.noreply.github.com> Date: Tue, 22 Sep 2026 00:27:25 +0800 Subject: [PATCH 1/2] test: fall back to rm for recursive deletion in proot --- .../test/java/com/aicode/testutil/TestFileAccessProvider.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt b/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt index 66634854..dbe1e810 100644 --- a/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt +++ b/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt @@ -89,7 +89,8 @@ class TestFileAccessProvider : FileAccessProvider { } override fun deleteRecursively(path: String) { - File(path).deleteRecursively() + if (File(path).deleteRecursively()) return + check(ProcessBuilder("rm", "-rf", "--", path).start().waitFor() == 0) } override fun rename(path: String, newPath: String) { From a7a7cca414a07cde8ff42b74c951793fd0045c8e Mon Sep 17 00:00:00 2001 From: Rely-xcy <179817675+Rely-xcy@users.noreply.github.com> Date: Tue, 22 Sep 2026 00:41:25 +0800 Subject: [PATCH 2/2] test: make recursive deletion fallback platform-aware --- .../com/aicode/testutil/TestFileAccessProvider.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt b/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt index dbe1e810..24f052d5 100644 --- a/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt +++ b/app/src/test/java/com/aicode/testutil/TestFileAccessProvider.kt @@ -90,7 +90,16 @@ class TestFileAccessProvider : FileAccessProvider { override fun deleteRecursively(path: String) { if (File(path).deleteRecursively()) return - check(ProcessBuilder("rm", "-rf", "--", path).start().waitFor() == 0) + val command = if (System.getProperty("os.name").startsWith("Windows", ignoreCase = true)) { + listOf("cmd", "/c", "rmdir", "/s", "/q", path) + } else { + listOf("rm", "-rf", "--", path) + } + val process = ProcessBuilder(command) + .redirectOutput(ProcessBuilder.Redirect.INHERIT) + .redirectError(ProcessBuilder.Redirect.INHERIT) + .start() + check(process.waitFor() == 0) } override fun rename(path: String, newPath: String) {