[gparted] Ignore test failure when reiser4 reports null UUID (#145)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Ignore test failure when reiser4 reports null UUID (#145)
- Date: Wed, 24 Mar 2021 16:46:52 +0000 (UTC)
commit 975d9ecdc959c181b6c91cb67f129be443f35e9d
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Thu Mar 18 21:10:39 2021 +0000
Ignore test failure when reiser4 reports null UUID (#145)
The GitLab CI ubuntu_test job has occasionally been failing like this,
perhaps once every few weeks or so.
[ RUN ] My/SupportedFileSystemsTest.CreateAndReadUUID/reiser4
test_SupportedFileSystems.cc:569: Failure
Expected: (m_partition.uuid.size()) >= (9U), actual: 0 vs 9
[ FAILED ] My/SupportedFileSystemsTest.CreateAndReadUUID/reiser4, where GetParam() = 24 (17 ms)
[----------] 1 test from My/SupportedFileSystemsTest (17 ms total)
Turns out there are 2 bugs in resier4progs. One causes debugfs.reiser4
to report a null UUID if the first byte of the UUID happens to be zero
[1], and the other cases mkfs.resier4 to write a corrupted UUID,
sometimes a null (all zeros) UUID [2].
There is a 1 in 256 chance of getting a null UUID [2] when creating and
reading a reiser4 file system, hence the occasional failure of the CI
job. The centos_test job isn't affected because CentOS doesn't have the
reiser4progs package.
Fix this by detecting when reiser4 reports a null UUID and assign a
dummy UUID to make the test pass. This does mean that there is a 1 in
256 chance of not detecting a true failure. However that still means
there is a 255 in 256 chance of detecting a true failure. That's good
odds. When a null UUID is detected for a reiser4 file system the test
output looks like this:
[ RUN ] My/SupportedFileSystemsTest.CreateAndReadUUID/reiser4
test_SupportedFileSystems.cc:580: Ignore test failure of a null UUID.
[ OK ] My/SupportedFileSystemsTest.CreateAndReadUUID/reiser4 (46 ms)
[1] https://github.com/edward6/reiser4progs/commit/4802cdb18ae03031d0e51a58b6655f3b99021ec2
Fix up repair_master_print()
[2] https://github.com/edward6/reiser4progs/commit/44cc024f398f60adef1519426d65f3f081ee826a
Stop occasionally making file systems with null UUIDs
Closes #145 - Sporadic failure of test case
My/SupportedFileSystemsTest.CreateAndReadUUID/reiser4
tests/test_SupportedFileSystems.cc | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
diff --git a/tests/test_SupportedFileSystems.cc b/tests/test_SupportedFileSystems.cc
index e8cecfbd..f38c2407 100644
--- a/tests/test_SupportedFileSystems.cc
+++ b/tests/test_SupportedFileSystems.cc
@@ -228,6 +228,17 @@ const std::string param_fsname(const ::testing::TestParamInfo<FSType>& info)
}
+// Temporarily workaround bugs in mkfs.reiser4 and debugfs.reiser4 which occasionally
+// create and read a null UUID respectively.
+#define IGNORE_REISER4_NULL_UUID() \
+ if (m_fstype == FS_REISER4 && m_partition.uuid.size() == 0) \
+ { \
+ std::cout << __FILE__ << ":" << __LINE__ << ": Ignore test " \
+ << "failure of a null UUID." << std::endl; \
+ m_partition.uuid = "XXXXXXXXX"; \
+ }
+
+
const Byte_Value IMAGESIZE_Default = 256*MEBIBYTE;
const Byte_Value IMAGESIZE_Larger = 512*MEBIBYTE;
@@ -566,6 +577,7 @@ TEST_P(SupportedFileSystemsTest, CreateAndReadUUID)
// Test reading the UUID is successful.
reload_partition();
m_fs_object->read_uuid(m_partition);
+ IGNORE_REISER4_NULL_UUID();
EXPECT_GE(m_partition.uuid.size(), 9U);
// Test messages from read operation are empty or print them.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]