my $PWD = $ENV{PWD};
my $sysfs = "sys/";
-my $udev_bin = "../udev";
+my $udev_bin = "../test-udev";
my $udev_root = "udev-root/"; # !!! directory will be removed !!!
my $udev_conf = "udev-test.conf";
my $udev_rules = "udev-test.rules";
devpath => "/block/sda",
exp_name => "node12345678",
rules => <<EOF
-SUBSYSTEMS=="scsi", IMPORT="/bin/echo -e \' TEST_KEY=12345678 \\n TEST_key2=98765 \'", NAME="node\$env{TEST_KEY}"
+SUBSYSTEMS=="scsi", IMPORT="/bin/echo -e \' TEST_KEY=12345678\\n TEST_key2=98765\'", NAME="node\$env{TEST_KEY}"
KERNEL=="ttyUSB0", NAME="visor"
EOF
},
rules => <<EOF
SUBSYSTEMS=="scsi", KERNELS=="*:0:0:0", NAME="scsi-0:0:0:0"
SUBSYSTEMS=="scsi", KERNELS=="0:0:0:0", NAME="bad"
+EOF
+ },
+ {
+ desc => "substitute attr with link target value (first match)",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "driver-is-sd",
+ rules => <<EOF
+SUBSYSTEMS=="scsi", NAME="driver-is-\$attr{driver}"
+EOF
+ },
+ {
+ desc => "substitute attr with link target value (currently selected device)",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "driver-is-aic7xxx",
+ rules => <<EOF
+SUBSYSTEMS=="pci", NAME="driver-is-\$attr{driver}"
EOF
},
{
exp_target => "ttyUSB0",
rules => <<EOF
KERNEL=="ttyUSB[0-9]*", NAME="ttyUSB%n", SYMLINK+="%3s{dev}"
-EOF
- },
- {
- desc => "symlink with '%' in name",
- subsys => "tty",
- devpath => "/class/tty/ttyUSB0",
- exp_name => "percent%sign",
- exp_target => "ttyUSB0",
- rules => <<EOF
-KERNEL=="ttyUSB[0-9]*", NAME="ttyUSB%n", SYMLINK+="percent%%sign"
-EOF
- },
- {
- desc => "symlink with '%' in name",
- subsys => "tty",
- devpath => "/class/tty/ttyUSB0",
- exp_name => "%ttyUSB0_name",
- exp_target => "ttyUSB0",
- rules => <<EOF
-KERNEL=="ttyUSB[0-9]*", NAME="ttyUSB%n", SYMLINK+="%%%k_name"
EOF
},
{
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="yes", NAME="no"
SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="true", NAME="true"
SUBSYSTEMS=="scsi", KERNEL=="sda1", NAME="bad"
+EOF
+ },
+ {
+ desc => "ENV{} test (assign 2 times)",
+ subsys => "block",
+ devpath => "/block/sda/sda1",
+ exp_name => "true",
+ rules => <<EOF
+SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="true"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}="absolutely-\$env{ASSIGN}"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="yes", NAME="no"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", ENV{ASSIGN}=="absolutely-true", NAME="true"
+SUBSYSTEMS=="scsi", KERNEL=="sda1", NAME="bad"
EOF
},
{
devpath => "/block/sda/sda1",
exp_name => "yes",
rules => <<EOF
-KERNEL="sda1", NAME=="no"
+KERNEL="sda1", NAME="no"
KERNEL=="sda1", NAME="yes"
+EOF
+ },
+ {
+ desc => "operator chars in attribute",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "yes",
+ rules => <<EOF
+KERNEL=="sda", ATTR{test:colon+plus}=="?*", NAME="yes"
EOF
},
{
# 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
KERNEL="sda1", NAME=="no"
KERNEL=="sda1", NAME="yes"
+EOF
+ },
+ {
+ desc => "magic subsys/kernel lookup",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "00:e0:00:fb:04:e1",
+ rules => <<EOF
+KERNEL=="sda", NAME="\$attr{[net/eth0]address}"
+EOF
+ },
+ {
+ desc => "TEST absolute path",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "there",
+ rules => <<EOF
+TEST=="/etc/hosts", NAME="there"
+NAME="notthere"
+EOF
+ },
+ {
+ desc => "TEST subsys/kernel lookup",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "yes",
+ rules => <<EOF
+KERNEL=="sda", TEST=="[net/eth0]", NAME="yes"
+EOF
+ },
+ {
+ desc => "TEST relative path",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "relative",
+ rules => <<EOF
+KERNEL=="sda", TEST=="size", NAME="relative"
+EOF
+ },
+ {
+ desc => "TEST wildcard substitution (find queue/nr_requests)",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "found-subdir",
+ rules => <<EOF
+KERNEL=="sda", TEST=="*/nr_requests", NAME="found-subdir"
+EOF
+ },
+ {
+ desc => "TEST MODE=0000",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "sda",
+ exp_perms => "0:0:0000",
+ rules => <<EOF
+KERNEL=="sda", MODE="0000"
EOF
},
);