diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-01-05 14:19:56 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-01-05 14:21:05 +0100 |
commit | f2964ea50313e56a2509ef37646c27535d26a422 (patch) | |
tree | 90fa2efd77335cd44b130f3e2564cb399e029150 | |
parent | d2c9e3f40e4c7b1de0ea47b228bf65b096f90bf8 (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-x | scripts/test2tasks.pl | 26 |
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; } |