[gparted] Use /dev/disk/by-id/ to get device symlink in test_BlockSpecial



commit 7fe41480749c795dfb79daeba7b058cece2dfdd2
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date:   Sun Mar 11 21:11:04 2018 +0000

    Use /dev/disk/by-id/ to get device symlink in test_BlockSpecial
    
    Found that older but still supported distributions Debian 8 and
    Ubuntu 14.04 LTS don't have directory /dev/disk/by-path/.  This is used
    by the BlockSpecial unit test as a source of a symbolic link to a block
    special device.
    
    This causes the unit test to fail like this:
    
        $ cd tests
        $ ./test_BlockSpecial
        ...
        [ RUN      ] BlockSpecialTest.NamedBlockSpecialObjectBySymlinkMatches
        test_BlockSpecial.cc:137: Failure
        Failed
        get_link_name(): Failed to open directory '/dev/disk/by-path'
        test_BlockSpecial.cc:168: Failure
        Failed
        follow_link_name(): Failed to resolve symbolic link ''
        test_BlockSpecial.cc:255: Failure
        Expected: (lnk.m_name.c_str()) != (bs.m_name.c_str()), actual: "" vs ""
        [  FAILED  ] BlockSpecialTest.NamedBlockSpecialObjectBySymlinkMatches (0 ms)
        ...
        [  FAILED  ] 1 test, listed below:
        [  FAILED  ] BlockSpecialTest.NamedBlockSpecialObjectBySymlinkMatches
    
         1 FAILED TEST
    
    Which in turn causes make check and make distcheck to fail.
    
    Use directory /dev/disk/by-id/ instead as it always exists.

 tests/test_BlockSpecial.cc |   40 ++++++++++++++++++++--------------------
 1 files changed, 20 insertions(+), 20 deletions(-)
---
diff --git a/tests/test_BlockSpecial.cc b/tests/test_BlockSpecial.cc
index de9eb52..8b46019 100644
--- a/tests/test_BlockSpecial.cc
+++ b/tests/test_BlockSpecial.cc
@@ -22,21 +22,21 @@
  * names and symbolic link name.  The following files are explicitly
  * needed for the tests:
  *
- *     Name                        Access    Note
- *     -------------------------   -------   -----
- *     /                           Stat
- *     /proc/partitions            Stat
- *                                 Read      To find any two block
- *                                           devices
- *     /dev/BLOCK0                 Stat      First entry from
- *                                           /proc/partitions
- *     /dev/BLOCK1                 stat      Second entry from
- *                                           /proc/partitions
- *     /dev/disk/by-path/          Readdir   To find any symlink to a
- *                                           block device
- *     /dev/disk/by-path/SYMLINK   Stat      First directory entry
- *     /dev/RBLOCK                 Stat      Device to which SYMLINK
- *                                           refers
+ *     Name                      Access    Note
+ *     -----------------------   -------   -----
+ *     /                         Stat
+ *     /proc/partitions          Stat
+ *                               Read      To find any two block
+ *                                         devices
+ *     /dev/BLOCK0               Stat      First entry from
+ *                                         /proc/partitions
+ *     /dev/BLOCK1               stat      Second entry from
+ *                                         /proc/partitions
+ *     /dev/disk/by-id/          Readdir   To find any symlink to a
+ *                                         block device
+ *     /dev/disk/by-id/SYMLINK   Stat      First directory entry
+ *     /dev/RBLOCK               Stat      Device to which SYMLINK
+ *                                         refers
  *
  * Other dummy names are pre-loaded into the internal BlockSpecial cache
  * and never queried from the file system.
@@ -128,13 +128,13 @@ static std::string get_block_name( unsigned want )
 }
 
 // Return symbolic link to a block device by reading the first entry in the directory
-// /dev/disk/by-path/.
+// /dev/disk/by-id/.
 static std::string get_link_name()
 {
-       DIR * dir = opendir( "/dev/disk/by-path" );
+       DIR * dir = opendir( "/dev/disk/by-id" );
        if ( dir == NULL )
        {
-               ADD_FAILURE() << __func__ << "(): Failed to open directory '/dev/disk/by-path'";
+               ADD_FAILURE() << __func__ << "(): Failed to open directory '/dev/disk/by-id'";
                return "";
        }
 
@@ -153,9 +153,9 @@ static std::string get_link_name()
        closedir( dir );
 
        if ( found )
-               return std::string( "/dev/disk/by-path/" ) + dentry->d_name;
+               return std::string( "/dev/disk/by-id/" ) + dentry->d_name;
 
-       ADD_FAILURE() << __func__ << "(): No entries found in directory '/dev/disk/by-path'";
+       ADD_FAILURE() << __func__ << "(): No entries found in directory '/dev/disk/by-id'";
        return "";
 }
 


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