blob: afb487f07f2321b6345eecaba32a05a0d3f52d77 [file] [log] [blame]
#!/usr/bin/perl
################################################################################
## ##
## Copyright (c) International Business Machines Corp., 2010 ##
## ##
## 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; either version 2 of the License, or ##
## (at your option) any later version. ##
## ##
## 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ##
## ##
################################################################################
# ##
# File : create_dmesg_entries_for_each_test.pl ##
# ##
# Usage: create_dmesg_entries_for_each_test.pl\ ##
# <LTP_COMMAND_FILE> <DMESG_DIRECTORY> ##
# ##
# Description: This is a simple perl script which will take ltp command file ##
# as input and then create a final command file which will have ##
# the following entries for each test tag: ##
# <tag_name__with_dmesg_entry> <test_binary_name>;\ ##
# <save_dmesg_logs> ##
# ##
# Author: Subrata Modak <subrata@linux.vnet.ibm.com> ##
# ##
# History: May 09 2010 - Created - Subrata Modak. ##
################################################################################
my $command_file = shift (@ARGV) || syntax();
my $dmesg_dir = shift (@ARGV) || syntax();
sub syntax() {
print "syntax: create_dmesg_entries_for_each_test.pl <LTP_COMMAND_FILE> <DMESG_DIRECTORY>\n";
exit (1);
}
open (FILE, $command_file) || die "Cannot open file: $command_file\n";
while ($line = <FILE>) {
if ($line =~ /^#/) {
print "$line";
next;
}
if ($line =~ /^\n$/) {
next;
}
chomp $line;
@tag_and_actual_command = split(/\ /, $line);
my $token_counter = 0;
my $tag_name = "";
foreach my $token (@tag_and_actual_command) {
if ($token_counter == 0 ) {
print $token . "__with_dmesg_entry" . " ";
print "dmesg -c 1>/dev/null 2>/dev/null;" . " ";
$token_counter++;
$tag_name = $token;
next;
}
print " " . $token . " ";
}
print "; dmesg > $dmesg_dir/$tag_name.dmesg.log \n";
}
close (FILE);