]> mj.ucw.cz Git - eval.git/blob - bin/mo-merge-tests
Improved formatting of login tickets.
[eval.git] / bin / mo-merge-tests
1 #!/usr/bin/perl
2
3 @ARGV == 1 or die "Usage: mo-merge <task>\n";
4 my $task = $ARGV[0];
5 foreach my $s (`ls -d testing/*/$task`) {
6         chomp $s;
7         if (! -s "$s/points.old") {
8                 if (-s "$s/points") {
9                         rename "$s/points", "$s/points.old" or die "Rename $s/points failed: $!";
10                 } else {
11                         print "$s: NO POINTS?\n";
12                         next;
13                 }
14         }
15         open X, "$s/points.old" or die;
16         my %tests = ();
17         my %cmts = ();
18         while (<X>) {
19                 chomp;
20                 my ($test, $subtest, $pts, $cmt) = /^(\d+)([a-z]*)\s+(\d+)\s*(.*)/ or die;
21                 if (!exists($tests{$test}) || $tests{$test} > $pts) {
22                         $tests{$test} = $pts;
23                         $cmts{$test} = $cmt;
24                 }
25         }
26         close X;
27         open X, ">$s/points" or die;
28         foreach my $test (sort { $a <=> $b } keys %tests) {
29                 print X "$test $tests{$test} $cmts{$test}\n";
30         }
31         close X;
32 }