chiark / gitweb /
remove broken %e enumeration
[elogind.git] / test / udev-test.pl
index e7c00e29e6e08e0bd855fd746a70071dafb4a512..9a88d062715cc823f6c62956bdeb58af5f3a151e 100755 (executable)
@@ -24,7 +24,6 @@ my $PWD               = $ENV{PWD};
 my $sysfs      = "sys/";
 my $udev_bin   = "../udev";
 my $udev_root  = "udev-root/"; # !!! directory will be removed !!!
-my $udev_db    = ".udevdb";
 my $udev_conf  = "udev-test.conf";
 my $udev_rules = "udev-test.rules";
 
@@ -232,7 +231,7 @@ KERNEL=="ttyUSB0", NAME="sub/direct/ory/visor"
 EOF
        },
        {
-               desc            => "place on bus of scsi partition",
+               desc            => "parent device name match of scsi partition",
                subsys          => "block",
                devpath         => "/block/sda/sda3",
                exp_name        => "first_disk3" ,
@@ -244,9 +243,9 @@ EOF
                desc            => "test substitution chars",
                subsys          => "block",
                devpath         => "/block/sda/sda3",
-               exp_name        => "Major:8:minor:3:kernelnumber:3:bus:0:0:0:0" ,
+               exp_name        => "Major:8:minor:3:kernelnumber:3:id:0:0:0:0" ,
                rules           => <<EOF
-BUS=="scsi", ID=="0:0:0:0", NAME="Major:%M:minor:%m:kernelnumber:%n:bus:%b"
+BUS=="scsi", ID=="0:0:0:0", NAME="Major:%M:minor:%m:kernelnumber:%n:id:%b"
 EOF
        },
        {
@@ -262,9 +261,9 @@ EOF
                desc            => "import of shell-value file",
                subsys          => "block",
                devpath         => "/block/sda",
-               exp_name        => "subdir/sys/node" ,
+               exp_name        => "subdir/info/node" ,
                rules           => <<EOF
-BUS=="scsi", IMPORT{file}="test.all", NAME="subdir%E{SYSFSDIR}/node"
+BUS=="scsi", IMPORT{file}="udev-test.conf", NAME="subdir/%E{udev_log}/node"
 KERNEL=="ttyUSB0", NAME="visor"
 EOF
        },
@@ -299,15 +298,6 @@ BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special--*", NAME=
 BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-device-", NAME="%c-3-%n"
 BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-devic", NAME="%c-4-%n"
 BUS=="scsi", PROGRAM=="/bin/echo -n special-device", RESULT=="special-*", NAME="%c-%n"
