diff options
author | Pablo Baxter <pablobaxter@msn.com> | 2023-12-11 17:36:16 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-11 20:36:16 -0500 |
commit | 3caa2867114732227f358edcd79239793a36e2e0 (patch) | |
tree | 36561802a0d1d55bb716d3b1cac2ba16f3282e93 | |
parent | 0bbdac899f2c96993ed5706f47c2d6b8ce44c55c (diff) | |
download | okio-3caa2867114732227f358edcd79239793a36e2e0.tar.gz |
Test for listRecursively causing delete to fail (#1361)
-rw-r--r-- | okio/src/jvmTest/kotlin/okio/FileLeakTest.kt | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/okio/src/jvmTest/kotlin/okio/FileLeakTest.kt b/okio/src/jvmTest/kotlin/okio/FileLeakTest.kt index 0a6eee7a..5fd18a6b 100644 --- a/okio/src/jvmTest/kotlin/okio/FileLeakTest.kt +++ b/okio/src/jvmTest/kotlin/okio/FileLeakTest.kt @@ -31,6 +31,8 @@ class FileLeakTest { private lateinit var fakeFileSystem: FakeFileSystem private val fakeZip = "/test.zip".toPath() private val fakeEntry = "some.file".toPath() + private val fakeDirectory = "/another/".toPath() + private val fakeEntry2 = fakeDirectory / "another.file" @Before fun setup() { @@ -41,6 +43,14 @@ class FileLeakTest { putEntry(fakeEntry.name) { writeUtf8("FooBar") } + try { + putNextEntry(ZipEntry(fakeDirectory.name).apply { time = 0L }) + } finally { + closeEntry() + } + putEntry(fakeEntry2.toString()) { + writeUtf8("SomethingElse") + } } } } @@ -55,14 +65,12 @@ class FileLeakTest { fun zipFileSystemExistsTest() { val zipFileSystem = fakeFileSystem.openZip(fakeZip) assertTrue(zipFileSystem.exists(fakeEntry)) - fakeFileSystem.checkNoOpenFiles() } @Test fun zipFileSystemMetadataTest() { val zipFileSystem = fakeFileSystem.openZip(fakeZip) assertNotNull(zipFileSystem.metadataOrNull(fakeEntry)) - fakeFileSystem.checkNoOpenFiles() } @Test @@ -71,7 +79,13 @@ class FileLeakTest { zipFileSystem.source(fakeEntry).use { source -> assertEquals("FooBar", source.buffer().readUtf8()) } - fakeFileSystem.checkNoOpenFiles() + } + + @Test + fun zipFileSystemListRecursiveTest() { + val zipFileSystem = fakeFileSystem.openZip(fakeZip) + zipFileSystem.listRecursively("/".toPath()).toList() + fakeFileSystem.delete(fakeZip) } } |