aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-01-05 14:19:56 +0100
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-01-05 14:21:05 +0100
commitf2964ea50313e56a2509ef37646c27535d26a422 (patch)
tree90fa2efd77335cd44b130f3e2564cb399e029150
parentd2c9e3f40e4c7b1de0ea47b228bf65b096f90bf8 (diff)
test2tasks.pl: Handle QML tests as well.
- Create mapping for .qml-files. - Fix check for absolute file names (depending on OS). Change-Id: Ie847c283d2f37adef079b6de99606f2698dfe476 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
-rwxr-xr-xscripts/test2tasks.pl26
1 files changed, 23 insertions, 3 deletions
diff --git a/scripts/test2tasks.pl b/scripts/test2tasks.pl
index a37cc974b1..88fa2f46c7 100755
--- a/scripts/test2tasks.pl
+++ b/scripts/test2tasks.pl
@@ -32,6 +32,16 @@ use Cwd;
my $optAbsolute = 0;
my $optRelativeTo;
+# --------------- Detect OS
+
+my ($OS_LINUX, $OS_WINDOWS, $OS_MAC) = (0, 1, 2);
+my $os = $OS_LINUX;
+if (index($^O, 'MSWin') >= 0) {
+ $os = $OS_WINDOWS;
+} elsif (index($^O, 'darwin') >= 0) {
+ $os = $OS_MAC;
+}
+
# -- Build a hash from source file base name to relative paths.
my %fileHash;
@@ -40,7 +50,8 @@ my $workingDirectory = getcwd();
sub handleFile
{
my $file = $_;
- return unless index($file, '.cpp') != -1 && -f $file;
+ return unless -f $file;
+ return unless index($file, '.cpp') != -1 || index($file, '.h') != -1 || index($file, '.qml');
# './file' -> 'file'
my $name = substr($File::Find::name, 0, 1) eq '.' ?
substr($File::Find::name, 2) : $File::Find::name;
@@ -69,6 +80,13 @@ find({ wanted => \& handleFile}, '.');
my $lastLine = '';
my ($failCount, $fatalCount) = (0, 0);
+sub isAbsolute
+{
+ my ($f) = @_;
+ return $f =~ /^[a-zA-Z]:/ ? 1 : 0 if $os eq $OS_WINDOWS;
+ return index($f, '/') == 0 ? 1 : 0;
+}
+
while (my $line = <STDIN> ) {
chomp($line);
# --- Continuation line?
@@ -83,10 +101,12 @@ while (my $line = <STDIN> ) {
|| $line =~ /^\s*Loc:\s*\[([^(]+)\((\d+)\).*$/) {
my $fullFileName = $1;
my $line = $2;
- if (index($fullFileName, '/') != 0) { # Unix has absolute file names, Windows may not
+ # -- Fix '/C:/bla' which is sometimes reported for QML errors.
+ $fullFileName = substr($fullFileName, 1) if ($os eq $OS_WINDOWS && $fullFileName =~ /^\/[a-zA-Z]:\//);
+ if (!isAbsolute($fullFileName)) { # Unix has absolute file names, Windows may not
my $slashPos = rindex($fullFileName, '/');
$slashPos = rindex($fullFileName, "\\") if $slashPos < 0;
- my $fileName = $slashPos > 0 ? substr($1, $slashPos + 1) : $fullFileName;
+ my $fileName = $slashPos > 0 ? substr($fullFileName, $slashPos + 1) : $fullFileName;
$fullFileName = $fileHash{$fileName};
$fullFileName = $fileName unless defined $fullFileName;
}