-EOF
-       },
-       {
-               desc            => "program result substitution (no argument should be subsystem)",
-               subsys          => "block",
-               devpath         => "/block/sda/sda3",
-               exp_name        => "subsys_block" ,
-               rules           => <<EOF
-BUS=="scsi", PROGRAM=="/bin/echo", RESULT=="block", NAME="subsys_block"
 EOF
        },
        {
@@ -386,18 +376,18 @@ EOF
                desc            => "test substitution by variable name",
                subsys          => "block",
                devpath         => "/block/sda/sda3",
-               exp_name        => "Major:8-minor:3-kernelnumber:3-bus:0:0:0:0" ,
+               exp_name        => "Major:8-minor:3-kernelnumber:3-id:0:0:0:0",
                rules           => <<EOF
-BUS=="scsi", ID=="0:0:0:0", NAME="Major:\$major-minor:\$minor-kernelnumber:\$number-bus:\$id"
+BUS=="scsi", ID=="0:0:0:0", NAME="Major:\$major-minor:\$minor-kernelnumber:\$number-id:\$id"
 EOF
        },
        {
                desc            => "test substitution by variable name 2",
                subsys          => "block",
                devpath         => "/block/sda/sda3",
-               exp_name        => "Major:8-minor:3-kernelnumber:3-bus:0:0:0:0" ,
+               exp_name        => "Major:8-minor:3-kernelnumber:3-id:0:0:0:0",
                rules           => <<EOF
-BUS=="scsi", ID=="0:0:0:0", DEVPATH="*/sda/*", NAME="Major:\$major-minor:%m-kernelnumber:\$number-bus:%b"
+BUS=="scsi", ID=="0:0:0:0", DEVPATH=="*/sda/*", NAME="Major:\$major-minor:%m-kernelnumber:\$number-id:\$id"
 EOF
        },
        {
@@ -406,7 +396,7 @@ EOF
                devpath         => "/block/sda/sda3",
                exp_name        => "830:0:0:03" ,
                rules           => <<EOF
-BUS=="scsi", ID=="0:0:0:0", DEVPATH="*/sda/*", NAME="%M%m%b%n"
+BUS=="scsi", ID=="0:0:0:0", DEVPATH=="*/sda/*", NAME="%M%m%b%n"
 EOF
        },
        {
@@ -415,7 +405,7 @@ EOF
                devpath         => "/block/sda/sda3",
                exp_name        => "833" ,
                rules           => <<EOF
-BUS=="scsi", ID=="0:0:0:0", DEVPATH="*/sda/*", NAME="\$major\$minor\$number"
+BUS=="scsi", ID=="0:0:0:0", DEVPATH=="*/sda/*", NAME="\$major\$minor\$number"
 EOF
        },
        {
@@ -424,31 +414,21 @@ EOF
                devpath         => "/block/sda/sda3",
                exp_name        => "8330:0:0:0" ,
                rules           => <<EOF
-BUS=="scsi", ID=="0:0:0:0", DEVPATH="*/sda/*", NAME="\$major%m%n\$id"
+BUS=="scsi", ID=="0:0:0:0", DEVPATH=="*/sda/*", NAME="\$major%m%n\$id"
 EOF
        },
        {
-               desc            => "invalid program for device with no bus",
+               desc            => "non matching BUS for device with no parent",
                subsys          => "tty",
                devpath         => "/class/tty/console",
-               exp_name        => "TTY" ,
+               exp_name        => "TTY",
                rules           => <<EOF
 BUS=="scsi", PROGRAM=="/bin/echo -n foo", RESULT=="foo", NAME="foo"
 KERNEL=="console", NAME="TTY"
 EOF
        },
        {
-               desc            => "valid program for device with no bus",
-               subsys          => "tty",
-               devpath         => "/class/tty/console",
-               exp_name        => "foo" ,
-               rules           => <<EOF
-PROGRAM=="/bin/echo -n foo", RESULT=="foo", NAME="foo"
-KERNEL=="console", NAME="TTY"
-EOF
-       },
-       {
-               desc            => "invalid label for device with no bus",
+               desc            => "non matching BUS",
                subsys          => "tty",
                devpath         => "/class/tty/console",
                exp_name        => "TTY" ,
@@ -458,7 +438,7 @@ KERNEL=="console", NAME="TTY"
 EOF
        },
        {
-               desc            => "valid label for device with no bus",
+               desc            => "SYSFS match",
                subsys          => "tty",
                devpath         => "/class/tty/console",
                exp_name        => "foo" ,
@@ -882,6 +862,7 @@ EOF
                devpath         => "/class/tty/tty0",
                exp_name        => "link",
                exp_target      => "link",
+               exp_add_error   => "yes",
                exp_rem_error   => "yes",
                option          => "clean",
                rules           => <<EOF
@@ -1027,74 +1008,6 @@ EOF
                exp_target      => "node",
                rules           => <<EOF
 BUS=="scsi", PROGRAM=="/bin/echo -n node link1 link2 link3 link4", RESULT=="node *", NAME="%c{1}", SYMLINK+="%c{2+}"
-EOF
-       },
-       {
-               desc            => "enumeration char test (single test)",
-               subsys          => "block",
-               devpath         => "/block/sda",
-               exp_name        => "cdrom",
-               rules           => <<EOF
-KERNEL=="sda", NAME="cdrom%e"
-EOF
-       },
-       {
-               desc            => "enumeration char test sequence 1/5 (keep)",
-               subsys          => "block",
-               devpath         => "/block/sda",
-               exp_name        => "cdrom",
-               option          => "keep",
-               rules           => <<EOF
-KERNEL=="sda", NAME="cdrom%e"
-EOF
-       },
-       {
-               desc            => "enumeration char test sequence 2/5 (keep)",
-               subsys          => "block",
-               devpath         => "/block/sda/sda1",
-               exp_name        => "enum",
-               option          => "keep",
-               rules           => <<EOF
-KERNEL=="sda1", NAME="enum%e"
-EOF
-       },
-       {
-               desc            => "enumeration char test sequence 3/5 (keep)",
-               subsys          => "block",
-               devpath         => "/block/sda/sda2",
-               exp_name        => "cdrom1",
-               option          => "keep",
-               rules           => <<EOF
-KERNEL=="sda2", NAME="cdrom%e"
-EOF
-       },
-       {
-               desc            => "enumeration char test sequence 4/5 (keep)",
-               subsys          => "block",
-               devpath         => "/block/sda/sda3",
-               exp_name        => "enum1",
-               option          => "keep",
-               rules           => <<EOF
-KERNEL=="sda3", NAME="enum%e"
-EOF
-       },
-       {
-               desc            => "enumeration char test sequence 5/5 (clean)",
-               subsys          => "block",
-               devpath         => "/block/sda/sda4",
-               exp_name        => "cdrom2",
-               option          => "clean",
-               rules           => <<EOF
-KERNEL=="sda4", NAME="cdrom%e"
-EOF
-       },
-       {
-               desc            => "enumeration char test after cleanup (single test)",
-               subsys          => "block",
-               devpath         => "/block/sda",
-               exp_name        => "cdrom",
-               rules           => <<EOF
-KERNEL=="sda", NAME="cdrom%e"
 EOF
        },
        {
@@ -1311,8 +1224,8 @@ EOF
                devpath         => "/block/sda/sda1",
                exp_name        => "part",
                rules           => <<EOF
-SUBSYSTEM=="block", KERNEL="*[0-9]", ENV{PARTITION}="true", ENV{MAINDEVICE}="false"
-SUBSYSTEM=="block", KERNEL="*[!0-9]", ENV{PARTITION}="false", ENV{MAINDEVICE}="true"
+SUBSYSTEM=="block", KERNEL=="*[0-9]", ENV{PARTITION}="true", ENV{MAINDEVICE}="false"
+SUBSYSTEM=="block", KERNEL=="*[!0-9]", ENV{PARTITION}="false", ENV{MAINDEVICE}="true"
 ENV{MAINDEVICE}=="true", NAME="disk"
 ENV{PARTITION}=="true", NAME="part"
 NAME="bad"
@@ -1342,7 +1255,7 @@ EOF
                devpath         => "/block/sda/sda1",
                exp_name        => "replaced",
                rules           => <<EOF
-BUS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e \\xef\\xe8garbage", RESULT=="[?][?]garbage", NAME="replaced"
+BUS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e \\xef\\xe8garbage", RESULT=="__garbage", NAME="replaced"
 EOF
        },
        {
@@ -1548,6 +1461,43 @@ KERNEL=="sda1", NAME="wrong"
 KERNEL=="sda1", NAME="", LABEL="NO"
 KERNEL=="sda1", NAME="right", LABEL="TEST"
 KERNEL=="sda1", NAME="wrong2"
+EOF
+       },
+       {
+               desc            => "NAME compare test",
+               subsys          => "block",
+               devpath         => "/block/sda/sda1",
+               exp_name        => "link",
+               exp_target      => "node",
+               not_exp_name    => "wronglink",
+               rules           => <<EOF
+KERNEL=="sda1", NAME="node"
+KERNEL=="sda2", NAME="wrong"
+KERNEL=="sda1", NAME=="wrong*", SYMLINK+="wronglink"
+KERNEL=="sda1", NAME=="?*", SYMLINK+="link"
+KERNEL=="sda1", NAME=="node*", SYMLINK+="link2"
+EOF
+       },
+       {
+               desc            => "NAME compare test 2",
+               subsys          => "block",
+               devpath         => "/block/sda/sda1",
+               exp_name        => "link2",
+               exp_target      => "sda1",
+               not_exp_name    => "link",
+               rules           => <<EOF
+KERNEL=="sda1", NAME=="?*", SYMLINK+="link"
+KERNEL=="sda1", NAME!="?*", SYMLINK+="link2"
+EOF
+       },
+       {
+               desc            => "invalid key operation",
+               subsys          => "block",
+               devpath         => "/block/sda/sda1",
+               exp_name        => "yes",
+               rules           => <<EOF
+KERNEL="sda1", NAME=="no"
+KERNEL=="sda1", NAME="yes"
 EOF
        },
 );
@@ -1740,7 +1690,6 @@ sub run_test {
        print "\n";
 
        if (defined($rules->{option}) && $rules->{option} eq "clean") {
-               system("rm -rf $udev_db");
                system("rm -rf $udev_root");
                mkdir($udev_root) || die "unable to create udev_root: $udev_root\n";
        }
@@ -1761,8 +1710,8 @@ mkdir($udev_root) || die "unable to create udev_root: $udev_root\n";
 # create config file
 open CONF, ">$udev_conf" || die "unable to create config file: $udev_conf";
 print CONF "udev_root=\"$udev_root\"\n";
-print CONF "udev_db=\"$udev_db\"\n";
 print CONF "udev_rules=\"$udev_rules\"\n";
+print CONF "udev_log=\"info\"\n";
 close CONF;
 
 my $test_num = 1;
@@ -1790,7 +1739,6 @@ if ($ARGV[0]) {
 print "$error errors occured\n\n";
 
 # cleanup
-system("rm -rf $udev_db");
 system("rm -rf $udev_root");
 unlink($udev_rules);
 unlink($udev_conf);