chiark / gitweb /
[PATCH] get part of callout return string
[elogind.git] / test / udev-test.pl
index b1757ee1bb587a972ad7a14ca9371e0a6a1e4bf5..1a35e3da82e446be17c0b5f52ff64ccd35b79181 100644 (file)
@@ -39,7 +39,7 @@ my @tests = (
                expected => "boot_disk" ,
                conf     => <<EOF
 LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="boot_disk%n"
-REPLACE, KERNEL="ttyUSB0", NAME="visor""
+REPLACE, KERNEL="ttyUSB0", NAME="visor"
 EOF
        },
        {
@@ -150,13 +150,22 @@ EOF
                expected => "test-0:0:0:0" ,
                conf     => <<EOF
 CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n test-%b", ID="test-*", NAME="%c"
+EOF
+       },
+       {
+               desc     => "callout program substitution (numbered part of)",
+               subsys   => "block",
+               devpath  => "block/sda/sda3",
+               expected => "link1" ,
+               conf     => <<EOF
+CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", ID="node *", NAME="%1c", SYMLINK="%2c %3c"
 EOF
        },
        {
                desc     => "devfs disk naming substitution",
                subsys   => "block",
                devpath  => "block/sda",
-               expected => "lun0/disk" ,
+               expected => "lun0/disc" ,
                conf     => <<EOF
 LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="lun0/%D"
 EOF
@@ -179,6 +188,51 @@ EOF
 CALLOUT, BUS="usb", PROGRAM="/bin/echo -n usb-%b", ID="*", NAME="%c"
 CALLOUT, BUS="scsi", PROGRAM="/bin/echo -n scsi-%b", ID="*", NAME="%c"
 CALLOUT, BUS="foo", PROGRAM="/bin/echo -n foo-%b", ID="*", NAME="%c"
+EOF
+       },
+       {
+               desc     => "symlink creation (same directory)",
+               subsys   => "tty",
+               devpath  => "class/tty/ttyUSB0",
+               expected => "visor0" ,
+               conf     => <<EOF
+REPLACE, KERNEL="ttyUSB[0-9]*", NAME="ttyUSB%n", SYMLINK="visor%n"
+EOF
+       },
+       {
+               desc     => "symlink creation (relative link back)",
+               subsys   => "block",
+               devpath  => "block/sda/sda2",
+               expected => "1/2/a/b/symlink" ,
+               conf     => <<EOF
+LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="1/2/node", SYMLINK="1/2/a/b/symlink"
+EOF
+       },
+       {
+               desc     => "symlink creation (relative link forward)",
+               subsys   => "block",
+               devpath  => "block/sda/sda2",
+               expected => "1/2/symlink" ,
+               conf     => <<EOF
+LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="1/2/a/b/node", SYMLINK="1/2/symlink"
+EOF
+       },
+       {
+               desc     => "symlink creation (relative link back and forward)",
+               subsys   => "block",
+               devpath  => "block/sda/sda2",
+               expected => "1/2/c/d/symlink" ,
+               conf     => <<EOF
+LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="1/2/a/b/node", SYMLINK="1/2/c/d/symlink"
+EOF
+       },
+       {
+               desc     => "multiple symlinks",
+               subsys   => "tty",
+               devpath  => "class/tty/ttyUSB0",
+               expected => "second-0" ,
+               conf     => <<EOF
+REPLACE, KERNEL="ttyUSB0", NAME="visor", SYMLINK="first-%n second-%n third-%n"
 EOF
        },
 );
@@ -238,7 +292,8 @@ foreach my $config (@tests) {
        }
 
        udev("remove", $config->{subsys}, $config->{devpath}, \$config->{conf});
-       if (-e "$PWD/$udev_root$config->{expected}") {
+       if ((-e "$PWD/$udev_root$config->{expected}") ||
+           (-l "$PWD/$udev_root$config->{expected}")) {
                print "remove: error\n\n";
                system("tree $udev_root");
                $error++;