# HG changeset patch # User Matt Davies # Date 1243615562 -3600 # Node ID 5274345d54971ec86e1c2c8d0c2fc9461c107a4f # Parent 5639fead6fba1a51e7cb026f88a0f9f182ab8635 Added merge_csv_orphans.pl - Would just change merge_csv.pl but I've been hacking and don't trust it yet. diff -r 5639fead6fba -r 5274345d5497 common/tools/analysis/merge_csv_orphans.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/tools/analysis/merge_csv_orphans.pl Fri May 29 17:46:02 2009 +0100 @@ -0,0 +1,198 @@ +#!/usr/bin/perl + +# Copyright (c) 2009 Symbian Foundation Ltd +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Symbian Foundation Ltd - initial contribution. +# +# Contributors: +# +# Description: +# Adds info form a file to a CSV + +use strict; +my $csvfile = shift @ARGV; +my $filelist = shift @ARGV; +my $zipfile = shift @ARGV; + +if(! -e $csvfile) +{ + die "cannot find $csvfile\n"; +} + + +if(!-e $filelist) +{ + die "Cannot find $filelist\n"; +} + my %ziptimes; + my %zipused; + if(defined $zipfile) + { + open(ZIP,"7z l $zipfile 2>&1|") or die "Error: Couldn't look in $zipfile\n"; +# print "time,file\n"; + while( my $line = ) + { + if($line =~ m/^(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s\S{5}\s+(\d+)\s+\d+\s+(.+)$/) #ignoring packed size... + { + my $name = $3; + my $size = $2; + my $time = $1; + $name =~ s/\\/\//g; + $name = lc($name); + $ziptimes{$name} = $time; +# print "$time,$name\n"; + } + } + close ZIP; + } + my %files; + + open(FILES,"<$filelist") or die "Couldn't open $filelist\n"; + while(my $line = ) + { + $line =~ s/\\/\//g; + + if($line =~ m/^(.+)\s*:\s(.+\S)\s*$/) + { + my $group = $1; + my $file = $2; + + $file = lc($file); + if($files{$file}) + { + + $files{$file} = $files{$file}." ".$group; #Stop polluting next column + print "Multi:$file".$files{$file}."\n"; + + } + else + { + $files{$file} = ",".$group; + } + } + } + close FILE; + + open(CSV,"<$csvfile") or die "Couldn't open $csvfile\n"; + my $resultsfile = $csvfile."_results.csv"; + open(RESULTS,">$resultsfile") or die "Couldn't open write to $resultsfile\n"; + my $header = ; + $header =~ s/\n//; + print RESULTS $header.",status,time\n"; + my @fields = split(',',$header); + my $targetindex = 0; + my $counter = 0; + my $bldinfindex = 0; + my %failed; + my %bldinffiles; + foreach my $column (@fields) + { + if($column =~ m/target/) + { + $targetindex = $counter; + } + elsif($column =~ m/bldinf/) + { + $bldinfindex = $counter; + } + ++$counter; + } + ++$counter; + my $timeindex = $counter; +# print "\ntarget:$targetindex\tbuildinf:$bldinfindex\n"; + while(my $line = ) + { + $line =~ s/\n//; + @fields = split(',',$line); + my $target = $fields[$targetindex]; + $target = lc($target); + my $bldinf = $fields[$bldinfindex]; + if(!defined $bldinffiles{$bldinf}) + { + $bldinffiles{$bldinf} = 1; + } + my $found = 0; + if(defined $files{$target}) + { + $found = 1; + $line = $line.$files{$target}; + if($files{$target} =~ m/fail/i) + { + if(!defined $failed{$bldinf}) + { + $failed{$bldinf} = 1; + } + } + } + if(defined $ziptimes{$target}) + { + $zipused{$target} = 1; + if($found) + { + $line = $line.",".$ziptimes{$target}; + } + else + { + $line = $line.",,".$ziptimes{$target}; + } + } + print RESULTS $line."\n"; + + } + close CSV; + + foreach my $target (sort(keys %ziptimes)) + { + + if(!defined $zipused{$target}) + { + my $time = $ziptimes{$target}; + my $columnCounter=0; + my @row; + while($columnCounter <= $counter) + { + if($columnCounter == $bldinfindex) + { + push(@row,"Orphaned,"); + } + elsif($columnCounter == $targetindex) + { + push(@row,"$target,"); + } + elsif($columnCounter == $timeindex-1) + { + push(@row,"untouched,"); + } + elsif($columnCounter == $timeindex) + { + push(@row,"$time,"); + } + else + { + push(@row,","); + } + ++$columnCounter; + } + print RESULTS @row; + print RESULTS "\n"; + } + } + close RESULTS; + + foreach my $bldinf (sort(keys %bldinffiles)) + { + if(!defined $failed{$bldinf}) + { + print "OK:\t$bldinf\n"; + } + } + foreach my $bldinf (sort(keys %failed)) + { + print "Failed:\t$bldinf\n"; + } +