[gparted] Add CreateAndWriteUUIDAndReadLabel unit test (!104)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Add CreateAndWriteUUIDAndReadLabel unit test (!104)
- Date: Mon, 4 Jul 2022 18:09:41 +0000 (UTC)
commit fde76a949fbd9ba7bff30579626a6ff812b555ff
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Fri Jul 1 09:09:52 2022 +0100
Add CreateAndWriteUUIDAndReadLabel unit test (!104)
During review and testing of this patchset it was discovered that using
GParted to set a new UUID on a FAT16 or FAT32 file system that there was
a new unwanted side effect of clearing the label.
Add unit test to cover this error scenario. It does the following:
1. Creates a file system with a known label;
2. Writes a new UUID;
3. Reads the label and confirms it matches the initial label.
This new unit test captures the fault like this:
$ ./test_SupportedFileSystems --gtest_filter='*CreateAndWriteUUIDAndReadLabel*'
...
[ RUN ] My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/fat16
test_SupportedFileSystems.cc:645: Failure
Expected equality of these values:
fs_label
Which is: "TEST_LABEL"
m_partition.get_filesystem_label().c_str()
Which is: ""
[ FAILED ] My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/fat16, where GetParam() = 13
(21 ms)
[ RUN ] My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/fat32
test_SupportedFileSystems.cc:645: Failure
Expected equality of these values:
fs_label
Which is: "TEST_LABEL"
m_partition.get_filesystem_label().c_str()
Which is: ""
[ FAILED ] My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/fat32, where GetParam() = 14
(22 ms)
Don't forget to exclude this unit test for file systems which need a
loop device but which fails to be created inside the docker CI image.
Reference:
39fdfe51da4bddecb2c99a9b544b270130423e72
Exclude unit tests needing losetup in Docker CI image (!59)
Closes !104 - Add Alpine Linux CI jobs and resolve label and UUID issues
with FAT16/32
.gitlab-ci.yml | 3 +++
tests/test_SupportedFileSystems.cc | 27 +++++++++++++++++++++++++++
2 files changed, 30 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5a01535b..63f9cb6e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -92,6 +92,9 @@ stages:
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteLabel/nilfs2"
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUID/lvm2pv"
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUID/nilfs2"
+ - GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/btrfs"
+ - GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/lvm2pv"
+ - GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/nilfs2"
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndCheck/lvm2pv"
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndRemove/lvm2pv"
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndGrow/btrfs"
diff --git a/tests/test_SupportedFileSystems.cc b/tests/test_SupportedFileSystems.cc
index f38c2407..f08b29b8 100644
--- a/tests/test_SupportedFileSystems.cc
+++ b/tests/test_SupportedFileSystems.cc
@@ -617,6 +617,33 @@ TEST_P(SupportedFileSystemsTest, CreateAndWriteUUID)
}
+TEST_P(SupportedFileSystemsTest, CreateAndWriteUUIDAndReadLabel)
+{
+ SKIP_IF_FS_DOESNT_SUPPORT(create);
+ SKIP_IF_FS_DOESNT_SUPPORT(write_uuid);
+ SKIP_IF_FS_DOESNT_SUPPORT(read_label);
+ SKIP_IF_NOT_ROOT_FOR_REQUIRED_LOOPDEV_FOR_FS(FS_BTRFS);
+ SKIP_IF_NOT_ROOT_FOR_REQUIRED_LOOPDEV_FOR_FS(FS_LVM2_PV);
+ SKIP_IF_NOT_ROOT_FOR_REQUIRED_LOOPDEV_FOR_FS(FS_NILFS2);
+
+ const char* fs_label = "TEST_LABEL";
+ create_image_file();
+ m_partition.set_filesystem_label(fs_label);
+ ASSERT_TRUE(m_fs_object->create(m_partition, m_operation_detail)) << m_operation_detail;
+
+ // Test writing a new random UUID is successful.
+ ASSERT_TRUE(m_fs_object->write_uuid(m_partition, m_operation_detail)) << m_operation_detail;
+
+ // Test reading the label is successful and it hasn't changed.
+ reload_partition();
+ m_fs_object->read_label(m_partition);
+ EXPECT_STREQ(fs_label, m_partition.get_filesystem_label().c_str());
+
+ // Test messages from read operation are empty or print them.
+ EXPECT_TRUE(m_partition.get_messages().empty()) << m_partition;
+}
+
+
TEST_P(SupportedFileSystemsTest, CreateAndCheck)
{
SKIP_IF_FS_DOESNT_SUPPORT(create);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]