chiark / gitweb /
[PATCH] support DRIVER as a rule key
[elogind.git] / test / udev-test.pl
index a7becf99df36bed2c976c8226822fb6b6a1f35ef..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
@@ -777,6 +777,16 @@ EOF
                exp_majorminor  => "4094:89999",
                conf            => <<EOF
 KERNEL="i2c-fake2", NAME="node"
+EOF
+       },
+       {
+               desc            => "multiple symlinks with format char",
+               subsys          => "tty",
+               devpath         => "/class/tty/ttyUSB0",
+               exp_name        => "symlink2-ttyUSB0",
+               exp_target      => "ttyUSB0",
+               conf            => <<EOF
+KERNEL="ttyUSB[0-9]*", NAME="ttyUSB%n", SYMLINK="symlink1-%n symlink2-%k symlink3-%b"
 EOF
        },
        {
@@ -1092,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
        },
 );
@@ -1258,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";
@@ -1302,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);