[gparted] Accept FS usage figures within significant unallocated threshold (!49)



commit c15d0cd6aa765548e7384ed19a79b7e9e2e5595b
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date:   Sun Oct 20 12:22:49 2019 +0100

    Accept FS usage figures within significant unallocated threshold (!49)
    
    So far the read file system usage figures, read via the file system
    interface classes using file system specific tools, have been checked to
    the exact sector for:
         0 <= used <= size
         0 <= unused <= size
         unallocated = 0
         used + unused = size
    
    However for JFS and NTFS this fails like this:
    
        # ./test_SupportedFileSystems --gtest_filter='*ReadUsage/*' | fgrep ' ms'
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/btrfs (335 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/exfat (0 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/ext2 (38 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/ext3 (131 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/ext4 (32 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/f2fs (47 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/fat16 (19 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/fat32 (48 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/hfs (0 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/hfsplus (0 ms)
        [  FAILED  ] My/SupportedFileSystemsTest.CreateAndReadUsage/jfs, where GetParam() = 17 (73 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/linuxswap (20 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/luks (0 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/lvm2pv (410 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/minix (0 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/nilfs2 (226 ms)
        [  FAILED  ] My/SupportedFileSystemsTest.CreateAndReadUsage/ntfs, where GetParam() = 23 (56 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/reiser4 (49 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/reiserfs (139 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/udf (34 ms)
        [       OK ] My/SupportedFileSystemsTest.CreateAndReadUsage/xfs (67 ms)
        [----------] 21 tests from My/SupportedFileSystemsTest (1726 ms total)
        [==========] 21 tests from 1 test case ran. (1726 ms total)
    
        # ./test_SupportedFileSystems --gtest_filter='*ReadUsage/jfs:*ReadUsage/ntfs'
        Running main() from test_SupportedFileSystems.cc
        Note: Google Test filter = *ReadUsage/jfs:*ReadUsage/ntfs
        [==========] Running 2 tests from 1 test case.
        [----------] Global test environment set-up.
        [----------] 2 tests from My/SupportedFileSystemsTest
        [ RUN      ] My/SupportedFileSystemsTest.CreateAndReadUsage/jfs
        test_SupportedFileSystems.cc:465: Failure
        Expected equality of these values:
          m_partition.sectors_unallocated
            Which is: 2472
          0
        test_SupportedFileSystems.cc:517: Failure
        Expected equality of these values:
          m_partition.sectors_used + m_partition.sectors_unused
            Which is: 521816
          m_partition.get_sector_length()
            Which is: 524288
        [  FAILED  ] My/SupportedFileSystemsTest.CreateAndReadUsage/jfs, where GetParam() = 17 (36 ms)
        [ RUN      ] My/SupportedFileSystemsTest.CreateAndReadUsage/ntfs
        test_SupportedFileSystems.cc:465: Failure
        Expected equality of these values:
          m_partition.sectors_unallocated
            Which is: 8
          0
        test_SupportedFileSystems.cc:517: Failure
        Expected equality of these values:
          m_partition.sectors_used + m_partition.sectors_unused
            Which is: 524280
          m_partition.get_sector_length()
            Which is: 524288
        [  FAILED  ] My/SupportedFileSystemsTest.CreateAndReadUsage/ntfs, where GetParam() = 23 (35 ms)
        [----------] 2 tests from My/SupportedFileSystemsTest (71 ms total)
    
        [----------] Global test environment tear-down
        [==========] 2 tests from 1 test case ran. (72 ms total)
        [  PASSED  ] 0 tests.
        [  FAILED  ] 2 tests, listed below:
        [  FAILED  ] My/SupportedFileSystemsTest.CreateAndReadUsage/jfs, where GetParam() = 17
        [  FAILED  ] My/SupportedFileSystemsTest.CreateAndReadUsage/ntfs, where GetParam() = 23
    
         2 FAILED TESTS
    
    So JFS is reporting 2472 unallocated sectors in a size of 524288 sectors
    and NTFS is reporting 8 unallocated sectors in the same size.  This
    exact issue is already solved for GParted so that it doesn't show a
    small amount of unallocated space by commits [1][2] from Bug 499202 [3].
    
    Fix the same way, use the accessors to the file system usage figures
    which don't show unallocated space when it is below the significant
    threshold.
    
    [1] b5c80f18a9ce27fda2b11e9b590d7f856209ac32
        Enhance calculation of significant unallocated space (#499202)
    
    [2] 7ebedc4bb3b81e85fb4c628a2a05308ada147d68
        Don't show intrinsic unallocated space (#499202)
    
    [3] Bug 499202 - gparted does not see the difference if partition size
                     differs from filesystem size
        https://bugzilla.gnome.org/show_bug.cgi?id=499202
    
    Closes !49 - Add file system interface tests

 tests/test_SupportedFileSystems.cc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/tests/test_SupportedFileSystems.cc b/tests/test_SupportedFileSystems.cc
index aca004a9..c80050fd 100644
--- a/tests/test_SupportedFileSystems.cc
+++ b/tests/test_SupportedFileSystems.cc
@@ -506,15 +506,15 @@ TEST_P(SupportedFileSystemsTest, CreateAndReadUsage)
        m_fs_object->set_used_sectors(m_partition);
        // Test file system usage is reported correctly.
        // Used is between 0 and length.
-       EXPECT_LE(0, m_partition.sectors_used);
-       EXPECT_LE(m_partition.sectors_used, m_partition.get_sector_length());
+       EXPECT_LE(0, m_partition.get_sectors_used());
+       EXPECT_LE(m_partition.get_sectors_used(), m_partition.get_sector_length());
        // Unused is between 0 and length.
-       EXPECT_LE(0, m_partition.sectors_unused);
-       EXPECT_LE(m_partition.sectors_unused, m_partition.get_sector_length());
+       EXPECT_LE(0, m_partition.get_sectors_unused());
+       EXPECT_LE(m_partition.get_sectors_unused(), m_partition.get_sector_length());
        // Unallocated is 0.
-       EXPECT_EQ(m_partition.sectors_unallocated, 0);
+       EXPECT_EQ(m_partition.get_sectors_unallocated(), 0);
        // Used + unused = length.
-       EXPECT_EQ(m_partition.sectors_used + m_partition.sectors_unused, m_partition.get_sector_length());
+       EXPECT_EQ(m_partition.get_sectors_used() + m_partition.get_sectors_unused(), 
m_partition.get_sector_length());
 
        // Test messages from read operation are empty or print them.
        EXPECT_TRUE(m_partition.get_messages().empty()) << m_partition;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]