From 80b49ccd6a7c441585178d09abdb817fdcd46d2c Mon Sep 17 00:00:00 2001 From: Juraj Kusnier <jurajkusnier@users.noreply.github.com> Date: Thu, 22 Apr 2021 16:01:46 +0200 Subject: [PATCH] Update DebugLogger (DEV) (#2906) * update DebugLogger * update DebugLogger * check parent dirs for usable space * update test --- .../debuglog/internal/DebugLogStorageCheck.kt | 10 ++++++++- .../internal/DebugLogStorageCheckTest.kt | 21 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheck.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheck.kt index 2e8e7aba2..113ffeb5b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheck.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheck.kt @@ -20,7 +20,15 @@ class DebugLogStorageCheck @Inject constructor( private val availableSpace: Long @SuppressLint("UsableSpace") - get() = targetPath.usableSpace + get() { + var eval: File = targetPath + var parent: File? = eval.parentFile + while (!eval.exists() && parent != null) { + eval = parent + parent = eval.parentFile + } + return eval.usableSpace + } fun isLowStorage(forceCheck: Boolean = false): Boolean { val now = timeProvider() diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheckTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheckTest.kt index 44a2d6e19..f19da6396 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheckTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/bugreporting/debuglog/internal/DebugLogStorageCheckTest.kt @@ -8,6 +8,7 @@ import io.mockk.Runs import io.mockk.every import io.mockk.impl.annotations.MockK import io.mockk.just +import io.mockk.mockk import io.mockk.slot import io.mockk.verify import org.junit.jupiter.api.AfterEach @@ -28,6 +29,8 @@ class DebugLogStorageCheckTest : BaseTest() { MockKAnnotations.init(this) every { targetPath.usableSpace } returns 250 * 1000 * 1024L + every { targetPath.parentFile } returns null + every { targetPath.exists() } returns true every { logWriter.write(any()) } just Runs } @@ -68,7 +71,6 @@ class DebugLogStorageCheckTest : BaseTest() { every { targetPath.usableSpace } returns 199 * 1000 * 1024L val instance = createInstance() instance.isLowStorage() shouldBe true - instance.isLowStorage() shouldBe true currentTime += 60 * 1000L instance.isLowStorage() shouldBe true @@ -77,6 +79,23 @@ class DebugLogStorageCheckTest : BaseTest() { verify(exactly = 1) { logWriter.write(any()) } } + @Test + fun `target path does not exists`() { + val parentPath = mockk<File>() + every { parentPath.exists() } returns true + every { parentPath.parentFile } returns null + every { parentPath.usableSpace } returns 250 * 1000 * 1024L + + every { targetPath.exists() } returns false + every { targetPath.parentFile } returns parentPath + every { targetPath.usableSpace } returns 0L + + val instance = createInstance() + instance.isLowStorage() shouldBe false + + verify { logWriter wasNot Called } + } + @Test fun `checks happen at most every 5 seconds`() { val instance = createInstance() -- GitLab