[master 6/6] Add another set of test data and test cases for it.

vathpela installerbot-noreply at redhat.com
Thu Oct 8 20:47:00 UTC 2015


From: Peter Jones <pjones at redhat.com>

This one is from QEMU configured absurdly.

Signed-off-by: Peter Jones <pjones at redhat.com>
---
 blivet/devicelibs/edd.py                           |  15 +-
 tests/devicelibs_test/edd_data/absurd_virt/dev/sda | Bin 0 -> 512 bytes
 tests/devicelibs_test/edd_data/absurd_virt/dev/sdb | Bin 0 -> 512 bytes
 tests/devicelibs_test/edd_data/absurd_virt/dev/sdc | Bin 0 -> 512 bytes
 tests/devicelibs_test/edd_data/absurd_virt/dev/sdd | Bin 0 -> 512 bytes
 tests/devicelibs_test/edd_data/absurd_virt/dev/sde | Bin 0 -> 512 bytes
 tests/devicelibs_test/edd_data/absurd_virt/dev/vda | Bin 0 -> 512 bytes
 .../edd_data/absurd_virt/sys/block/sda             |   1 +
 .../edd_data/absurd_virt/sys/block/sdb             |   1 +
 .../edd_data/absurd_virt/sys/block/sdc             |   1 +
 .../edd_data/absurd_virt/sys/block/sdd             |   1 +
 .../edd_data/absurd_virt/sys/block/sde             |   1 +
 .../edd_data/absurd_virt/sys/block/sr0             |   1 +
 .../edd_data/absurd_virt/sys/block/vda             |   1 +
 .../0000:00:01.1/ata7/ata_port/ata7/port_no        |   1 +
 .../sys/firmware/edd/int13_dev80/default_cylinders |   1 +
 .../sys/firmware/edd/int13_dev80/default_heads     |   1 +
 .../edd/int13_dev80/default_sectors_per_track      |   1 +
 .../sys/firmware/edd/int13_dev80/extensions        |   3 +
 .../sys/firmware/edd/int13_dev80/host_bus          |   1 +
 .../sys/firmware/edd/int13_dev80/info_flags        |   1 +
 .../sys/firmware/edd/int13_dev80/interface         |   1 +
 .../firmware/edd/int13_dev80/legacy_max_cylinder   |   1 +
 .../sys/firmware/edd/int13_dev80/legacy_max_head   |   1 +
 .../edd/int13_dev80/legacy_sectors_per_track       |   1 +
 .../sys/firmware/edd/int13_dev80/mbr_signature     |   1 +
 .../sys/firmware/edd/int13_dev80/pci_dev           |   1 +
 .../sys/firmware/edd/int13_dev80/raw_data          | Bin 0 -> 74 bytes
 .../sys/firmware/edd/int13_dev80/sectors           |   1 +
 .../sys/firmware/edd/int13_dev80/version           |   1 +
 .../sys/firmware/edd/int13_dev81/default_cylinders |   1 +
 .../sys/firmware/edd/int13_dev81/default_heads     |   1 +
 .../edd/int13_dev81/default_sectors_per_track      |   1 +
 .../sys/firmware/edd/int13_dev81/extensions        |   3 +
 .../sys/firmware/edd/int13_dev81/host_bus          |   1 +
 .../sys/firmware/edd/int13_dev81/info_flags        |   1 +
 .../sys/firmware/edd/int13_dev81/interface         |   1 +
 .../firmware/edd/int13_dev81/legacy_max_cylinder   |   1 +
 .../sys/firmware/edd/int13_dev81/legacy_max_head   |   1 +
 .../edd/int13_dev81/legacy_sectors_per_track       |   1 +
 .../sys/firmware/edd/int13_dev81/mbr_signature     |   1 +
 .../sys/firmware/edd/int13_dev81/pci_dev           |   1 +
 .../sys/firmware/edd/int13_dev81/raw_data          | Bin 0 -> 74 bytes
 .../sys/firmware/edd/int13_dev81/sectors           |   1 +
 .../sys/firmware/edd/int13_dev81/version           |   1 +
 .../sys/firmware/edd/int13_dev82/default_cylinders |   1 +
 .../sys/firmware/edd/int13_dev82/default_heads     |   1 +
 .../edd/int13_dev82/default_sectors_per_track      |   1 +
 .../sys/firmware/edd/int13_dev82/extensions        |   3 +
 .../sys/firmware/edd/int13_dev82/info_flags        |   1 +
 .../firmware/edd/int13_dev82/legacy_max_cylinder   |   1 +
 .../sys/firmware/edd/int13_dev82/legacy_max_head   |   1 +
 .../edd/int13_dev82/legacy_sectors_per_track       |   1 +
 .../sys/firmware/edd/int13_dev82/mbr_signature     |   1 +
 .../sys/firmware/edd/int13_dev82/raw_data          | Bin 0 -> 26 bytes
 .../sys/firmware/edd/int13_dev82/sectors           |   1 +
 .../sys/firmware/edd/int13_dev82/version           |   1 +
 .../sys/firmware/edd/int13_dev83/default_cylinders |   1 +
 .../sys/firmware/edd/int13_dev83/extensions        |   3 +
 .../sys/firmware/edd/int13_dev83/info_flags        |   0
 .../firmware/edd/int13_dev83/legacy_max_cylinder   |   1 +
 .../sys/firmware/edd/int13_dev83/legacy_max_head   |   1 +
 .../edd/int13_dev83/legacy_sectors_per_track       |   1 +
 .../sys/firmware/edd/int13_dev83/mbr_signature     |   1 +
 .../sys/firmware/edd/int13_dev83/raw_data          | Bin 0 -> 26 bytes
 .../sys/firmware/edd/int13_dev83/sectors           |   1 +
 .../sys/firmware/edd/int13_dev83/version           |   1 +
 .../sys/firmware/edd/int13_dev84/default_cylinders |   1 +
 .../sys/firmware/edd/int13_dev84/extensions        |   3 +
 .../sys/firmware/edd/int13_dev84/host_bus          |   1 +
 .../sys/firmware/edd/int13_dev84/info_flags        |   0
 .../sys/firmware/edd/int13_dev84/interface         |   1 +
 .../firmware/edd/int13_dev84/legacy_max_cylinder   |   1 +
 .../sys/firmware/edd/int13_dev84/legacy_max_head   |   1 +
 .../edd/int13_dev84/legacy_sectors_per_track       |   1 +
 .../sys/firmware/edd/int13_dev84/mbr_signature     |   1 +
 .../sys/firmware/edd/int13_dev84/pci_dev           |   1 +
 .../sys/firmware/edd/int13_dev84/raw_data          | Bin 0 -> 74 bytes
 .../sys/firmware/edd/int13_dev84/sectors           |   1 +
 .../sys/firmware/edd/int13_dev84/version           |   1 +
 .../sys/firmware/edd/int13_dev85/default_cylinders |   1 +
 .../sys/firmware/edd/int13_dev85/extensions        |   3 +
 .../sys/firmware/edd/int13_dev85/info_flags        |   0
 .../firmware/edd/int13_dev85/legacy_max_cylinder   |   1 +
 .../sys/firmware/edd/int13_dev85/legacy_max_head   |   1 +
 .../edd/int13_dev85/legacy_sectors_per_track       |   1 +
 .../sys/firmware/edd/int13_dev85/mbr_signature     |   1 +
 .../sys/firmware/edd/int13_dev85/raw_data          | Bin 0 -> 26 bytes
 .../sys/firmware/edd/int13_dev85/sectors           |   1 +
 .../sys/firmware/edd/int13_dev85/version           |   1 +
 tests/devicelibs_test/edd_test.py                  | 241 ++++++++++++++++++---
 91 files changed, 307 insertions(+), 35 deletions(-)
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/dev/sda
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/dev/sdb
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/dev/sdc
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/dev/sdd
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/dev/sde
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/dev/vda
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/sda
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdb
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdc
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdd
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/sde
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/sr0
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/block/vda
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/devices/pci0000:00/0000:00:01.1/ata7/ata_port/ata7/port_no
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_cylinders
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_heads
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/extensions
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/host_bus
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/info_flags
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/interface
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_cylinder
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_head
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/mbr_signature
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/pci_dev
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/raw_data
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/sectors
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/version
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_cylinders
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_heads
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/extensions
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/host_bus
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/info_flags
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/interface
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_cylinder
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_head
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/mbr_signature
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/pci_dev
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/raw_data
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/sectors
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/version
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_cylinders
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_heads
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/extensions
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/info_flags
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_cylinder
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_head
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/mbr_signature
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/raw_data
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/sectors
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/version
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/default_cylinders
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/extensions
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/info_flags
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_cylinder
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_head
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/mbr_signature
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/raw_data
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/sectors
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/version
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/default_cylinders
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/extensions
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/host_bus
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/info_flags
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/interface
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_cylinder
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_head
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/mbr_signature
 create mode 120000 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/pci_dev
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/raw_data
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/sectors
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/version
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/default_cylinders
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/extensions
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/info_flags
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_cylinder
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_head
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_sectors_per_track
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/mbr_signature
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/raw_data
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/sectors
 create mode 100644 tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/version

