summaryrefslogtreecommitdiff
path: root/test/udevd-test/udev-log-amplify.pl
diff options
context:
space:
mode:
Diffstat (limited to 'test/udevd-test/udev-log-amplify.pl')
-rw-r--r--test/udevd-test/udev-log-amplify.pl87
1 files changed, 87 insertions, 0 deletions
diff --git a/test/udevd-test/udev-log-amplify.pl b/test/udevd-test/udev-log-amplify.pl
new file mode 100644
index 0000000000..c2d4723974
--- /dev/null
+++ b/test/udevd-test/udev-log-amplify.pl
@@ -0,0 +1,87 @@
+#!/usr/bin/perl -w
+#
+# udev-log-amplify
+#
+# Copyright (C) Intel Corp, 2004
+#
+# Author: Yin Hu <hu.yin@intel.com>
+#
+# This is a script for replacing udev binary during udevsend/udevd testing.
+# It first amplifies the execution time ( sleep 5 ) and then logs the event
+# information sent by udved in order that test script udevd-test.pl can
+# analyze whether udved execute as we expected.
+# You should not execute this script directly because it will be invoked by
+# udevd automatically.
+#
+# Before you run your test please modify $log_file to designate where the udev
+# log file should be placed, in fact, the default value is ok.
+#
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+use warnings;
+use strict;
+
+# modifiable settings
+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();
+
+ # Logging
+ if (open(LOGF, ">>$log_file")) {
+ print LOGF "$devpath,$action,$subsystem,$time\n";
+ } else {
+ print "File open failed. \n";
+ exit 1;
+ }
+ close(LOGF);
+
+ # Amplify the execution time of udev
+ sleep 5;
+
+ exit 0;
+} else {
+ print "Too less argument count.\n";
+ exit 1;
+}