]> mj.ucw.cz Git - eval.git/commitdiff
Added a simple script for grouping of test cases.
authorMartin Mares <mj@ucw.cz>
Sun, 25 Mar 2007 17:54:40 +0000 (17:54 +0000)
committerMartin Mares <mj@ucw.cz>
Sun, 25 Mar 2007 17:54:40 +0000 (17:54 +0000)
bin/mo-merge-tests [new file with mode: 0755]

diff --git a/bin/mo-merge-tests b/bin/mo-merge-tests
new file mode 100755 (executable)
index 0000000..0396a77
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+
+@ARGV == 1 or die "Usage: mo-merge <task>\n";
+my $task = $ARGV[0];
+foreach my $s (`ls -d testing/*/$task`) {
+       chomp $s;
+       if (! -s "$s/points.old") {
+               if (-s "$s/points") {
+                       rename "$s/points", "$s/points.old" or die "Rename $s/points failed: $!";
+               } else {
+                       print "$s: NO POINTS?\n";
+                       next;
+               }
+       }
+       open X, "$s/points.old" or die;
+       my %tests = ();
+       my %cmts = ();
+       while (<X>) {
+               chomp;
+               my ($test, $subtest, $pts, $cmt) = /^(\d+)([a-z]*)\s+(\d+)\s*(.*)/ or die;
+               if (!exists($tests{$test}) || $tests{$test} > $pts) {
+                       $tests{$test} = $pts;
+                       $cmts{$test} = $cmt;
+               }
+       }
+       close X;
+       open X, ">$s/points" or die;
+       foreach my $test (sort { $a <=> $b } keys %tests) {
+               print X "$test $tests{$test} $cmts{$test}\n";
+       }
+       close X;
+}