diff --git a/jimfs/src/main/java/com/google/common/jimfs/JimfsFileStore.java b/jimfs/src/main/java/com/google/common/jimfs/JimfsFileStore.java index 021cf0ab..8827b3e4 100644 --- a/jimfs/src/main/java/com/google/common/jimfs/JimfsFileStore.java +++ b/jimfs/src/main/java/com/google/common/jimfs/JimfsFileStore.java @@ -240,6 +240,12 @@ public long getUnallocatedSpace() throws IOException { return disk.getUnallocatedSpace(); } + @SuppressWarnings("MissingOverride") // FileStore.getBlockSize() is Java 10+ + public long getBlockSize() throws IOException { + state.checkOpen(); + return disk.blockSize(); + } + @Override public boolean supportsFileAttributeView(Class type) { state.checkOpen(); diff --git a/jimfs/src/test/java/com/google/common/jimfs/ConfigurationTest.java b/jimfs/src/test/java/com/google/common/jimfs/ConfigurationTest.java index 618fc8d6..afebecf8 100644 --- a/jimfs/src/test/java/com/google/common/jimfs/ConfigurationTest.java +++ b/jimfs/src/test/java/com/google/common/jimfs/ConfigurationTest.java @@ -228,6 +228,8 @@ public void testFileSystemForCustomConfiguration() throws IOException { assertThat(fs.supportedFileAttributeViews()).containsExactly("basic", "owner", "posix", "unix"); Files.createFile(fs.getPath("/foo")); + assertThat(((JimfsFileStore) Iterables.getOnlyElement(fs.getFileStores())).getBlockSize()) + .isEqualTo(10); assertThat(Files.getAttribute(fs.getPath("/foo"), "posix:permissions")) .isEqualTo(PosixFilePermissions.fromString("---------")); assertThat(Files.getAttribute(fs.getPath("/foo"), "creationTime")) diff --git a/jimfs/src/test/java/com/google/common/jimfs/JimfsUnixLikeFileSystemTest.java b/jimfs/src/test/java/com/google/common/jimfs/JimfsUnixLikeFileSystemTest.java index 6a8dcd5f..5f50148f 100644 --- a/jimfs/src/test/java/com/google/common/jimfs/JimfsUnixLikeFileSystemTest.java +++ b/jimfs/src/test/java/com/google/common/jimfs/JimfsUnixLikeFileSystemTest.java @@ -142,6 +142,9 @@ public void testFileStore() throws IOException { long totalSpace = 1024 * 1024 * 1024; // 1 GB assertThat(fileStore.getTotalSpace()).isEqualTo(totalSpace); + // Default unix block size; FileStore.getBlockSize() is Java 10+, so call the Jimfs method + // directly (same package) so this still compiles on Java 8. + assertThat(((JimfsFileStore) fileStore).getBlockSize()).isEqualTo(8192); assertThat(fileStore.getUnallocatedSpace()).isEqualTo(totalSpace); assertThat(fileStore.getUsableSpace()).isEqualTo(totalSpace);