mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
tests/udev-test.pl: add multiple device test
Add 4 new tests using multiple devices. Number 2-4 use many devices claiming the same symlink, where only one device has a higher priority thatn the others. They fail sporadically with the current code, if a race condition causes the symlink to point to the wrong device. Test 4 is like test 2 with sleeps in between, it's much less likely to fail.
This commit is contained in:
parent
b95c43982a
commit
4a0ec82daf
@ -2085,6 +2085,175 @@ KERNEL=="sda", TAG+="aaa" \\
|
||||
KERNEL=="sdb", TAG+="bbb"
|
||||
TAGS=="foo", SYMLINK+="found"
|
||||
TAGS=="aaa", SYMLINK+="bad"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "multiple devices",
|
||||
devices => [
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
|
||||
exp_links => ["part-1"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
|
||||
exp_links => ["part-5"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
|
||||
exp_links => ["part-6"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
|
||||
exp_links => ["part-7"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
|
||||
exp_links => ["part-8"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
|
||||
exp_links => ["part-9"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
|
||||
exp_links => ["part-10"],
|
||||
},
|
||||
],
|
||||
rules => <<EOF
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "multiple devices, same link name, positive prio",
|
||||
devices => [
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
|
||||
exp_links => ["part-1"],
|
||||
not_exp_links => ["partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
|
||||
exp_links => ["part-5"],
|
||||
not_exp_links => ["partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-6"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
|
||||
exp_links => ["part-7", "partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-8"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-9"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-10"],
|
||||
},
|
||||
],
|
||||
rules => <<EOF
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
|
||||
KERNEL=="*7", OPTIONS+="link_priority=10"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "multiple devices, same link name, negative prio",
|
||||
devices => [
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
|
||||
exp_links => ["part-1"],
|
||||
not_exp_links => ["partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
|
||||
exp_links => ["part-5"],
|
||||
not_exp_links => ["partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-6"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
|
||||
exp_links => ["part-7", "partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-8"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-9"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-10"],
|
||||
},
|
||||
],
|
||||
rules => <<EOF
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
|
||||
KERNEL!="*7", OPTIONS+="link_priority=-10"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "multiple devices, same link name, positive prio, sleep",
|
||||
devices => [
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
|
||||
exp_links => ["part-1"],
|
||||
not_exp_links => ["partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda5",
|
||||
exp_links => ["part-5"],
|
||||
not_exp_links => ["partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda6",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-6"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda7",
|
||||
exp_links => ["part-7", "partition"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda8",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-8"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda9",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-9"],
|
||||
},
|
||||
{
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda10",
|
||||
not_exp_links => ["partition"],
|
||||
exp_links => ["part-10"],
|
||||
},
|
||||
],
|
||||
sleep_us => 10000,
|
||||
rules => <<EOF
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="part-%n"
|
||||
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNEL=="sda?*", ENV{DEVTYPE}=="partition", SYMLINK+="partition"
|
||||
KERNEL=="*7", OPTIONS+="link_priority=10"
|
||||
EOF
|
||||
},
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user