chiark / gitweb /
[PATCH] support DRIVER as a rule key
[elogind.git] / test / udev-test.pl
index 2b9fa8a2380433e42a1f70f88a9c11cf3384ea89..1e06df5220a7ae78c20601f1cd07b6c211533cb8 100644 (file)
@@ -30,7 +30,7 @@ my $PWD = $ENV{PWD};
 my $sysfs     = "sys/";
 my $udev_bin  = "../udev";
 my $udev_root = "udev-root/"; # !!! directory will be removed !!!
-my $udev_db   = ".udev.tdb";
+my $udev_db   = ".udevdb";
 my $perm      = "udev.permissions";
 my $main_conf = "udev-test.conf";
 my $conf_tmp  = "udev-test.rules";
@@ -550,11 +550,11 @@ KERNEL="tty2", NAME="tty2"
 EOF
        },
        {
-               desc            => "permissions tty3:::",
+               desc            => "permissions tty3::: (default mode applied)",
                subsys          => "tty",
                devpath         => "/class/tty/tty3",
                exp_name        => "tty3",
-               exp_perms       => "0:0:0",
+               exp_perms       => "0:0:600",
                conf            => <<EOF
 KERNEL="tty3", NAME="tty3"
 EOF
@@ -1102,6 +1102,27 @@ EOF
                exp_name        => "cdrom",
                conf            => <<EOF
 KERNEL="sda", NAME="cdrom%e"
+EOF
+       },
+       {
+               desc            => "SUBSYSTEM test",
+               subsys          => "block",
+               devpath         => "/block/sda",
+               exp_name        => "node",
+               conf            => <<EOF
+BUS="scsi", KERNEL="sda", NAME="should_not_match", SUBSYSTEM="vc"
+BUS="scsi", KERNEL="sda", NAME="node", SUBSYSTEM="block"
+BUS="scsi", KERNEL="sda", NAME="should_not_match2", SUBSYSTEM="vc"
+EOF
+       },
+       {
+               desc            => "DRIVER test",
+               subsys          => "block",
+               devpath         => "/block/sda",
+               exp_name        => "node",
+               conf            => <<EOF
+BUS="scsi", KERNEL="sda", NAME="should_not_match", DRIVER="sd-wrong"
+BUS="scsi", KERNEL="sda", NAME="node", DRIVER="sd"
 EOF
        },
 );
@@ -1268,13 +1289,20 @@ sub run_test {
        }
 
        if (defined($config->{option}) && $config->{option} eq "clear") {
-               unlink($udev_db);
+               system("rm -rf $udev_db");
                system("rm -rf $udev_root");
                mkdir($udev_root) || die "unable to create udev_root: $udev_root\n";
        }
 
 }
 
+# only run if we have root permissions
+# due to mknod restrictions
+if (!($<==0)) {
+       print "Must have root permissions to run properly.\n";
+       exit;
+}
+
 # prepare
 system("rm -rf $udev_root");
 mkdir($udev_root) || die "unable to create udev_root: $udev_root\n";
@@ -1312,7 +1340,7 @@ if ($ARGV[0]) {
 print "$error errors occured\n\n";
 
 # cleanup
-unlink($udev_db);
+system("rm -rf $udev_db");
 system("rm -rf $udev_root");
 unlink($conf_tmp);
 unlink($main_conf);