Hello guys,

some machinery is already in place
(http://afavant.elte.hu/~wferi/wine).  Actually I am not
sure we need a database or so.  What I have in mind:

Whenever somebody compiles the tests (with a Samba mount it
does not matter whether cross- os MSVC) s/he runs the
ziptests Bash script to produce a tests.zip, and we collect
it somewhere tagged by the date, eg. 20030828.

People download it, do their job, and send the report to
the list.

If the report is identical (modulo a couple of lines which
contain the current working directory and similar -- just
egrep -v it) to another for the same build and Windows
version, we just acknowledge the name.  If it is always the
case, then forget it.  If not, we may need a subarchitecture
or a better egrep pattern, this is manual.

For a new set of data, we run the dissect Perl script, which
gives a summary and one report file for each test.  No need
to rerun this ever.

The gather script assembles the summaries for the various
architectures into a summary table, with links to the small
report files.  Rerun when a new architecture is added for
this build.

We can have on directory for each build tag (like 20030828),
and separate directories for each architecture in them.

                   gather      dissect
                 works here   works here

                             ,- win95
                            |
               ,- 20030828 -+-- nt4.0
               |            |
               |             `- XP
   index.html -+
               |             ,- win98
               |            |
               `- 20030914 -+-- nt4.0
                            |
                             `- XP

We can also have a 'latest' directory which simply links to
the appropriate architecture subdirectories, and we can also
gather a summary there.  All the pages are static, and you
can select on the main page.

Find the scripts attached.  I do not really want to go
further until I know where/how they will run.  The desing is
not finished :)
                                             Feri.

#!/usr/bin/perl -w

$dummy="";
while (<>) {
  ($dll,$dummy,$test) = split /[.:\s]/;
  if (/not compiled/) {
      @res=();
  } else {
      open OUT,"> ${dll}_${test}.txt";
    TEST: while (<>) {
        print OUT;
        if (/^$test: (\d+) tests executed, (\d+) marked as todo, (\d+)/) {
            @res=($1,$2,$3);
            last TEST;
        }
    }
      close OUT;
  }
print "$dll:$test @res\n"
}
#!/usr/bin/perl -w
#
# Parameters: architecture names.  The program loads the summary.txt
# files from the corresponding (lowercase) directories.
#
# Copyright (C) 2003 Ferenc Wagner
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

foreach $arch (@ARGV) {
  $archs{$arch}->{reports} = 1;
  open ARCH, "< \L$arch\E.txt" or die "Can't open \L$arch\E.txt!";
  while (<ARCH>) {
    ($test,@results) = split;
    push @{$alltests{$test}},($arch);
    $archs{$arch}->{$test} = [EMAIL PROTECTED];
  }
  close ARCH;
}

print <<"EOF";
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd";>
<html>
<head>
  <title>Tests results</title>
  <link href="../default.css" rel="stylesheet" type="text/css">

  <meta http-equiv="Content-Type"
        content="text/html; charset=ISO-8859-1">
  <meta name="Author"
        content="Ferenc Wágner">
</head>

<body>
<table>
  <thead>
    <tr>
      <th>dll:test</th>
EOF
while (($arch,$tests) = each %archs) {
  print <<"EOF";
      <th colspan=3><a href="\L$arch\E/results.txt\">$arch</a>
          (<a href="\L$arch\E/reporters.txt">$tests->{reports}</a>)</th>
EOF
}
print <<"EOF";
    </tr>
  </thead>
  <tbody>
EOF
foreach (sort (keys %alltests)) {
  print <<"EOF";
    <tr>
      <td class="test">$_</td>
EOF
  while (($arch,$tests) = each %archs) {
    @results = @{$tests->{$_}};
    if (! @results) {
      print <<"EOF";
      <td colspan=3>not compiled</td>
EOF
    } else {
      if ($results[2]==0) {
        print <<"EOF";
      <td class="pass">$results[0]</td>
      <td class="pass">$results[1]</td>
      <td class="pass">$results[2]</td>
EOF
      } else {
        ($file = "\L$arch\E/".$_.".txt") =~s/:/_/;
        print <<"EOF";
      <td class="fail">$results[0]</td>
      <td class="fail">$results[1]</td>
      <td class="fail"><a href="$file">$results[2]</a></td>
EOF
      }
    }
  }
}
print <<"EOF";
    </tr>
  </tbody>
</table>
</body>
</html>
EOF

Reply via email to