summaryrefslogtreecommitdiff
path: root/test/udev-test.pl
diff options
context:
space:
mode:
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>2004-09-14 21:44:55 -0700
committerGreg KH <gregkh@suse.de>2005-04-26 21:37:01 -0700
commit0345b8623581497f49184ffd1d8143fe20f71893 (patch)
treefabf5cbc2fc498e5f348f2e64fbf1758516f7bf0 /test/udev-test.pl
parent3db7fa27027110fde92a1b6061fab434fe708e9f (diff)
[PATCH] add enum tests
On Fri, Sep 10, 2004 at 01:09:07PM -0700, Greg KH wrote: > On Tue, Sep 07, 2004 at 01:19:34PM +0200, David Zeuthen wrote: > > > > KERNEL="sr*", NAME="%k", SYMLINK="cdrom%e" > > KERNEL="scd*", NAME="%k", SYMLINK="cdrom%e" > > KERNEL="pcd*", NAME="%k", SYMLINK="cdrom%e" > > KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", NAME="\%k", SYMLINK="cdrom%e" > > KERNEL="fd[0-9]", NAME="%k", SYMLINK="floppy%e" > > KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="floppy", NAME=\"%k", SYMLINK="floppy%e" > > > > New patch is attached. > > Nice, I've applied this. > > How about sending a patch for the test/udev-test.pl script that adds a > test for this new paramater, so we make sure to not break it in the > future. Here are the tests for the enumeration character %e. I've added a option string to be able to do a whole sequence of tests without node removal, so we can skip the "remove" event and get an increasing number to append to the name. After the sequence test the whole directory is cleaned for the next tests.
Diffstat (limited to 'test/udev-test.pl')
-rw-r--r--test/udev-test.pl89
1 files changed, 86 insertions, 3 deletions
diff --git a/test/udev-test.pl b/test/udev-test.pl
index 9feb28a7ba..590b551dfe 100644
--- a/test/udev-test.pl
+++ b/test/udev-test.pl
@@ -1017,6 +1017,74 @@ 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",
+ conf => <<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",
+ conf => <<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",
+ conf => <<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",
+ conf => <<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",
+ conf => <<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 => "clear",
+ conf => <<EOF
+KERNEL="sda4", NAME="cdrom%e"
+EOF
+ },
+ {
+ desc => "enumeration char test after cleanup (single test)",
+ subsys => "block",
+ devpath => "/block/sda",
+ exp_name => "cdrom",
+ conf => <<EOF
+KERNEL="sda", NAME="cdrom%e"
+EOF
+ },
);
# set env
@@ -1160,6 +1228,11 @@ sub run_test {
}
}
+ if (defined($config->{option}) && $config->{option} eq "keep") {
+ print "\n\n";
+ return;
+ }
+
udev("remove", $config->{subsys}, $config->{devpath}, \$config->{conf});
if ((-e "$PWD/$udev_root$config->{exp_name}") ||
(-l "$PWD/$udev_root$config->{exp_name}")) {
@@ -1175,6 +1248,13 @@ sub run_test {
} else {
print "remove: ok\n\n";
}
+
+ if (defined($config->{option}) && $config->{option} eq "clear") {
+ unlink($udev_db);
+ system("rm -rf $udev_root");
+ mkdir($udev_root) || die "unable to create udev_root: $udev_root\n";
+ }
+
}
# prepare
@@ -1194,9 +1274,13 @@ my $test_num = 1;
if ($ARGV[0]) {
# only run one test
$test_num = $ARGV[0];
- print "udev-test will run test number $test_num only\n";
- run_test($tests[$test_num-1], $test_num);
+ if (defined($tests[$test_num-1]->{desc})) {
+ print "udev-test will run test number $test_num only:\n\n";
+ run_test($tests[$test_num-1], $test_num);
+ } else {
+ print "test does not exist.\n";
+ }
} else {
# test all
print "\nudev-test will run ".($#tests + 1)." tests:\n\n";
@@ -1204,7 +1288,6 @@ if ($ARGV[0]) {
foreach my $config (@tests) {
run_test($config, $test_num);
$test_num++;
-
}
}