diff --git a/blivet/devicelibs/edd.py b/blivet/devicelibs/edd.py
index f44eaaa..9361346 100644
--- a/blivet/devicelibs/edd.py
+++ b/blivet/devicelibs/edd.py
@@ -362,10 +362,17 @@ def devname_from_ata_pci_dev(self):
             fn = components[0:6] + ['ata_port', ata_port]
             port_no = int(util.get_sysfs_attr(os.path.join(*fn), 'port_no'))
 
-            # "port_no" is the kernel's ata_port->print_id, which is awesomely
-            # ata_port->id + 1, where ata_port->id is edd's ata_device
-            if port_no != self.edd.ata_device+1:
-                continue
+            if self.edd.type == "ATA":
+                # On ATA, port_no is kernel's ata_port->local_port_no, which
+                # should be the same as the ata device number.
+                if port_no != self.edd.ata_device:
+                    continue
+            else:
+                # On SATA, "port_no" is the kernel's ata_port->print_id, which
+                # is awesomely ata_port->id + 1, where ata_port->id is edd's
+                # ata_device
+                if port_no != self.edd.ata_device+1:
+                    continue
 
             fn = components[0:6] + ['link%d' % (ata_port_idx,),]
             exp = [r'^']+fn+[r'dev%d\.(\d+)(\.(\d+)){0,1}$' % (ata_port_idx,)]
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/dev/sda b/tests/devicelibs_test/edd_data/absurd_virt/dev/sda
new file mode 100644
index 0000000000000000000000000000000000000000..adb5d48057ef720915829b205b51a8fca1f87bb7
GIT binary patch
literal 512
zcmeyhgF&G0!XAbVI~W-HZuA}ay^o=0KLguN2ByzTUMaFMFznmMZoyK at -F!@-@!vo8
w($BBOwlHmA+|5w4siCWcvD=5~tne#_8U}{f{}@IA{X)Q7X#Zo%Z3|rm09P3!umAu6

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/dev/sdb b/tests/devicelibs_test/edd_data/absurd_virt/dev/sdb
new file mode 100644
index 0000000000000000000000000000000000000000..a5d2fc528fe16c81b133d79e07cf03847fc0167f
GIT binary patch
literal 512
zcmeyhgF&G0!XAbVI~W-HZuA}ay^o=0KLguN2ByzTUMaFMFznmMZoyK at -F!@-@!vo8
w($BBOwlHmA+|5w4siCWcvD=5~tne#_8U}{f{}@IA{X*dOhyS&d+ZMVC0JAM5_y7O^

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/dev/sdc b/tests/devicelibs_test/edd_data/absurd_virt/dev/sdc
new file mode 100644
index 0000000000000000000000000000000000000000..4f6140caf78c73d10b2a36c3d59235b56da084cf
GIT binary patch
literal 512
zcmeyhgF&G0!XAbVI~W-HZuA}ay^o=0KLguN2ByzTUMaFMFznmMZoyK at -F!@-@!vo8
w($BBOwlHmA+|5w4siCWcvD=5~tne#_8U}{f{}@IA{X*cz^^eJv+ZMVC0HBa0v;Y7A

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/dev/sdd b/tests/devicelibs_test/edd_data/absurd_virt/dev/sdd
new file mode 100644
index 0000000000000000000000000000000000000000..f28dd0bbec3c3266ec31d396a2a514cea9b814e6
GIT binary patch
literal 512
zcmeyhgF&G0!XAbVI~W-HZuA}ay^o=0KLguN2ByzTUMaFMFznmMZoyK at -F!@-@!vo8
w($BBOwlHmA+|5w4siCWcvD=5~tne#_8U}{f{}@IA{X#%e+V~yiwuP<&04O&j1^@s6

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/dev/sde b/tests/devicelibs_test/edd_data/absurd_virt/dev/sde
new file mode 100644
index 0000000000000000000000000000000000000000..b3f4217cdd81b4c25969d666d9d8c5f1819dcceb
GIT binary patch
literal 512
zcmeyhgF&G0!XAbVI~W-HZuA}ay^o=0KLguN2ByzTUMaFMFznmMZoyK at -F!@-@!vo8
w($BBOwlHmA+|5w4siCWcvD=5~tne#_8U}{f{}@IA{X#%ikn0!awuP<&03Mej;{X5v

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/dev/vda b/tests/devicelibs_test/edd_data/absurd_virt/dev/vda
new file mode 100644
index 0000000000000000000000000000000000000000..2c5f74e6e2469808c6781e078eb122d2f40da6ff
GIT binary patch
literal 512
zcmZ9JPiWI{6vw}bX&a}rg at V{i%`U<&Vq~y^6Y7Yp2k}tprR=a`7Z8z^ED?kRvPC6v
zBle)@IZ%+|VT at 2ZDp}fMcM5Df2?Ie-wYdyBI<V6E8|*UQ<$d2DK3{k*cwCCvdtb3x
z1?=y(*LR`rAiNE_`>`_?23$8X#VD7IR&04Nh$!9QszYy5HK<$q8<|>tK>P6yR3I4O
zztE|(#_&(6)NAN+sMjdU^p at UvLH2o%*b!r{|Dm8x4`teHWZaPI+^dzdems|v?k at MU
zWo6R%Ny)c)&k~rFDGV)v-eqDCSCez9Xw9)i%%6(OyFwU6XU309p&E+8bBFcgOQX4$
z2T|h(+*jJ~6^PMF%Pb62B4I@<`}JS6**1?;mcT|U4X;g$79(yD+C@)!C~gowe;}Sr
znER(mX6^{AHaV!9-)?#JHqF+}y`0%1R(6v=tWx9(QgW?1pWFszAM(8&=yvOG_tW+K
z at J3E`buGByzSY_jaNlX|oA9p%gV{`WhQsW_;xnZ4Qh^hmEImbLAzuJ at Uy>H3(Gk=r
zI9L4GmuV=+&GXk46OUd4IyVMmJ)8hbrYZ8R^+;mnC^C*T(O`fhcHD42uOU4GRNtRR
IkSbgL2Nid|-T(jq

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sda b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sda
new file mode 120000
index 0000000..29775a1
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sda
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:03.0/ata1/host0/target0:0:0/0:0:0:0/block/sda
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdb b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdb
new file mode 120000
index 0000000..f6c4553
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdb
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:01.1/ata7/host6/target6:0:1/6:0:1:0/block/sdb
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdc b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdc
new file mode 120000
index 0000000..a306f67
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdc
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:0b.0/virtio3/host8/target8:0:0/8:0:0:0/block/sdc
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdd b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdd
new file mode 120000
index 0000000..b24195a
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sdd
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:06.7/usb1/1-1/1-1:1.0/host9/target9:0:0/9:0:0:0/block/sdd
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sde b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sde
new file mode 120000
index 0000000..93f1667
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sde
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:0a.0/host10/target10:0:1/10:0:1:0/block/sde
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sr0 b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sr0
new file mode 120000
index 0000000..06b0fac
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/sr0
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:01.1/ata7/host6/target6:0:0/6:0:0:0/block/sr0
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/block/vda b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/vda
new file mode 120000
index 0000000..8b941d8
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/block/vda
@@ -0,0 +1 @@
+../devices/pci0000:00/0000:00:07.0/virtio1/block/vda
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/devices/pci0000:00/0000:00:01.1/ata7/ata_port/ata7/port_no b/tests/devicelibs_test/edd_data/absurd_virt/sys/devices/pci0000:00/0000:00:01.1/ata7/ata_port/ata7/port_no
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/devices/pci0000:00/0000:00:01.1/ata7/ata_port/ata7/port_no
@@ -0,0 +1 @@
+1
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_cylinders b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_cylinders
new file mode 100644
index 0000000..1819e48
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_cylinders
@@ -0,0 +1 @@
+10402
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_heads b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_heads
new file mode 100644
index 0000000..b6a7d89
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_heads
@@ -0,0 +1 @@
+16
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/default_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/extensions b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/extensions
new file mode 100644
index 0000000..821b59d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/extensions
@@ -0,0 +1,3 @@
+Fixed disk access
+Device locking and ejecting
+Enhanced Disk Drive support
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/host_bus b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/host_bus
new file mode 100644
index 0000000..da5a03c
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/host_bus
@@ -0,0 +1 @@
+PCI 	00:07.0  channel: 0
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/info_flags b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/info_flags
new file mode 100644
index 0000000..7b65cd3
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/info_flags
@@ -0,0 +1 @@
+geometry valid
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/interface b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/interface
new file mode 100644
index 0000000..51aebe9
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/interface
@@ -0,0 +1 @@
+SCSI    	id: 0  lun: 0
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_cylinder b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_cylinder
new file mode 100644
index 0000000..0e33251
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_cylinder
@@ -0,0 +1 @@
+650
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_head b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_head
new file mode 100644
index 0000000..f1aaa90
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_max_head
@@ -0,0 +1 @@
+254
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/legacy_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/mbr_signature b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/mbr_signature
new file mode 100644
index 0000000..e2d9042
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/mbr_signature
@@ -0,0 +1 @@
+0x86531966
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/pci_dev b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/pci_dev
new file mode 120000
index 0000000..57f05a0
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/pci_dev
@@ -0,0 +1 @@
+../../../devices/pci0000:00/0000:00:07.0
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/raw_data b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/raw_data
new file mode 100644
index 0000000000000000000000000000000000000000..7a80b91ad9aca8c3e5c922e44927d04c3b8bd55b
GIT binary patch
literal 74
zcmb1RU}9LL!N4HEz`$S+#0(4zz$63He;~NKPY1{gaQ0LPb`JJb00IVfh%^S-0sz=o
B3fKSu

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/sectors b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/sectors
new file mode 100644
index 0000000..a6ec9d9
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/sectors
@@ -0,0 +1 @@
+10485760
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/version b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/version
new file mode 100644
index 0000000..5a0dc65
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev80/version
@@ -0,0 +1 @@
+0x30
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_cylinders b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_cylinders
new file mode 100644
index 0000000..7d645f5
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_cylinders
@@ -0,0 +1 @@
+208
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_heads b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_heads
new file mode 100644
index 0000000..b6a7d89
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_heads
@@ -0,0 +1 @@
+16
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/default_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/extensions b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/extensions
new file mode 100644
index 0000000..821b59d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/extensions
@@ -0,0 +1,3 @@
+Fixed disk access
+Device locking and ejecting
+Enhanced Disk Drive support
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/host_bus b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/host_bus
new file mode 100644
index 0000000..adbf3f8
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/host_bus
@@ -0,0 +1 @@
+PCI 	00:01.1  channel: 0
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/info_flags b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/info_flags
new file mode 100644
index 0000000..7b65cd3
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/info_flags
@@ -0,0 +1 @@
+geometry valid
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/interface b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/interface
new file mode 100644
index 0000000..5225f32
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/interface
@@ -0,0 +1 @@
+ATA     	device: 1
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_cylinder b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_cylinder
new file mode 100644
index 0000000..b35cfaf
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_cylinder
@@ -0,0 +1 @@
+206
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_head b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_head
new file mode 100644
index 0000000..60d3b2f
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_max_head
@@ -0,0 +1 @@
+15
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/legacy_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/mbr_signature b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/mbr_signature
new file mode 100644
index 0000000..197a345
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/mbr_signature
@@ -0,0 +1 @@
+0x7dfff0db
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/pci_dev b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/pci_dev
new file mode 120000
index 0000000..66056ce
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/pci_dev
@@ -0,0 +1 @@
+../../../devices/pci0000:00/0000:00:01.1
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/raw_data b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/raw_data
new file mode 100644
index 0000000000000000000000000000000000000000..e1ccfede0ba4082a8d9b40cc58263d15c925f4c2
GIT binary patch
literal 74
zcmb1RU}Ctyz`!5?#P&dJV$2LAfq?16XNCuN_vrwc0nVNZjv<Z;Ai%)L2$qJBU?zk(
F0sx1P2}b|`

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/sectors b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/sectors
new file mode 100644
index 0000000..a57b62d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/sectors
@@ -0,0 +1 @@
+209716
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/version b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/version
new file mode 100644
index 0000000..5a0dc65
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev81/version
@@ -0,0 +1 @@
+0x30
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_cylinders b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_cylinders
new file mode 100644
index 0000000..1c105f1
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_cylinders
@@ -0,0 +1 @@
+416
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_heads b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_heads
new file mode 100644
index 0000000..b6a7d89
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_heads
@@ -0,0 +1 @@
+16
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/default_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/extensions b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/extensions
new file mode 100644
index 0000000..821b59d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/extensions
@@ -0,0 +1,3 @@
+Fixed disk access
+Device locking and ejecting
+Enhanced Disk Drive support
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/info_flags b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/info_flags
new file mode 100644
index 0000000..7b65cd3
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/info_flags
@@ -0,0 +1 @@
+geometry valid
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_cylinder b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_cylinder
new file mode 100644
index 0000000..d1b9f6a
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_cylinder
@@ -0,0 +1 @@
+414
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_head b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_head
new file mode 100644
index 0000000..60d3b2f
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_max_head
@@ -0,0 +1 @@
+15
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/legacy_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/mbr_signature b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/mbr_signature
new file mode 100644
index 0000000..6ed30d2
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/mbr_signature
@@ -0,0 +1 @@
+0xe3bf124b
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/raw_data b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/raw_data
new file mode 100644
index 0000000000000000000000000000000000000000..acc71d64d64dd02b1818f7e9bf6c3343d1e5817b
GIT binary patch
literal 26
ccmb1QU}9Ln$iN`Lz`$S+#2IO9KoSU;039s>;{X5v

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/sectors b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/sectors
new file mode 100644
index 0000000..209a43c
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/sectors
@@ -0,0 +1 @@
+419432
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/version b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/version
new file mode 100644
index 0000000..5a0dc65
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev82/version
@@ -0,0 +1 @@
+0x30
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/default_cylinders b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/default_cylinders
new file mode 100644
index 0000000..cb521a2
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/default_cylinders
@@ -0,0 +1 @@
+16383
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/extensions b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/extensions
new file mode 100644
index 0000000..821b59d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/extensions
@@ -0,0 +1,3 @@
+Fixed disk access
+Device locking and ejecting
+Enhanced Disk Drive support
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/info_flags b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/info_flags
new file mode 100644
index 0000000..e69de29
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_cylinder b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_cylinder
new file mode 100644
index 0000000..ff39c77
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_cylinder
@@ -0,0 +1 @@
+622
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_head b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_head
new file mode 100644
index 0000000..60d3b2f
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_max_head
@@ -0,0 +1 @@
+15
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/legacy_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/mbr_signature b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/mbr_signature
new file mode 100644
index 0000000..6b7cd58
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/mbr_signature
@@ -0,0 +1 @@
+0xfa0a111d
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/raw_data b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/raw_data
new file mode 100644
index 0000000000000000000000000000000000000000..92dabcf66543f37d984592dbf32ae5316edc3c95
GIT binary patch
literal 26
Wcmb1QU|{%f4<w*q)=W+aiwOWJf&!NS

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/sectors b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/sectors
new file mode 100644
index 0000000..7b7b645
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/sectors
@@ -0,0 +1 @@
+629146
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/version b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/version
new file mode 100644
index 0000000..5a0dc65
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev83/version
@@ -0,0 +1 @@
+0x30
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/default_cylinders b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/default_cylinders
new file mode 100644
index 0000000..cb521a2
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/default_cylinders
@@ -0,0 +1 @@
+16383
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/extensions b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/extensions
new file mode 100644
index 0000000..821b59d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/extensions
@@ -0,0 +1,3 @@
+Fixed disk access
+Device locking and ejecting
+Enhanced Disk Drive support
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/host_bus b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/host_bus
new file mode 100644
index 0000000..3166ccc
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/host_bus
@@ -0,0 +1 @@
+PCI 	00:0b.0  channel: 0
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/info_flags b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/info_flags
new file mode 100644
index 0000000..e69de29
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/interface b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/interface
new file mode 100644
index 0000000..51aebe9
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/interface
@@ -0,0 +1 @@
+SCSI    	id: 0  lun: 0
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_cylinder b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_cylinder
new file mode 100644
index 0000000..e324071
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_cylinder
@@ -0,0 +1 @@
+830
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_head b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_head
new file mode 100644
index 0000000..60d3b2f
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_max_head
@@ -0,0 +1 @@
+15
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/legacy_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/mbr_signature b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/mbr_signature
new file mode 100644
index 0000000..cb0ed69
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/mbr_signature
@@ -0,0 +1 @@
+0x63f1d7d8
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/pci_dev b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/pci_dev
new file mode 120000
index 0000000..f46b904
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/pci_dev
@@ -0,0 +1 @@
+../../../devices/pci0000:00/0000:00:0b.0
\ No newline at end of file
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/raw_data b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/raw_data
new file mode 100644
index 0000000000000000000000000000000000000000..b1607bd3fd52b16944b510a3b592483c5c5851fe
GIT binary patch
literal 74
vcmb1RU|{%f4<w-A+!-DSi|IcQ+})=G<OMi;Dg-+Rdny0{12;@18r=W at AT105

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/sectors b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/sectors
new file mode 100644
index 0000000..708ad75
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/sectors
@@ -0,0 +1 @@
+838862
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/version b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/version
new file mode 100644
index 0000000..5a0dc65
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev84/version
@@ -0,0 +1 @@
+0x30
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/default_cylinders b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/default_cylinders
new file mode 100644
index 0000000..cb521a2
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/default_cylinders
@@ -0,0 +1 @@
+16383
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/extensions b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/extensions
new file mode 100644
index 0000000..821b59d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/extensions
@@ -0,0 +1,3 @@
+Fixed disk access
+Device locking and ejecting
+Enhanced Disk Drive support
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/info_flags b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/info_flags
new file mode 100644
index 0000000..e69de29
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_cylinder b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_cylinder
new file mode 100644
index 0000000..ff39c77
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_cylinder
@@ -0,0 +1 @@
+622
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_head b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_head
new file mode 100644
index 0000000..e85087a
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_max_head
@@ -0,0 +1 @@
+31
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_sectors_per_track b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_sectors_per_track
new file mode 100644
index 0000000..4b9026d
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/legacy_sectors_per_track
@@ -0,0 +1 @@
+63
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/mbr_signature b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/mbr_signature
new file mode 100644
index 0000000..5b7004c
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/mbr_signature
@@ -0,0 +1 @@
+0xee331b19
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/raw_data b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/raw_data
new file mode 100644
index 0000000000000000000000000000000000000000..68fd964905a3fd4373e2ce4e3cb83ddc5ed9e70e
GIT binary patch
literal 26
Wcmb1QU|{%f4<w+##8?=@VgdjnKmpYN

literal 0
HcmV?d00001

diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/sectors b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/sectors
new file mode 100644
index 0000000..2ee3015
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/sectors
@@ -0,0 +1 @@
+1258292
diff --git a/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/version b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/version
new file mode 100644
index 0000000..5a0dc65
--- /dev/null
+++ b/tests/devicelibs_test/edd_data/absurd_virt/sys/firmware/edd/int13_dev85/version
@@ -0,0 +1 @@
+0x30
diff --git a/tests/devicelibs_test/edd_test.py b/tests/devicelibs_test/edd_test.py
index 4833891..ba13c1d 100644
--- a/tests/devicelibs_test/edd_test.py
+++ b/tests/devicelibs_test/edd_test.py
@@ -3,21 +3,28 @@
 import os
 import inspect
 
-from blivet.devicelibs.edd import EddEntry
+from blivet.devicelibs import edd
 
 class FakeDevice(object):
     def __init__(self, name):
         self.name = name
 
-class FakeEddEntry(EddEntry):
+class FakeEddEntry(edd.EddEntry):
     def __init__(self, sysfspath, **kw):
-        EddEntry.__init__(self, sysfspath)
+        edd.EddEntry.__init__(self, sysfspath)
         for (name,value) in kw.items():
             self.__dict__[name] = value
 
+    @property
+    def sysfspath(self):
+        return "%s/%s" % (edd.fsroot, self._sysfspath[1:])
+
     def load(self):
         pass
 
+    def __repr__(self):
+        return "<FakeEddEntry%s>" % (self._fmt(' ', ''),)
+
     def __lt__(self, other):
         return self.__dict__ < other.__dict__
 
@@ -25,6 +32,20 @@ def __eq__(self, other):
         return self.__dict__ == other.__dict__
 
 class EddTestCase(unittest.TestCase):
+    _edd_logger = None
+    def setUp(self):
+        super(EddTestCase, self).setUp()
+        self._edd_logger = edd.log
+        edd.log = mock.MagicMock(name='log')
+        edd.log.info = mock.MagicMock(name='info')
+        edd.log.warning = mock.MagicMock(name='warning')
+        edd.log.error = mock.MagicMock(name='error')
+        edd.log.debug = mock.MagicMock(name='debug')
+
+    def tearDown(self):
+        super(EddTestCase, self).tearDown()
+        edd.log = self._edd_logger
+
     def _set_fs_root(self, edd_module, fsroot):
         if fsroot is None:
             edd_module.fsroot = ""
@@ -33,49 +54,215 @@ def _set_fs_root(self, edd_module, fsroot):
             edd_module.fsroot = os.path.join(dirname, "../../tests/devicelibs_test/edd_data/", fsroot)
 
     def test_biosdev_to_edd_dir(self):
-        from blivet.devicelibs import edd
         self._set_fs_root(edd, None)
         path = edd.biosdev_to_edd_dir(138)
         self.assertEqual("/sys/firmware/edd/int13_dev8a", path)
+        self.assertEqual(edd.log.debug.called, False)
+        self.assertEqual(edd.log.info.called, False)
+        self.assertEqual(edd.log.warning.called, False)
+        self.assertEqual(edd.log.error.called, False)
 
     def test_collect_edd_data_sata_usb(self):
         # test with sata sda, usb sdb
-        from blivet.devicelibs import edd
         self._set_fs_root(edd, "sata_usb")
+        fakeedd = {
+            0x80: FakeEddEntry(version="0x30", mbr_sig="0x00000000",
+                           sectors=312581808, host_bus="PCI", type="SATA",
+                           pci_dev="00:1f.2", channel=255, ata_device=1,
+                           interface="SATA    \tdevice: 1",
+                           sysfspath="/sys/firmware/edd/int13_dev80"),
+            0x81: FakeEddEntry(version="0x21", mbr_sig="0x96a20d28",
+                           sectors=31293440, host_bus="PCI", type="USB",
+                           pci_dev="ff:ff.255", channel=255,
+                           usb_serial=0x30302e31,
+                           interface="USB     \tserial_number: 30302e31",
+                           sysfspath="/sys/firmware/edd/int13_dev81"),
+            }
+
         edd_dict = edd.collect_edd_data()
-        dev80 = FakeEddEntry(version="0x30", mbr_sig="0x00000000",
-                             sectors=312581808, host_bus="PCI", type="SATA",
-                             pci_dev="00:1f.2", channel=255, ata_device=1,
-                             interface="SATA    \tdevice: 1",
-                             sysfspath=os.path.join(edd.fsroot,
-                                            "sys/firmware/edd/int13_dev80"))
-        dev81 = FakeEddEntry(version="0x21", mbr_sig="0x96a20d28",
-                             sectors=31293440, host_bus="PCI", type="USB",
-                             pci_dev="ff:ff.255", channel=255,
-                             usb_serial=0x30302e31,
-                             interface="USB     \tserial_number: 30302e31",
-                             sysfspath=os.path.join(edd.fsroot,
-                                            "sys/firmware/edd/int13_dev81"))
         self.assertEqual(len(edd_dict), 2)
-        self.assertEqual(dev80, edd_dict[0x80])
-        self.assertEqual(dev81, edd_dict[0x81])
+        self.assertEqual(fakeedd[0x80], edd_dict[0x80])
+        self.assertEqual(fakeedd[0x81], edd_dict[0x81])
+        self.assertEqual(edd.log.debug.called, False)
+        self.assertEqual(edd.log.info.called, False)
+        self.assertEqual(edd.log.warning.called, False)
+        self.assertEqual(edd.log.error.called, False)
 
     def test_get_edd_dict_sata_usb(self):
-        from blivet.devicelibs import edd
-
         # test with sata sda, usb sdb
         self._set_fs_root(edd, "sata_usb")
         devices=(FakeDevice("/dev/sda"),
                  FakeDevice("/dev/sdb"),
                  )
+        fakeedd = {
+            0x80: FakeEddEntry(version="0x30", mbr_sig="0x00000000",
+                           sectors=312581808, host_bus="PCI", type="SATA",
+                           pci_dev="00:1f.2", channel=255, ata_device=1,
+                           interface="SATA    \tdevice: 1",
+                           sysfspath="/sys/firmware/edd/int13_dev80",
+                           sysfslink="../devices/pci0000:00/0000:00:1f.2/ata2"\
+                                     "/host1/target1:0:0/1:0:0:0/block/sda"),
+            0x81: FakeEddEntry(version="0x21", mbr_sig="0x96a20d28",
+                           sectors=31293440, host_bus="PCI", type="USB",
+                           pci_dev="ff:ff.255", channel=255,
+                           usb_serial=0x30302e31,
+                           interface="USB     \tserial_number: 30302e31",
+                           sysfspath="/sys/firmware/edd/int13_dev81"),
+            }
+
         edd_dict = edd.get_edd_dict(devices)
         self.assertEqual(len(edd_dict), 2)
         self.assertEqual(edd_dict["/dev/sda"], 0x80)
         self.assertEqual(edd_dict["/dev/sdb"], 0x81)
+        debugs = [
+            ("edd: data extracted from 0x%x:\n%s", 0x80, fakeedd[0x80]),
+            ("edd: data extracted from 0x%x:\n%s", 0x81, fakeedd[0x81]),
+            ]
+        infos = [
+            ("edd: MBR signature on %s is zero. new disk image?", "/dev/sda"),
+            ("edd: collected mbr signatures: %s",{'/dev/sdb': '0x96a20d28'}),
+            ("edd: matched 0x%x to %s using PCI dev", 0x80, "/dev/sda"),
+            ("edd: matched 0x%x to %s using MBR sig", 0x81, "/dev/sdb"),
+            ]
+        warnings = [
+            ("edd: interface type %s is not implemented (%s)", "USB",
+                "/sys/firmware/edd/int13_dev81"),
+            ("edd: interface details: %s", "USB     \tserial_number: 30302e31"),
+            ]
+        for debug in debugs:
+            self.assertIn(mock.call(*debug), edd.log.debug.call_args_list)
+        for info in infos:
+            self.assertIn(mock.call(*info), edd.log.info.call_args_list)
+        for warning in warnings:
+            self.assertIn(mock.call(*warning), edd.log.warning.call_args_list)
+        self.assertEqual(edd.log.error.called, False)
+
+    def test_collect_edd_data_absurd_virt(self):
+        self._set_fs_root(edd, "absurd_virt")
+        # siiiigh - this is actually the data out of sysfs on a virt I have
+        # created.  Apparently even qemu claims 3.0 sometimes and gives us
+        # bad data.
+        fakeedd = {
+            0x80: FakeEddEntry(version="0x30", mbr_sig="0x86531966",
+                               sectors=10485760, host_bus="PCI", type="SCSI",
+                               pci_dev="00:07.0", channel=0, scsi_id=0,
+                               scsi_lun=0, interface="SCSI    \tid: 0  lun: 0",
+                               sysfspath="/sys/firmware/edd/int13_dev80"),
+            0x81: FakeEddEntry(version="0x30", mbr_sig="0x7dfff0db",
+                               sectors=209716, host_bus="PCI", type="ATA",
+                               pci_dev="00:01.1", channel=0,
+                               interface="ATA     \tdevice: 1", ata_device=1,
+                               sysfspath="/sys/firmware/edd/int13_dev81"),
+            0x82: FakeEddEntry(version="0x30", mbr_sig="0xe3bf124b",
+                               sectors=419432,
+                               sysfspath="/sys/firmware/edd/int13_dev82"),
+            0x83: FakeEddEntry(version="0x30", mbr_sig="0xfa0a111d",
+                               sectors=629146,
+                               sysfspath="/sys/firmware/edd/int13_dev83"),
+            0x84: FakeEddEntry(version="0x30", mbr_sig="0x63f1d7d8",
+                               sectors=838862, host_bus="PCI", type="SCSI",
+                               pci_dev="00:0b.0", channel=0, scsi_id=0,
+                               scsi_lun=0, interface="SCSI    \tid: 0  lun: 0",
+                               sysfspath="/sys/firmware/edd/int13_dev84"),
+            0x85: FakeEddEntry(version="0x30", mbr_sig="0xee331b19",
+                               sectors=1258292,
+                               sysfspath="/sys/firmware/edd/int13_dev85"),
+            }
+        edd_dict = edd.collect_edd_data()
+        self.assertEqual(len(edd_dict), 6)
+        self.assertEqual(fakeedd[0x80], edd_dict[0x80])
+        self.assertEqual(fakeedd[0x81], edd_dict[0x81])
+        self.assertEqual(fakeedd[0x82], edd_dict[0x82])
+        self.assertEqual(fakeedd[0x83], edd_dict[0x83])
+        self.assertEqual(fakeedd[0x84], edd_dict[0x84])
+        self.assertEqual(fakeedd[0x85], edd_dict[0x85])
+        self.assertEqual(edd.log.debug.called, False)
+        self.assertEqual(edd.log.info.called, False)
+        self.assertEqual(edd.log.warning.called, False)
+        self.assertEqual(edd.log.error.called, False)
+
+    def test_get_edd_dict_absurd_virt(self):
+        self._set_fs_root(edd, "absurd_virt")
+        # siiiigh - this is actually the data out of sysfs on a virt I have
+        # created.  Apparently even qemu claims 3.0 sometimes and gives us
+        # bad data.
+        fakeedd = {
+            0x80: FakeEddEntry(version="0x30", mbr_sig="0x86531966",
+                               sectors=10485760, host_bus="PCI", type="SCSI",
+                               pci_dev="00:07.0", channel=0, scsi_id=0,
+                               scsi_lun=0, interface="SCSI    \tid: 0  lun: 0",
+                               sysfslink="../devices/pci0000:00"\
+                                         "/0000:00:07.0/virtio1/vda",
+                               sysfspath="/sys/firmware/edd/int13_dev80"),
+            0x81: FakeEddEntry(version="0x30", mbr_sig="0x7dfff0db",
+                               sectors=209716, host_bus="PCI", type="ATA",
+                               pci_dev="00:01.1", channel=0,
+                               interface="ATA     \tdevice: 1", ata_device=1,
+                               sysfslink="../devices/pci0000:00/0000:00:01.1/"\
+                                        "ata7/host6/target6:0:1/6:0:1:0/"\
+                                        "block/sdb",
+                               sysfspath="/sys/firmware/edd/int13_dev81"),
+            0x82: FakeEddEntry(version="0x30", mbr_sig="0xe3bf124b",
+                               sectors=419432,
+                               sysfspath="/sys/firmware/edd/int13_dev82"),
+            0x83: FakeEddEntry(version="0x30", mbr_sig="0xfa0a111d",
+                               sectors=629146,
+                               sysfspath="/sys/firmware/edd/int13_dev83"),
+            0x84: FakeEddEntry(version="0x30", mbr_sig="0x63f1d7d8",
+                               sectors=838862, host_bus="PCI", type="SCSI",
+                               pci_dev="00:0b.0", channel=0, scsi_id=0,
+                               scsi_lun=0, interface="SCSI    \tid: 0  lun: 0",
+                               sysfslink="../devices/pci0000:00/0000:00:0b.0/"\
+                                         "virtio3/host8/target8:0:0/8:0:0:0/"\
+                                         "block/sdc",
+                               sysfspath="/sys/firmware/edd/int13_dev84"),
+            0x85: FakeEddEntry(version="0x30", mbr_sig="0xee331b19",
+                               sectors=1258292,
+                               sysfspath="/sys/firmware/edd/int13_dev85"),
+            }
+        devices=(FakeDevice("/dev/sda"),
+                 FakeDevice("/dev/sdb"),
+                 FakeDevice("/dev/sdc"),
+                 FakeDevice("/dev/sdd"),
+                 FakeDevice("/dev/sde"),
+                 FakeDevice("/dev/vda"),
+                 )
+
+        edd_dict = edd.get_edd_dict(devices)
+        self.assertEqual(len(edd_dict), 6)
+        # this order is *completely unlike* the order in virt-manager,
+        # but it does appear to be what EDD is displaying.
+        self.assertEqual(edd_dict["/dev/vda"], 0x80)
+        self.assertEqual(edd_dict["/dev/sdb"], 0x81)
+        self.assertEqual(edd_dict["/dev/sda"], 0x82)
+        self.assertEqual(edd_dict["/dev/sde"], 0x83)
+        self.assertEqual(edd_dict["/dev/sdc"], 0x84)
+        self.assertEqual(edd_dict["/dev/sdd"], 0x85)
+        debugs = [
+            ("edd: data extracted from 0x%x:\n%s", 0x80, fakeedd[0x80]),
+            ("edd: data extracted from 0x%x:\n%s", 0x81, fakeedd[0x81]),
+            ("edd: data extracted from 0x%x:\n%s", 0x82, fakeedd[0x82]),
+            ("edd: data extracted from 0x%x:\n%s", 0x83, fakeedd[0x83]),
+            ("edd: data extracted from 0x%x:\n%s", 0x84, fakeedd[0x84]),
+            ("edd: data extracted from 0x%x:\n%s", 0x85, fakeedd[0x85]),
+            ]
+        infos = [
+            ("edd: matched 0x%x to %s using PCI dev", 0x80, "/dev/vda"),
+            ("edd: matched 0x%x to %s using PCI dev", 0x81, "/dev/sdb"),
+            ("edd: matched 0x%x to %s using MBR sig", 0x82, "/dev/sda"),
+            ("edd: matched 0x%x to %s using MBR sig", 0x83, "/dev/sde"),
+            ("edd: matched 0x%x to %s using PCI dev", 0x84, "/dev/sdc"),
+            ("edd: matched 0x%x to %s using MBR sig", 0x85, "/dev/sdd"),
+            ]
+        for debug in debugs:
+            self.assertIn(mock.call(*debug), edd.log.debug.call_args_list)
+        for info in infos:
+            self.assertIn(mock.call(*info), edd.log.info.call_args_list)
+        self.assertEqual(edd.log.warning.called, False)
+        self.assertEqual(edd.log.error.called, False)
 
     @unittest.skip("not implemented")
     def test_collect_edd_data_cciss(self):
-        from blivet.devicelibs import edd
         EddTestFS(self, edd).sda_cciss()
         edd_dict = edd.collect_edd_data()
 
@@ -84,7 +271,6 @@ def test_collect_edd_data_cciss(self):
 
     @unittest.skip("not implemented")
     def test_edd_entry_str(self):
-        from blivet.devicelibs import edd
         EddTestFS(self, edd).sda_vda()
         edd_dict = edd.collect_edd_data()
         expected_output = """\ttype: ATA, ata_device: 0
@@ -95,7 +281,6 @@ def test_edd_entry_str(self):
 
     @unittest.skip("not implemented")
     def test_matcher_device_path(self):
-        from blivet.devicelibs import edd
         EddTestFS(self, edd).sda_vda()
         edd_dict = edd.collect_edd_data()
 
@@ -109,7 +294,6 @@ def test_matcher_device_path(self):
 
     @unittest.skip("not implemented")
     def test_bad_device_path(self):
-        from blivet.devicelibs import edd
         EddTestFS(self, edd).sda_vda_no_pcidev()
         edd_dict = edd.collect_edd_data()
 
@@ -119,7 +303,6 @@ def test_bad_device_path(self):
 
     @unittest.skip("not implemented")
     def test_bad_host_bus(self):
-        from blivet.devicelibs import edd
         EddTestFS(self, edd).sda_vda_no_host_bus()
 
         edd_dict = edd.collect_edd_data()
@@ -137,7 +320,6 @@ def test_bad_host_bus(self):
     @unittest.skip("not implemented")
     def test_get_edd_dict_1(self):
         """ Test get_edd_dict()'s pci_dev matching. """
-        from blivet.devicelibs import edd
         EddTestFS(self, edd).sda_vda()
         self.assertEqual(edd.get_edd_dict([]),
                          {'sda' : 0x80,
@@ -146,7 +328,6 @@ def test_get_edd_dict_1(self):
     @unittest.skip("not implemented")
     def test_get_edd_dict_2(self):
         """ Test get_edd_dict()'s pci_dev matching. """
-        from blivet.devicelibs import edd
         edd.collect_mbrs = mock.Mock(return_value = {
                 'sda' : '0x000ccb01',
                 'vda' : '0x0006aef1'})
@@ -160,8 +341,6 @@ def test_get_edd_dict_3(self):
         """ Test scenario when the 0x80 and 0x81 edd directories contain the
             same data and give no way to distinguish among the two devices.
         """
-        from blivet.devicelibs import edd
-        edd.log = mock.Mock()
         edd.collect_mbrs = mock.Mock(return_value={'sda' : '0x000ccb01',
                                                    'vda' : '0x0006aef1'})
         EddTestFS(self, edd).sda_sdb_same()


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/08b14eec992d2a8ac2ad3e25d6c746d65471b635


More information about the anaconda-patches mailing list