[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