1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-08 20:58:20 +03:00

[PATCH] udevd-test.pl: remove wrong date calculation

A hour wrap during the test run does not work :) Just remove
all the useless date conversions as we are only interested in the
seconds it takes to process.

[root@pim udevd-test]# ./udevd-test.pl 9
   ...
   device: /class/tty/console, action: remove 
   forking udev time:     Sat Dec 11 18:59:57 2004
   the delay time is:     3 s 

   device: /class/tty/ptmx, action: remove 
   forking udev time:     Sat Dec 11 19:00:07 2004
   the delay time is:     4013 s 

   the delay time is: 4013 
   udevd doesn't act properly.
This commit is contained in:
kay.sievers@vrfy.org 2004-12-12 03:35:39 +01:00 committed by Greg KH
parent 7e0bd58475
commit 98446db553
3 changed files with 23 additions and 127 deletions

View File

@ -38,35 +38,11 @@ use strict;
my $udev_exe_time = 5;
my $log_file = "/tmp/udev_log.txt";
# global variables
my $devpath;
my $action;
my $subsystem;
# common functions
sub getDate {
# Get current date/time
# If we want GTM time, simply pass GMT as first argument to this function.
my $format = @_;
my $date;
if( $format =~ /GMT/i ) {
$date = gmtime() . " GMT";
} else {
$date = localtime();
}
return $date;
}
# main program
if ($ARGV[0]) {
$subsystem = $ARGV[0];
$devpath = $ENV{DEVPATH};
$action = $ENV{ACTION};
# Get current system date
my $time = getDate();
my $subsystem = $ARGV[0];
my $devpath = $ENV{DEVPATH};
my $action = $ENV{ACTION};
my $time = time();
# Logging
if (open(LOGF, ">>$log_file")) {

View File

@ -36,35 +36,11 @@ use strict;
# modifiable settings
my $log_file = "/tmp/udev_log.txt";
# global variables
my $devpath;
my $action;
my $subsystem;
# common functions
sub getDate {
# Get current date/time
# If we want GTM time, simply pass GMT as first argument to this function.
my $format = @_;
my $date;
if( $format =~ /GMT/i ) {
$date = gmtime() . " GMT";
} else {
$date = localtime();
}
return $date;
}
# main program
if ($ARGV[0]) {
# prepare
$subsystem = $ARGV[0];
$devpath = $ENV{DEVPATH};
$action = $ENV{ACTION};
# Get current system date
my $time = getDate();
my $subsystem = $ARGV[0];
my $devpath = $ENV{DEVPATH};
my $action = $ENV{ACTION};
my $time = time();
# Logging
if (open(LOGF, ">>$log_file")) {

View File

@ -85,62 +85,6 @@ sub udevsend {
return system("$udevsend_bin $subsystem");
}
sub getDate {
# Get current date function
# If we want GTM time, simply pass GMT as first argument to this function.
my $format = @_;
my $date;
if( $format =~ /GMT/i ) {
$date = gmtime() . " GMT";
} else {
$date = localtime();
}
return $date;
}
sub cmpDate {
# This function should return a difference betweent date1 and date2
my ($date1, $date2) = @_;
my @monList = ( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct", "Nov", "Dec" );
my ( $m1, $m2, $tmp );
$date1 =~ s/([\D]*)$//g;
$date2 =~ s/([\D]*)$//g;
return if( (not $date1) or (not $date2) );
my $mon = 0;
my ( @T1 ) =
( $date1 =~ /([\d]+)[\s]+([\d]+):([\d]+):([\d]+)[\s]+([\d]+)/g );
my ( @T2 ) =
( $date2 =~ /([\d]+)[\s]+([\d]+):([\d]+):([\d]+)[\s]+([\d]+)/g );
foreach $tmp (@monList) {
$m1 = sprintf("%2.2d",$mon) if( $date1 =~ /$tmp/i );
$m2 = sprintf("%2.2d",$mon) if( $date2 =~ /$tmp/i );
$mon++;
}
my $dt1 = sprintf("%4.4d%s%2.2d%2.2d%2.2d%2.2d", $T1[4], $m1, $T1[0],
$T1[1], $T1[2], $T1[3]);
my $dt2 = sprintf("%4.4d%s%2.2d%2.2d%2.2d%2.2d", $T2[4], $m2, $T2[0],
$T2[1], $T2[2], $T2[3]);
my $ret = $dt1 - $dt2;
if ( $ret > 40 ) {
$ret = abs($ret-40);
}
return $ret;
}
sub check_count_and_time {
my $event_recv_time;
my $udev_fork_time;
@ -160,7 +104,7 @@ sub check_count_and_time {
@line_items = split(/,/,$line);
print " device: $line_items[0], action: $line_items[1] \n";
print " forking udev time: $line_items[-1]";
$diff = cmpDate($line_items[-1], $event_recv_time);
$diff = $line_items[-1] - $event_recv_time;
print " the delay time is: $diff s \n\n";
if ( $diff > $time_out+10 ) {
print " the delay time is: $diff \n";
@ -205,7 +149,7 @@ sub show_result {
@line_items = split(/,/,$line);
print " device: $line_items[0], action: $line_items[1] \n";
print " forking udev time: $line_items[-1]";
$diff = cmpDate($line_items[-1], $event_recv_time);
$diff = $line_items[-1] - $event_recv_time;
print " the delay time is: $diff s \n\n";
}
close(LOGF);
@ -229,7 +173,7 @@ sub show_result_tm_out {
@line_items = split(/,/,$line);
print " device: $line_items[0], action: $line_items[1] \n";
print " forking udev time: $line_items[-1]";
$diff = cmpDate($line_items[-1], $event_recv_time);
$diff = $line_items[-1] - $event_recv_time;
print " the delay time is: $diff s \n\n";
if ( $diff < $time_out ) {
print " the delay time is: $diff \n";
@ -258,7 +202,7 @@ sub show_result_immediate {
@line_items = split(/,/,$line);
print " device: $line_items[0], action: $line_items[1] \n";
print " forking udev time: $line_items[-1]";
$diff = cmpDate($line_items[-1], $event_recv_time);
$diff = $line_items[-1] - $event_recv_time;
print " the delay time is: $diff s \n\n";
if ( $diff > $time_out ) {
print " the delay time is: $diff \n";
@ -285,7 +229,7 @@ sub check_exe_time {
$exe_time[$i] = $line_items[-1];
$i++;
}
$diff = cmpDate($exe_time[1], $exe_time[0]);
$diff = $exe_time[1] - $exe_time[0];
if ( $diff < $udev_exe_time ) {
print " there are more than one udev instance for a single device at the same time. \n";
exit 1;
@ -313,7 +257,7 @@ sub run_no_seq_test {
check_sysfs_device_exist("$sysfs/block/sda");
# log current system date/time
$time = getDate();
$time = time();
udevsend(-1, "/block/sda", "add", "block");
@ -328,7 +272,7 @@ sub run_no_seq_test {
system("rm -f $log_file");
# log current system date/time
$time = getDate();
$time = time();
udevsend(-1, "/block/sda", "remove", "block");
@ -358,7 +302,7 @@ sub run_normal_seq_test {
@file_list = glob "$sysfs/class/tty/*";
# log current system date/time for device add events
$time = getDate();
$time = time();
#
# add devices event test
@ -388,7 +332,7 @@ sub run_normal_seq_test {
}
# log current system date/time for device remove events
$time = getDate();
$time = time();
#
# remove devices event test
@ -443,7 +387,7 @@ sub run_random_seq_test {
restart_daemon();
# log current system date/time for device remove events
$time = getDate();
$time = time();
# parameters: 1 sequence number, 2 device, 3 action, 4 subsystem
udevsend(3, "/class/tty/tty2", "add", "tty");
@ -460,7 +404,7 @@ sub run_random_seq_test {
restart_daemon();
# log current system date/time for device remove events
$time = getDate();
$time = time();
udevsend(3, "/class/tty/tty2", "remove", "tty");
udevsend(2, "/class/tty/tty1", "remove", "tty");
@ -503,7 +447,7 @@ sub run_expected_seq_test {
system("rm -f $log_file");
# log current system date/time for device remove events
$time = getDate();
$time = time();
# show results
udevsend(7, "/class/tty/tty2", "add", "tty");
@ -535,7 +479,7 @@ sub run_single_instance_test {
check_sysfs_device_exist("$sysfs/block/sda");
# log current system date/time
$time = getDate();
$time = time();
udevsend(-1, "/block/sda", "add", "block");
udevsend(-1, "/block/sda", "remove", "block");
@ -568,7 +512,7 @@ sub run_same_events_test {
# log current system date/time
sleep 1;
$time = getDate();
$time = time();
system("rm -f $log_file");
udevsend(1, "/block/sda", "remove", "block");
@ -600,7 +544,7 @@ sub run_missing_seq_test {
sleep 1;
# log current system date/time
$time = getDate();
$time = time();
system("rm -f $log_file");
udevsend(3, "/block/sda", "add", "block");