chiark / gitweb /
fixups to get back to proper patch order
[elogind.git] / test / udev-test.pl
index 9e4e192c51230f3465cd8e59bea774d7df2a2065..d584579584ba2b7bb7606ba2ebaed0d32ba26d93 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,48 @@ EOF
                exp_name        => "cdrom",
                conf            => <<EOF
 KERNEL="sda", NAME="cdrom%e"
+EOF
+       },
+       {
+               desc            => "ignore remove event test",
+               subsys          => "block",
+               devpath         => "/block/sda",
+               exp_name        => "node",
+               exp_error       => "yes",
+               conf            => <<EOF
+BUS="scsi", KERNEL="sda", NAME{ignore_remove}="node"
+EOF
+       },
+       {
+               desc            => "ignore remove event test (with all partitions)",
+               subsys          => "block",
+               devpath         => "/block/sda",
+               exp_name        => "node14",
+               exp_error       => "yes",
+               option          => "clear",
+               conf            => <<EOF
+BUS="scsi", KERNEL="sda", NAME{ignore_remove, all_partitions}="node"
+EOF
+       },
+       {
+               desc            => "SUBSYSTEM match 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 match 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
        },
 );
@@ -1100,7 +1152,6 @@ EOF
 $ENV{UDEV_TEST} = "yes";
 $ENV{SYSFS_PATH} = $sysfs;
 $ENV{UDEV_CONFIG_FILE} = $main_conf;
-$ENV{UDEV_NO_SLEEP} = "yes";
 $ENV{UDEV_NO_DEVD} = "yes";
 
 
@@ -1259,13 +1310,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";
@@ -1303,7 +1361,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);