mirror of https://github.com/CGAL/cgal
remove the code about "filter_testsuite"
That feature has been dead since Sept 2021 and no longer maintained. It is probably not needed anymore, and not working anyway.
This commit is contained in:
parent
dde85b15a7
commit
f6f9da46e1
|
|
@ -1,75 +0,0 @@
|
|||
name: Filter Testsuite
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions: {}
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
pull-requests: write # to create comment
|
||||
|
||||
if: (github.event.comment.user.login == 'sloriot' || github.event.comment.user.login == 'lrineau') && contains(github.event.comment.body, '/testme')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v7
|
||||
id: get_label
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
//get branch name and username
|
||||
const pr_url = context.payload.issue.pull_request.url
|
||||
const pr_content = await github.request(pr_url)
|
||||
const label = pr_content.data.head.label
|
||||
const base = pr_content.data.base.ref
|
||||
console.log(label)
|
||||
return label+":"+base
|
||||
- name: Run Testsuite
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
#ssh key
|
||||
(
|
||||
cat <<EOF
|
||||
${{ secrets.ssh_key }}
|
||||
EOF
|
||||
)>> ~/.ssh/id_rsa
|
||||
chmod 600 /home/runner/.ssh/id_rsa
|
||||
#ssh public key
|
||||
(
|
||||
cat <<EOF
|
||||
${{ secrets.ssh_key_pub }}
|
||||
EOF
|
||||
)>> ~/.ssh/id_rsa.pub
|
||||
chmod 644 /home/runner/.ssh/id_rsa.pub
|
||||
#known hosts
|
||||
wget --no-check-certificate https://cgal.geometryfactory.com/CGAL/ssh_known_hosts -O ~/.ssh/known_hosts
|
||||
#config file
|
||||
wget --no-check-certificate https://cgal.geometryfactory.com/CGAL/ssh_config -O ~/.ssh/config
|
||||
#list of hosts
|
||||
wget --no-check-certificate https://cgal.geometryfactory.com/CGAL/ssh_host_list -O ~/ssh_host_list
|
||||
#ssh command
|
||||
LABEL="${{ steps.get_label.outputs.result }}"
|
||||
USER_NAME=$(echo $LABEL | cut -d':' -f 1)
|
||||
BRANCH_NAME=$(echo $LABEL | cut -d':' -f 2)
|
||||
BASE=$(echo $LABEL | cut -d':' -f 3)
|
||||
PR_NUMBER=${{ github.event.issue.number }}
|
||||
mapfile -t HOSTS < ~/ssh_host_list;
|
||||
for i in ${!HOSTS[@]}; do
|
||||
HOST=$(echo ${HOSTS[$i]}|cut -d' ' -f 1 )
|
||||
PATH_TO_SCRIPT=$(echo ${HOSTS[$i]}|cut -d' ' -f 2 )
|
||||
echo "ssh ${HOST} ${PATH_TO_SCRIPT}/run_testsuite_from_branch_name.sh $USER_NAME $BRANCH_NAME $BASE $PR_NUMBER"
|
||||
ssh ${HOST} "${PATH_TO_SCRIPT}/run_testsuite_from_branch_name.sh $USER_NAME $BRANCH_NAME $BASE $PR_NUMBER"
|
||||
done
|
||||
- name: Post address
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const address = "Testsuite launched. Results will appear on the following page: https://cgal.geometryfactory.com/~cgaltest/test_suite/TESTRESULTS/index.shtml "
|
||||
github.issues.createComment({
|
||||
owner: "CGAL",
|
||||
repo: "cgal",
|
||||
issue_number: ${{ github.event.issue.number }},
|
||||
body: address
|
||||
});
|
||||
|
|
@ -1,705 +0,0 @@
|
|||
#!/usr/bin/env perl
|
||||
#
|
||||
# first author: Geert-Jan Giezeman
|
||||
# recent maintainer: Laurent Rineau (2009-2011)
|
||||
#
|
||||
# This script creates a WWW page with a table of test suite results.
|
||||
#
|
||||
# Usage:
|
||||
# create_testresult_page <directory>
|
||||
|
||||
# Creates the following files :
|
||||
# - results-$version.shtml
|
||||
# - versions.inc (contains the version selector)
|
||||
# - index.shtml -> results-$version.shtml (symlink)
|
||||
|
||||
use Cwd;
|
||||
use strict;
|
||||
use Date::Format;
|
||||
|
||||
my $test_results_url="https://cgal.geometryfactory.com/~mgimeno/test_suite/TESTRESULTS/index.shtml";
|
||||
|
||||
my ($PLATFORMS_BESIDE_RESULTS, $PLATFORMS_REF_BETWEEN_RESULTS)=(1,1);
|
||||
|
||||
my $TEMPPAGE="tmp$$.html";
|
||||
my $TEMPPAGE2="tmp2$$.html";
|
||||
my $release_name;
|
||||
my @platforms_to_do;
|
||||
my @known_platforms;
|
||||
my %platform_short_names;
|
||||
my %platform_is_optimized;
|
||||
my %platform_is_64bits;
|
||||
my @available_platforms;
|
||||
my %test_directories = ();
|
||||
my @testresults;
|
||||
my $testresult_dir=cwd()."/TESTRESULTS";
|
||||
|
||||
# Inspired from
|
||||
# https://metacpan.org/pod/Sort::Versions
|
||||
sub sort_releases($$)
|
||||
{
|
||||
# Take arguments in revert order: one wants to sort from the recent to
|
||||
# the old releases.
|
||||
my $b = $_[0];
|
||||
my $a = $_[1];
|
||||
|
||||
#take only the numbers from release id, skipping the bug-fix
|
||||
#number, and I and Ic
|
||||
my @A = ($a =~ /(\d+)\.(\d+)\.?(:?\d+)?(:?-Ic?-)?(\d+)?/a);
|
||||
my @B = ($b =~ /(\d+)\.(\d+)\.?(:?\d+)?(:?-Ic?-)?(\d+)?/a);
|
||||
|
||||
while(@A and @B) {
|
||||
my $av = shift(@A);
|
||||
my $bv = shift(@B);
|
||||
#$av and $bv are integers
|
||||
if($av == $bv) { next; }
|
||||
return $av <=> $bv;
|
||||
}
|
||||
return @A <=> @B;
|
||||
}
|
||||
|
||||
sub write_selects()
|
||||
{
|
||||
print OUTPUTV "<p>You can browse the test results of a different version :</p>";
|
||||
my %releases;
|
||||
foreach $_ (glob("results-*.shtml")) {
|
||||
$_ =~ /results-(\d+.\d+)([^I]*)((-Ic?)-([^I].*))\.shtml/a;
|
||||
$releases{"$1"}=1;
|
||||
}
|
||||
print OUTPUTV "<table><tr>\n";
|
||||
print OUTPUTV " <th>All releases (<a href=\"${test_results_url}\">last one</a>)</th>\n";
|
||||
my $count = 0;
|
||||
foreach $_ (sort sort_releases (keys %releases)) {
|
||||
print OUTPUTV " <th>CGAL-$_</th>\n";
|
||||
$count++ > 3 && last;
|
||||
}
|
||||
print OUTPUTV "</tr>\n";
|
||||
print OUTPUTV "<tr>\n";
|
||||
write_select("sel");
|
||||
$count = 0;
|
||||
foreach $_ (sort sort_releases (keys %releases)) {
|
||||
write_select("sel" . $count, $_);
|
||||
$count++ > 3 && last;
|
||||
}
|
||||
print OUTPUTV "</tr>\n</table>\n";
|
||||
}
|
||||
|
||||
sub write_select()
|
||||
{
|
||||
my $id = shift(@_);
|
||||
my $pattern = ".*";
|
||||
if (@_ != 0) {
|
||||
$pattern = quotemeta(shift(@_));
|
||||
}
|
||||
my($filename, @result);
|
||||
print OUTPUTV " <td><select id=\"$id\" onchange=\"sel=document.getElementById(\'$id\'); top.location.href=sel.options[sel.selectedIndex].value\">\n";
|
||||
|
||||
print OUTPUTV '<option disabled selected value="">(select a release)', "</option>\n";
|
||||
my %results;
|
||||
foreach $_ (glob("results-*.shtml")) {
|
||||
my $ctime = (stat($_))[10];
|
||||
$results{$_} = $ctime;
|
||||
}
|
||||
foreach $_ (sort { $results{$b} <=> $results{$a} } keys %results) {
|
||||
$_ =~ /results-${pattern}(\.\d+)?(-.*|)\.shtml/ || next;
|
||||
my $ctime = (stat($_))[10];
|
||||
my $date = time2str('%a %Y/%m/%d', $ctime);
|
||||
print OUTPUTV '<option value="', $_, '">';
|
||||
($filename) = m/results-(.*?)\.shtml\s*/;
|
||||
# printf OUTPUTV "%-20s (last modified: %s)</option>\n", $filename, $date;
|
||||
printf OUTPUTV '%1$s (%2$s)</option>
|
||||
', $filename, $date;
|
||||
}
|
||||
print OUTPUTV "</select></td>";
|
||||
}
|
||||
|
||||
sub list_platforms()
|
||||
{
|
||||
my ($filename, @result);
|
||||
foreach $_ (glob("results_*.txt")) {
|
||||
($filename) = m/results_(.*?)\.txt\s*/;
|
||||
push(@result, $filename) if $filename;
|
||||
}
|
||||
return @result;
|
||||
}
|
||||
|
||||
sub list_packages($)
|
||||
#
|
||||
# Fill %test_directories with the packages found in the argument platform.
|
||||
# Return false if that platform does not have a list of packages.
|
||||
{
|
||||
my ($platform) = @_;
|
||||
my $test_result="results_${platform}.txt";
|
||||
open(TESTRESULT, $test_result) or return 0;
|
||||
while (<TESTRESULT>) {
|
||||
if (/^\s*(.*?)\s+(\w)\s*$/) {
|
||||
$test_directories{$1} = '';
|
||||
}
|
||||
}
|
||||
close TESTRESULT or return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub collect_results_of_platform($)
|
||||
{
|
||||
my ($platform) = @_;
|
||||
# Create an anonymous hash that hashes packages to their result.
|
||||
my $platform_results = {};
|
||||
my $test_result="results_${platform}.txt";
|
||||
my ($yeahs, $nays, $warnings,$reqs, $skips) = (0,0,0,0,0);
|
||||
my $resulttext;
|
||||
open(TESTRESULT, $test_result) or return $platform_results;
|
||||
while (<TESTRESULT>) {
|
||||
if (/^\s*(.*?)\s+(\w)\s*$/) {
|
||||
#($package,$succes) = ($1,$2);
|
||||
if ($2 eq 'y' or $2 eq 'Y') {
|
||||
$resulttext = 'y';
|
||||
++$yeahs;
|
||||
} elsif ($2 eq 'w' or $2 eq 'W') {
|
||||
$resulttext = 'w';
|
||||
++$warnings;
|
||||
} elsif ($2 eq 'n' or $2 eq 'N') {
|
||||
$resulttext = 'n';
|
||||
++$nays;
|
||||
} elsif ($2 eq 'r') {
|
||||
$resulttext = 'r';
|
||||
++$reqs;
|
||||
} elsif ($2 eq 's') {
|
||||
$resulttext = 's';
|
||||
++$skips;
|
||||
} else {
|
||||
$resulttext = ' ';
|
||||
}
|
||||
$platform_results->{$1} = $resulttext;
|
||||
}
|
||||
}
|
||||
close TESTRESULT;
|
||||
$platform_results->{"y"} = $yeahs;
|
||||
$platform_results->{"n"} = $nays;
|
||||
$platform_results->{"w"} = $warnings;
|
||||
$platform_results->{"r"} = $reqs;
|
||||
$platform_results->{"s"} = $skips;
|
||||
return $platform_results;
|
||||
}
|
||||
|
||||
sub collect_results()
|
||||
{
|
||||
my $platform;
|
||||
foreach $platform (@platforms_to_do) {
|
||||
list_packages($platform);
|
||||
}
|
||||
foreach $platform (@platforms_to_do) {
|
||||
push(@testresults, collect_results_of_platform($platform));
|
||||
}
|
||||
}
|
||||
|
||||
sub print_result_table()
|
||||
{
|
||||
my $platform_count = scalar(@platforms_to_do);
|
||||
|
||||
print OUTPUT <<"EOF";
|
||||
<table class="result" border="1" cellspacing="2" cellpadding="5">
|
||||
<tr align="CENTER">
|
||||
<th rowspan="2">Package</th>
|
||||
<!-- <th rowspan="2">Version</th> -->
|
||||
<th colspan="$platform_count">Test Platform</th>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
EOF
|
||||
|
||||
print_platforms_numbers();
|
||||
|
||||
print OUTPUT "</tr>\n";
|
||||
my $test_directory;
|
||||
my $test_num = 0;
|
||||
foreach $test_directory (sort keys %test_directories) {
|
||||
if ($PLATFORMS_REF_BETWEEN_RESULTS) {
|
||||
$test_num++;
|
||||
if ($test_num == 15) {
|
||||
$test_num = 0;
|
||||
print OUTPUT "\n<tr> <td align=\"center\">\n";
|
||||
print OUTPUT '<a href="#platforms">Platform Description</a>';
|
||||
print OUTPUT "\n";
|
||||
print_platforms_numbers();
|
||||
print OUTPUT "\n</tr>\n";
|
||||
}
|
||||
}
|
||||
# my $version;
|
||||
# if ( -r "$test_directory/version" ) {
|
||||
# open(VERSION, "$test_directory/version");
|
||||
# while(<VERSION>) {
|
||||
# ($version) = /^\s*([^\s]*)\s/;
|
||||
# last if $version;
|
||||
# }
|
||||
# close VERSION;
|
||||
# }
|
||||
print OUTPUT "\n<tr>\n";
|
||||
print OUTPUT "<td><a class=\"package_name\" href=\"\#$test_directory\" name=\"$test_directory\">$test_directory</a></td>\n";
|
||||
# if ( $version ) {
|
||||
# print OUTPUT "<TD ALIGN=CENTER>$version</TD>\n";
|
||||
# } else {
|
||||
# print OUTPUT "<TD ALIGN=CENTER>?.?</TD>\n";
|
||||
# }
|
||||
my ($platform_num,$platform)=(0,"");
|
||||
$platform_num=0;
|
||||
foreach $platform (@platforms_to_do) {
|
||||
my ($result,$resulttext);
|
||||
$resulttext = $testresults[$platform_num]->{$test_directory};
|
||||
if (! defined($resulttext)) {
|
||||
$resulttext = ' ';
|
||||
}
|
||||
print OUTPUT '<td align=center';
|
||||
if ($resulttext eq 'y') {
|
||||
print OUTPUT ' class="ok"';
|
||||
} elsif ($resulttext eq 'w') {
|
||||
print OUTPUT ' class="warning"';
|
||||
} elsif ($resulttext eq 'n') {
|
||||
print OUTPUT ' class="error"';
|
||||
} elsif ($resulttext eq 'r') {
|
||||
print OUTPUT ' class="requirements"';
|
||||
} elsif ($resulttext eq 's') {
|
||||
print OUTPUT ' class="skip"';
|
||||
}
|
||||
else {
|
||||
print OUTPUT ' class="na"';
|
||||
}
|
||||
print OUTPUT '> <a href="',
|
||||
"$release_name/$test_directory/TestReport_$platform.gz\"";
|
||||
print OUTPUT '>', "$resulttext</a></td>\n";
|
||||
++$platform_num;
|
||||
|
||||
}
|
||||
print OUTPUT "</tr>\n";
|
||||
}
|
||||
print OUTPUT "</table>\n";
|
||||
}
|
||||
|
||||
sub print_resultpage()
|
||||
{
|
||||
my $platform_count = scalar(@platforms_to_do);
|
||||
|
||||
print OUTPUT '<h2><a name="testresults">Test Results</a></h2>'."\n";
|
||||
print OUTPUT '<p>In the table below, each column is numbered, and corresponds to a platform. ';
|
||||
print OUTPUT 'Each column number is a link to the platform description table.</p> ', "\n";
|
||||
if ($PLATFORMS_BESIDE_RESULTS) {
|
||||
print OUTPUT <<"EOF";
|
||||
<table border="0" cellspacing="5" cellpadding="0">
|
||||
<tr align="center">
|
||||
<td>
|
||||
EOF
|
||||
}
|
||||
|
||||
print_result_table();
|
||||
|
||||
if ($PLATFORMS_BESIDE_RESULTS) {
|
||||
print OUTPUT "<td>\n<table class=\"beside\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\">\n";
|
||||
if ($platform_count > 0) {
|
||||
my $repeat_count = (1 + 1.1/16.5)*scalar(keys %test_directories)/($platform_count+0.25);
|
||||
while ($repeat_count >= 1) {
|
||||
$repeat_count--;
|
||||
print OUTPUT "<tr><td>\n";
|
||||
print_platforms();
|
||||
print OUTPUT "</tr>\n";
|
||||
}
|
||||
}
|
||||
print OUTPUT "</table>\n</tr>\n</table>\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub sort_pf
|
||||
{
|
||||
# MSVS first
|
||||
if($a =~ m/^MS/) {
|
||||
if($b =~ m/^MS/) {
|
||||
return $a cmp $b;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if($b =~ m/^MS/) { return 1; }
|
||||
|
||||
# g++/gcc second
|
||||
if($a =~ m/^g[c+][c+]/) {
|
||||
if($b =~ m/^g[c+][c+]/) {
|
||||
return $a cmp $b;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if($b =~ m/^g[c+][c+]/) { return 1; }
|
||||
|
||||
# Intel third
|
||||
if($a =~ m/^[iI]/) {
|
||||
if($b =~ m/^[iI]/) {
|
||||
return $a cmp $b;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if($b =~ m/^[iI]/) { return 1; }
|
||||
|
||||
# SunPro last
|
||||
if($a =~ m/^[Ss][uU[Nn]/) {
|
||||
if($b =~ m/^[Ss][uU[Nn]/) {
|
||||
return $a cmp $b;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if($b =~ m/^[Ss][uU[Nn]/) { return -1; }
|
||||
|
||||
return $a cmp $b;
|
||||
}
|
||||
|
||||
sub parse_platform($)
|
||||
{
|
||||
my ($pf) = @_;
|
||||
$pf =~ s/_LEDA$//;
|
||||
my @list = split /_/, $pf;
|
||||
return @list;
|
||||
}
|
||||
|
||||
sub parse_platform_2($)
|
||||
{
|
||||
my ($pf) = @_;
|
||||
my @list = parse_platform($pf);
|
||||
# if (@list > 3) {
|
||||
# splice(@list,0,@list-3);
|
||||
# }
|
||||
while (@list < 3) {
|
||||
push(@list,'?');
|
||||
}
|
||||
return @list;
|
||||
}
|
||||
|
||||
sub short_pfname($)
|
||||
{
|
||||
my @pflist = parse_platform_2($_[0]);
|
||||
my $shortpf;
|
||||
if(@pflist < 4) {
|
||||
$shortpf = join('_', $pflist[1], $pflist[2]);
|
||||
}
|
||||
elsif($pflist[2] !~ /Linux/i) {
|
||||
$shortpf = join('_', $pflist[3], $pflist[2]);
|
||||
if(@pflist >= 5) {
|
||||
$shortpf = join('_', $shortpf, $pflist[4]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$shortpf = $pflist[3];
|
||||
if(@pflist >= 5) {
|
||||
$shortpf = join('_', $shortpf, $pflist[4]);
|
||||
}
|
||||
}
|
||||
return $shortpf;
|
||||
}
|
||||
|
||||
sub choose_platforms()
|
||||
{
|
||||
my (%platform_index, $pf);
|
||||
# List all platforms for which there are results
|
||||
@available_platforms = list_platforms();
|
||||
my $index = 0;
|
||||
# Put all known platforms in a hash table.
|
||||
for ($index=0; $index < @known_platforms; $index += 1) {
|
||||
$pf = $known_platforms[$index];
|
||||
$platform_index{$pf} = 1;
|
||||
}
|
||||
# Check if there are platforms listed that are not known. Warn about this
|
||||
# and add those platforms at the end of the list of known platforms.
|
||||
foreach (@available_platforms) {
|
||||
$pf = $_;
|
||||
my $shortpf = short_pfname($pf);
|
||||
$pf =~ s/^[^_]*_//;
|
||||
$pf =~ s/_LEDA$//;
|
||||
if (!exists $platform_index{$shortpf}) {
|
||||
# print STDERR "Warning: Platform $_ is unknown!\n";
|
||||
$platform_index{$shortpf} = 1;
|
||||
push(@known_platforms,$shortpf); # ???
|
||||
$platform_short_names{$shortpf} = $shortpf;
|
||||
}
|
||||
}
|
||||
|
||||
# Make a list of all the platforms that are to be treated, in the order they
|
||||
# appear in the list of known_platforms.
|
||||
@platforms_to_do = ();
|
||||
@known_platforms = sort sort_pf @known_platforms;
|
||||
for ($index=0; $index < @known_platforms; $index += 1) {
|
||||
$pf = $known_platforms[$index];
|
||||
my $ind2 = 0;
|
||||
foreach (@available_platforms) {
|
||||
my $apf = short_pfname($_);
|
||||
if ($apf eq $pf) {
|
||||
push(@platforms_to_do, $_);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub print_platform_descriptions()
|
||||
{
|
||||
my ($i,$pf_no,$pf) = (0,1);
|
||||
print OUTPUT <<'EOF';
|
||||
<h2><a name="platforms">Platform Description and Summary</a></h2>
|
||||
<table border="1" cellspacing="2" cellpadding="5" class="summary">
|
||||
<tr align="center">
|
||||
<th colspan="2">OS and compiler</th>
|
||||
<th>Tester</th>
|
||||
<th class="ok">y</th>
|
||||
<th class="warning">w</th>
|
||||
<th class="error">n</th>
|
||||
<th class="requirements">r</th>
|
||||
<th class="skip">s</th>
|
||||
<th>CMake</th>
|
||||
<th>BOOST</th>
|
||||
<th>MPFR</th>
|
||||
<th>GMP</th>
|
||||
<th>QT5</th>
|
||||
<th>LEDA</th>
|
||||
<th>CXXFLAGS</th>
|
||||
<th>LDFLAGS</th>
|
||||
</tr>
|
||||
EOF
|
||||
my ($platform_num)=(0);
|
||||
foreach $pf (@platforms_to_do) {
|
||||
my $pf_num_plus_one = $platform_num + 1;
|
||||
print OUTPUT "<tr>\n<td><a name=\"platform$pf_num_plus_one\">$pf_no</a>\n";
|
||||
$pf_no++;
|
||||
# my $pf_short = join('_',parse_platform_2($pf));
|
||||
(my $pf_short) = ($pf =~ m/_(.*)/);
|
||||
print OUTPUT "<td><a href=\"$release_name/Installation/TestReport_$pf.gz\"";
|
||||
|
||||
($platform_is_64bits{$pf}) = ! ($pf =~ m/32/);
|
||||
|
||||
if (open (PLATFORM_INFO, "results_${pf}.info")) {
|
||||
$_ = <PLATFORM_INFO>; # CGAL_VERSION
|
||||
$_ = <PLATFORM_INFO>; # COMPILER
|
||||
chomp;
|
||||
my $compiler = $_;
|
||||
print OUTPUT " title=\"$compiler\">$pf_short</a>";
|
||||
$_ = <PLATFORM_INFO>; # TESTER_NAME
|
||||
chomp;
|
||||
my $tester_name = $_;
|
||||
$_ = <PLATFORM_INFO>; # TESTER_ADDRESS
|
||||
chomp;
|
||||
my $tester_address = $_;
|
||||
|
||||
my $county = $testresults[$platform_num]->{"y"};
|
||||
my $countw = $testresults[$platform_num]->{"w"};
|
||||
my $countn = $testresults[$platform_num]->{"n"};
|
||||
my $countr = $testresults[$platform_num]->{"r"};
|
||||
my $counts = $testresults[$platform_num]->{"s"};
|
||||
|
||||
my $index = 8;
|
||||
my @tmp;
|
||||
while ($index) {
|
||||
$index--;
|
||||
$_ = <PLATFORM_INFO>;
|
||||
chomp;
|
||||
$tmp[$index] = $_;
|
||||
}
|
||||
($platform_is_optimized{$pf}) = ($tmp[1] =~ m|([-/]x?O[1-9])|);
|
||||
$_ = <PLATFORM_INFO>;
|
||||
chomp;
|
||||
print OUTPUT "</td>\n";
|
||||
print OUTPUT "<td><a href=\"mailto:$tester_address\">$tester_name</a></td>\n";
|
||||
print OUTPUT "<td>$county</td>\n";
|
||||
print OUTPUT "<td>$countw</td>\n";
|
||||
print OUTPUT "<td>$countn</td>\n";
|
||||
print OUTPUT "<td>$countr</td>\n";
|
||||
print OUTPUT "<td>$counts</td>\n";
|
||||
$index = 8;
|
||||
while ($index) {
|
||||
$index--;
|
||||
$_ = $tmp[$index];
|
||||
if($index > 2) {
|
||||
print OUTPUT "<td align=\"center\">$_</td>\n";
|
||||
} else {
|
||||
print OUTPUT "<td>$_</td>\n";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print OUTPUT ">$pf_short</a>";
|
||||
my $index = 12;
|
||||
while ($index) {
|
||||
print OUTPUT "<td>?</td>\n";
|
||||
}
|
||||
}
|
||||
++$platform_num;
|
||||
}
|
||||
print OUTPUT "</table>\n<p>\n";
|
||||
}
|
||||
|
||||
sub print_platforms_numbers()
|
||||
{
|
||||
my ($platform_num,$platform)=(0,"");
|
||||
foreach $platform (@platforms_to_do) {
|
||||
++$platform_num;
|
||||
my $pf_short = short_pfname($platform);
|
||||
my $class = "";
|
||||
my $tag = "";
|
||||
if($platform_is_optimized{$platform} || $platform_is_64bits{$platform})
|
||||
{
|
||||
$class = " class=\"";
|
||||
$tag = " ( ";
|
||||
if($platform_is_64bits{$platform}) {
|
||||
$class = "$class os64bits";
|
||||
$tag = $tag . "64 bits ";
|
||||
}
|
||||
if($platform_is_optimized{$platform}) {
|
||||
$class = "$class highlight";
|
||||
$tag = $tag ." optimized: $platform_is_optimized{$platform}";
|
||||
}
|
||||
$class = $class . "\"";
|
||||
$tag = $tag . " )";
|
||||
}
|
||||
print OUTPUT "<td$class><a href=\"#platform$platform_num\" title=\"$pf_short$tag\"><b>$platform_num</b></a>\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub print_platforms()
|
||||
{
|
||||
my ($pf_no,$pf) = (1,"");
|
||||
print OUTPUT '<table border="1" cellspacing="2" cellpadding="5" >',"\n";
|
||||
foreach $pf (@platforms_to_do) {
|
||||
print OUTPUT "<tr>\n<td>$pf_no\n";
|
||||
$pf_no++;
|
||||
my $pf_short = short_pfname($pf);
|
||||
print OUTPUT "<td>$platform_short_names{$pf_short}";
|
||||
print OUTPUT "\n</td></tr>\n";
|
||||
}
|
||||
print OUTPUT "</table>\n";
|
||||
}
|
||||
|
||||
sub result_filename($)
|
||||
{
|
||||
return "results".substr($_[0],4).".shtml";
|
||||
# $name =~ s/-Ic?-/-/;
|
||||
}
|
||||
|
||||
|
||||
sub print_little_header(){
|
||||
|
||||
my $release_version = substr($release_name, 5);
|
||||
print OUTPUT<<"EOF";
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"https://www.w3.org/TR/html4/strict.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>${release_name} Test Results</title>
|
||||
<link rel="shortcut icon" href="cgal.ico">
|
||||
<link rel="stylesheet" type="text/css" href="testresult.css">
|
||||
<!-- This file is generated by a program. Do not edit manually!! -->
|
||||
</head>
|
||||
<body>
|
||||
<h1>Test Results of ${release_name}
|
||||
<a id="permalink" href="results-${release_version}.shtml">permalink</a>
|
||||
<a id="jump_to_results" href="#testresults">jump to results</a></h1>
|
||||
<!--#include virtual="versions.inc"-->
|
||||
<p>The results of the tests are presented in a table
|
||||
('y' = success, 'w' = warning, 'n' = failure, 'r' = a requirement is not found, 's' = package skipped by tester),
|
||||
and the error + compiler output from each test can be retrieved by clicking
|
||||
on it.</p>
|
||||
<p><b>N.B. The detection of warnings is not exact.
|
||||
Look at the output to be sure!</b></p>
|
||||
<ol>
|
||||
EOF
|
||||
if ( -r "announce.html" ) {
|
||||
print OUTPUT<<"EOF";
|
||||
<li><a href="$release_name/announce.html">Announcement of this release</a></li>
|
||||
EOF
|
||||
}
|
||||
|
||||
print OUTPUT "</ol>\n";
|
||||
}
|
||||
|
||||
|
||||
sub main()
|
||||
{
|
||||
if (scalar(@ARGV) != 1 ) {
|
||||
print STDERR "usage: $0 directory\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
$release_name =shift(@ARGV);
|
||||
|
||||
$release_name =~ s<(\s+)$><>;
|
||||
$release_name =~ s<(/)$><>;
|
||||
chdir $testresult_dir or die;
|
||||
if ( ! -d $release_name ) {
|
||||
print STDERR "$release_name is not a valid directory\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# init_known_platforms();
|
||||
chdir $testresult_dir or die;
|
||||
chdir $release_name or die;
|
||||
choose_platforms();
|
||||
chdir "..";
|
||||
|
||||
umask 0022;
|
||||
unlink $TEMPPAGE;
|
||||
unlink $TEMPPAGE2;
|
||||
open(OUTPUT,">$TEMPPAGE") or die;
|
||||
open(OUTPUTV,">$TEMPPAGE2") or die;
|
||||
chdir $testresult_dir or die;
|
||||
chdir $release_name or die;
|
||||
collect_results();
|
||||
print_little_header();
|
||||
print_platform_descriptions();
|
||||
print_resultpage();
|
||||
|
||||
print OUTPUT << 'EOF';
|
||||
<p style="width: 100%">This page has been created by the test results
|
||||
collection scripts (in <a
|
||||
href="https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/trunk/Maintenance/test_handling?root=cgal"><tt>trunk/Maintenance/test_handling</tt></a>).
|
||||
<a href="test_results.log">See the log here</a>.</p>
|
||||
|
||||
<p>
|
||||
<a href="https://validator.w3.org/check?uri=https://cgal.geometryfactory.com<!--#echo var="DOCUMENT_URI" -->"><img
|
||||
src="valid-html401-blue"
|
||||
alt="Valid HTML 4.01 Strict" height="31" width="88"></a>
|
||||
</p>
|
||||
EOF
|
||||
print OUTPUT "</body>\n</html>\n";
|
||||
|
||||
close OUTPUT;
|
||||
chdir "..";
|
||||
|
||||
my $WWWPAGE = result_filename($release_name);
|
||||
rename $TEMPPAGE, $WWWPAGE;
|
||||
chmod 0644, $WWWPAGE;
|
||||
unlink "index.shtml";
|
||||
symlink $WWWPAGE, "index.shtml";
|
||||
|
||||
# Deal with the versions.inc file.
|
||||
write_selects();
|
||||
my $VERSIONS_WEBPAGE="versions.inc";
|
||||
rename $TEMPPAGE2, $VERSIONS_WEBPAGE;
|
||||
chmod 0644, $VERSIONS_WEBPAGE;
|
||||
}
|
||||
|
||||
sub init_known_platforms()
|
||||
{
|
||||
my ($short_name, $full_name);
|
||||
open(PLATFORMS,'known_platforms') or die;
|
||||
@known_platforms = ();
|
||||
while(<PLATFORMS>) {
|
||||
($short_name, $full_name) =split;
|
||||
$full_name = short_pfname($full_name);
|
||||
push(@known_platforms,$full_name);
|
||||
$platform_short_names{$full_name} = $full_name;
|
||||
}
|
||||
close(PLATFORMS);
|
||||
}
|
||||
|
||||
main();
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
body {color: black; background-color: #C0C0D0; font-family: sans-serif;}
|
||||
|
||||
P {
|
||||
width: 80ex
|
||||
}
|
||||
|
||||
A {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
TABLE.result { font-weight: bold; background-color: white; padding: 1em; table-layout: fixed;}
|
||||
|
||||
TABLE.summary TD { white-space: nowrap }
|
||||
TABLE.result,TABLE.summary { border-collapse: collapse; }
|
||||
TABLE.result TD,TABLE.summary TD { border-width: 1px; border-style: solid; }
|
||||
TABLE.result TD { padding: 0;}
|
||||
TABLE.result TD > a { font-weight: normal; font-family: monospace; display: block; padding: 0.2ex 0.5ex 0.2ex 0.5ex;}
|
||||
|
||||
TABLE.beside TABLE { border-collapse: collapse; font-family: monospace; }
|
||||
|
||||
TABLE.beside TABLE TD { padding: 0.2ex 0.5ex 0.2ex 0.5ex; }
|
||||
|
||||
TD.highlight {background-color: rgb(80%,80%,80%)}
|
||||
TD.os64bits {font-style:italic}
|
||||
.cmaketag {font-weight: bold; color: rgb(100%,20%,20%);}
|
||||
|
||||
|
||||
TD.ok {background-color: rgb(50%,100%,50%)}
|
||||
TD.warning {background-color: rgb(100%,100%,50%)}
|
||||
TD.error {background-color: rgb(100%,50%,50%)}
|
||||
TD.na {background-color: white;}
|
||||
TD.requirements { background-color: rgb(65%,65%,100%) }
|
||||
TD.skip { background-color: rgb(90%,100%,100%) }
|
||||
|
||||
TH.ok {background-color: rgb(50%,100%,50%)}
|
||||
TH.warning {background-color: rgb(100%,100%,50%)}
|
||||
TH.error {background-color: rgb(100%,50%,50%)}
|
||||
TH.requirements { background-color: rgb(65%,65%,100%) }
|
||||
TH.skip { background-color: rgb(90%,100%,100%) }
|
||||
|
||||
TD.ok A {font-size:large; text-decoration: none}
|
||||
TD.ok A:link {color: rgb(0%,0%,100%)}
|
||||
TD.ok A:visited {color: rgb(0%,80%,100%)}
|
||||
|
||||
TD.warning A {font-size:large; text-decoration: none}
|
||||
TD.warning A:link {color: rgb(0%,0%,100%)}
|
||||
TD.warning A:visited {color: rgb(80%,80%,100%)}
|
||||
|
||||
TD.error A {font-size: large; text-decoration: none}
|
||||
TD.error A:link {color: rgb(0%,0%,100%)}
|
||||
TD.error A:visited {color: rgb(80%,0%,100%)}
|
||||
|
||||
TD.requirements A {font-size: large; text-decoration: none}
|
||||
TD.requirements A:link {color: rgb(0%,0%,100%)}
|
||||
TD.requirements A:visited {color: rgb(100%,100%,65%)}
|
||||
TD.skip A {font-size: large; text-decoration: none}
|
||||
|
||||
SELECT { font-family: monospace; }
|
||||
|
||||
#permalink,#jump_to_results {
|
||||
font-size: 0.5em;
|
||||
font-weight: normal;
|
||||
}
|
||||
#permalink::before,#jump_to_results::before{
|
||||
content: "("
|
||||
}
|
||||
#permalink::after,#jump_to_results::after{
|
||||
content: ")"
|
||||
}
|
||||
|
||||
TABLE.result TD > a.package_name {
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
|
@ -1,232 +0,0 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use Cwd;
|
||||
use strict;
|
||||
|
||||
my $TMPDIR;
|
||||
my $version = "";
|
||||
my $final_version;
|
||||
|
||||
my $original_arguments=join(" ", @ARGV);
|
||||
|
||||
sub print_log
|
||||
{
|
||||
print TESTRESULTSLOG (@_);
|
||||
}
|
||||
|
||||
sub print_log_err
|
||||
{
|
||||
print TESTRESULTSLOG (@_);
|
||||
print STDERR (@_);
|
||||
}
|
||||
|
||||
sub usage {
|
||||
print STDERR "$0: usage\n";
|
||||
print STDERR "$0 [-v version] result1.tar[.gz] ...\n";
|
||||
print STDERR "$0: you called it with the arguments:\n";
|
||||
print STDERR "$0 $original_arguments\n";
|
||||
}
|
||||
|
||||
sub make_tempdir()
|
||||
{
|
||||
my $dirno = 1;
|
||||
$TMPDIR = "TMP$dirno";
|
||||
while ( -f $TMPDIR or -d $TMPDIR ) {
|
||||
++$dirno;
|
||||
$TMPDIR = "TMP$dirno";
|
||||
}
|
||||
mkdir($TMPDIR,0770) or die "Cannot create temporary directory $TMPDIR\n";
|
||||
}
|
||||
|
||||
sub reformat_results($)
|
||||
{
|
||||
$_ = shift;
|
||||
s/\.tar//;
|
||||
my $platform = $_;
|
||||
# system("dos2unix ${platform}.txt ${platform}.txt");
|
||||
open (PLATFORM_RESULTS,"<${platform}.txt") or return;
|
||||
my $line;
|
||||
while ( ($line = <PLATFORM_RESULTS>) && /^\s*$/) {
|
||||
}
|
||||
$_ = $line;
|
||||
open (PLATFORM_INFO,">${platform}.info") or return;
|
||||
open (PLATFORM_NEW_RESULTS,">${platform}.new_results") or return;
|
||||
my ($CGAL_VERSION,$LEDA_VERSION,$COMPILER,$TESTER_NAME,$TESTER_ADDRESS,$GMP,$MPFR,$ZLIB,$OPENGL,$BOOST,$QT,$QT4,$QT5,$CMAKE) = ("-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","no");
|
||||
my ($LDFLAGS,$CXXFLAGS) = ("", "");
|
||||
while (! /^------/) {
|
||||
if(/^\s*$/) {
|
||||
goto NEXT;
|
||||
}
|
||||
if(/^-- USING CMake version: ([\w\.-]+)/) {
|
||||
$CMAKE = $1;
|
||||
}
|
||||
if (/^CGAL_VERSION\s+([\w\.-]+)/) {
|
||||
$CGAL_VERSION = $1;
|
||||
}
|
||||
if (/LEDA_VERSION = '([^']+)'/) {
|
||||
$LEDA_VERSION="$1";
|
||||
}
|
||||
if (/LEDAWIN_VERSION = '([^']+)'/) {
|
||||
$LEDA_VERSION="$LEDA_VERSION+win";
|
||||
}
|
||||
if (/COMPILER_VERSION = '([^']+)'/) {
|
||||
$COMPILER = $1;
|
||||
}
|
||||
if (/^TESTER_NAME\s+(.*)$/) {
|
||||
$TESTER_NAME = $1;
|
||||
}
|
||||
if (/^TESTER_ADDRESS\s+(.*)$/) {
|
||||
$TESTER_ADDRESS = $1;
|
||||
}
|
||||
if (/MPFR_VERSION = '([^']+)'/) {
|
||||
$MPFR="$1";
|
||||
}
|
||||
if (/ZLIB_VERSION = '([^']+)'/) {
|
||||
$ZLIB="$1";
|
||||
}
|
||||
if (/OPENGL_VERSION = '([^']+)'/) {
|
||||
$OPENGL="$1";
|
||||
}
|
||||
if (/GMP_VERSION = '([^']+)'/) {
|
||||
$GMP="$1";
|
||||
}
|
||||
if (/GMPXX_VERSION = '([^']+)'/) {
|
||||
$GMP="$GMP+gmpxx";
|
||||
}
|
||||
if (/QT_VERSION = '([^']+)'/) {
|
||||
$QT="$1";
|
||||
}
|
||||
if (/QT4_VERSION = '([^']+)'/) {
|
||||
$QT4="$1";
|
||||
}
|
||||
if (/Qt5_VERSION = '([^']+)'/) {
|
||||
$QT5="$1";
|
||||
}
|
||||
if (/BOOST_VERSION = '([^']+)'/) {
|
||||
$BOOST="$1";
|
||||
}
|
||||
# if (/BOOST_THREAD_VERSION = '([^']+)'/) {
|
||||
# $BOOST="$BOOST+thread";
|
||||
# }
|
||||
# if (/BOOST_PROGRAM_OPTIONS_VERSION = '([^']+)'/) {
|
||||
# $BOOST="$BOOST+program_options";
|
||||
# }
|
||||
# if (/BOOST_BIMAP_VERSION = '([^']+)'/) {
|
||||
# $BOOST="$BOOST+bimap";
|
||||
# }
|
||||
if (/USING +CXXFLAGS = '([^']*)'/) {
|
||||
$CXXFLAGS="$CXXFLAGS $1";
|
||||
}
|
||||
if (/USING +LDFLAGS = '([^']*)'/) {
|
||||
$LDFLAGS="$LDFLAGS $1";
|
||||
}
|
||||
# if(/^CGAL_TEST_PLATFORM /) {
|
||||
# # should be the last one of the header
|
||||
# last;
|
||||
# }
|
||||
# if(! /^[A-Z][a-z]/ ) {
|
||||
# # the header is finished
|
||||
# print PLATFORM_NEW_RESULTS $_;
|
||||
# last;
|
||||
# }
|
||||
NEXT: if(! ($_= <PLATFORM_RESULTS>)) {
|
||||
# should never happen!!
|
||||
last;
|
||||
}
|
||||
}
|
||||
while (<PLATFORM_RESULTS>) {
|
||||
print PLATFORM_NEW_RESULTS $_;
|
||||
}
|
||||
rename("${platform}.new_results","${platform}.txt") or die "cannot rename!";
|
||||
print PLATFORM_INFO <<"EOF";
|
||||
$CGAL_VERSION
|
||||
$COMPILER
|
||||
$TESTER_NAME
|
||||
$TESTER_ADDRESS
|
||||
$CMAKE
|
||||
$BOOST
|
||||
$MPFR
|
||||
$GMP
|
||||
$QT5
|
||||
$LEDA_VERSION
|
||||
$CXXFLAGS
|
||||
$LDFLAGS
|
||||
EOF
|
||||
close(PLATFORM_INFO);
|
||||
close(PLATFORM_RESULTS);
|
||||
close(PLATFORM_NEW_RESULTS);
|
||||
$final_version="CGAL-$CGAL_VERSION";
|
||||
if ($version
|
||||
&& $version ne "CGAL-$CGAL_VERSION"
|
||||
&& ($version !~ /^CGAL-${CGAL_VERSION}-Ic?-[\d]+$/)) {
|
||||
die "Wrong version in $platform: $CGAL_VERSION instead of $version.\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub one_archive($)
|
||||
{
|
||||
my $archive = shift;
|
||||
if (! -f $archive) {
|
||||
print STDERR "$archive is not a valid filename\n";
|
||||
return 0;
|
||||
}
|
||||
if ( $archive =~ m/\.gz$/ ) {
|
||||
system("gunzip", "$archive") == 0 or return 0;
|
||||
$archive =~ s/\.gz$//;
|
||||
}
|
||||
if ( $archive =~ m/.*\.tgz$/ ) {
|
||||
system("gunzip", "$archive") == 0 or return 0;
|
||||
$archive =~ s/\.tgz$/.tar/;
|
||||
}
|
||||
if ( $archive !~ /\.tar$/) {
|
||||
print STDERR "$0: $archive not a tar file\n";
|
||||
return 0;
|
||||
}
|
||||
make_tempdir();
|
||||
rename("$archive","$TMPDIR/$archive") or die "cannot rename(\"$archive\",\"$TMPDIR/$archive\")";
|
||||
chdir("$TMPDIR") or die "cannot chdir";
|
||||
system("gtar", "xf", "$archive") == 0 or die "cannot untar $archive";
|
||||
unlink($archive);
|
||||
|
||||
reformat_results($archive);
|
||||
system('gzip',glob("*/*")) == 0 or die "cannot gzip (while processing $archive)";
|
||||
system('chmod','-R','a+r,og+w','.') == 0 or die "cannot chmod";
|
||||
system('tar', 'cf', "../$archive", glob("*")) == 0 or die "cannot tar";
|
||||
chdir('..') or die;
|
||||
system('rm', '-rf', "$TMPDIR")== 0 or die "cannot rm -rf";
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub all_archives() {
|
||||
my $archive;
|
||||
foreach $archive (@ARGV) {
|
||||
if (one_archive($archive)) {
|
||||
my $date=`date`;
|
||||
chop $date;
|
||||
print_log("$final_version : $archive successfully reformatted. [ $date ]\n");
|
||||
} else {
|
||||
print_log_err("$final_version : Could not reformat $archive\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($#ARGV < 0) {
|
||||
usage;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq "-v") {
|
||||
shift;
|
||||
$version = shift;
|
||||
}
|
||||
|
||||
if ($#ARGV < 0) {
|
||||
usage;
|
||||
exit 1;
|
||||
}
|
||||
|
||||
open (TESTRESULTSLOG, ">>../test_results.log")
|
||||
or die "Could not open test_results.log\n";
|
||||
all_archives();
|
||||
close (TESTRESULTSLOG);
|
||||
exit 0;
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use Cwd;
|
||||
use strict;
|
||||
|
||||
#$ENV{PATH}=
|
||||
#'/sw/bin:/sbin:/usr/sbin:/usr/bsd:/bin:/usr/bin';
|
||||
|
||||
|
||||
|
||||
my $currentdir=cwd();
|
||||
|
||||
my $scriptsdir;
|
||||
my $unpack_dir_base;
|
||||
my $unpack_dir;
|
||||
my $testresult_dir;
|
||||
my $lockfile="cgal_testannounce.lock";
|
||||
#my $announcements_dir="/private/CGAL/testannouncements";
|
||||
my $announcements_dir="/u/termite/0/user/spion/CGAL/testannouncements";
|
||||
my $lock_cmd= "/usr/local/bin/lockfile";
|
||||
my $ftp_results_dir="$currentdir/incoming/";
|
||||
my $check_file="processed_test_results";
|
||||
|
||||
my ($cgal_version,$tarname,@results);
|
||||
|
||||
$testresult_dir="$currentdir/TESTRESULTS";
|
||||
$scriptsdir="$currentdir";
|
||||
$unpack_dir_base="$currentdir";
|
||||
|
||||
|
||||
sub make_unpackdir()
|
||||
{
|
||||
my $dirno = 1;
|
||||
my $TMPDIR;
|
||||
$TMPDIR = "$unpack_dir_base/TMP$dirno";
|
||||
while ( -f $TMPDIR or -d $TMPDIR ) {
|
||||
++$dirno;
|
||||
$TMPDIR = "$unpack_dir_base/TMP$dirno";
|
||||
}
|
||||
mkdir($TMPDIR,0770) or die "Cannot create temporary directory $TMPDIR\n";
|
||||
$unpack_dir = $TMPDIR;
|
||||
}
|
||||
|
||||
sub unpack_results{
|
||||
chdir $unpack_dir or die;
|
||||
my $filename="$ftp_results_dir/$_[0]";
|
||||
system "cp $ftp_results_dir/$_[0] $_[0]";
|
||||
system "chmod 644 $_[0]";
|
||||
system("gunzip", "$_[0]")== 0
|
||||
or die "Could not gunzip $_[0]\n";
|
||||
@results=grep /tar$|tar\.gz$/, `tar tf ${tarname}`;
|
||||
chomp @results;
|
||||
system("tar", "xf", ${tarname}, @results);
|
||||
if( ($? != 0) || (@results == 0) ) {
|
||||
print TESTRESULTSLOG "(EE) Cannot read tar file \"${tarname}\"!\n";
|
||||
}
|
||||
else {
|
||||
print TESTRESULTSLOG "(II) Processing tar file \"${tarname}\"...\n";
|
||||
system("$scriptsdir/to_zipped_format", "-v", $cgal_version, @results)==0
|
||||
or die "to_zipped_format failed on \"$filename\". Test collection not installed.\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub install_results()
|
||||
{
|
||||
if (-d $testresult_dir) {
|
||||
chdir $testresult_dir or die;
|
||||
} else {
|
||||
mkdir $testresult_dir or die;
|
||||
chdir $testresult_dir or die;
|
||||
}
|
||||
if (-d $cgal_version) {
|
||||
chdir $cgal_version or die;
|
||||
} else {
|
||||
mkdir $cgal_version or die;
|
||||
chdir $cgal_version or die;
|
||||
}
|
||||
my $resultfile;
|
||||
for $resultfile (@results) {
|
||||
$resultfile =~ s/\.gz//;
|
||||
system('tar','--force-local','-xf',"${unpack_dir}/${resultfile}")==0 or die;
|
||||
# unlink "${unpack_dir}/$resultfile";
|
||||
}
|
||||
chdir ".." or die;
|
||||
# system("./create_testresult_page", $cgal_version);
|
||||
|
||||
# clean up stuff in UNPACK_DIR
|
||||
|
||||
chdir $unpack_dir or die;
|
||||
# unlink $tarname;
|
||||
# notify();
|
||||
|
||||
}
|
||||
|
||||
# Save the content of $check_file in the hash %check_file_content, to avoid
|
||||
# opening, reading, and closing that file at every call of the function
|
||||
# `exist_in_file` (called thousands of times)
|
||||
my %check_file_content;
|
||||
open my $fh, $check_file || die ("Could not open $check_file");
|
||||
while (my $contents = <$fh>){
|
||||
chop $contents;
|
||||
$check_file_content{$contents} = 1;
|
||||
}
|
||||
close $fh;
|
||||
|
||||
#return 0 if it exists and 1 otherwise
|
||||
sub exist_in_file{
|
||||
if ( $check_file_content{$_[0]} == 1) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#first argument is a string
|
||||
sub append_to_file{
|
||||
chdir($currentdir);
|
||||
|
||||
if ( -w $check_file ) {
|
||||
open FILE, ">> $check_file" || die ("Could not open $check_file");
|
||||
} else {
|
||||
open FILE, "> $check_file" || die ("Could not open $check_file");
|
||||
}
|
||||
print FILE "$_[0]\n";
|
||||
close FILE;
|
||||
}
|
||||
|
||||
|
||||
open (TESTRESULTSLOG, ">>", "./test_results.log")
|
||||
or die "Could not open test_results.log\n";
|
||||
|
||||
my $dir_h;
|
||||
my $i;
|
||||
my $is_good;
|
||||
my $res;
|
||||
chdir($currentdir) || die("Could not chdir to $currentdir");
|
||||
opendir($dir_h, $ftp_results_dir) || die("The ftp directory could no be opened");
|
||||
while( $i=readdir($dir_h)){
|
||||
next if($i eq ".");
|
||||
next if ($i eq "..");
|
||||
$is_good=1;
|
||||
if ( $i =~ m/^(CGAL-\d+\.\d+-Ic?-\d+)[-_]/ ) {
|
||||
$cgal_version=$1;
|
||||
} else {
|
||||
if ( $i =~ m/^(CGAL-\d+\.\d+\.\d+-Ic?-\d+)[-_]/ ) {
|
||||
$cgal_version=$1;
|
||||
} else {
|
||||
if ( $i =~ m/^(CGAL-\d+\.\d+\.\d+)[-_]/ ) {
|
||||
$cgal_version=$1;
|
||||
} else {
|
||||
if ( $i =~ m/^(CGAL-\d+\.\d+)[-_]/ ) {
|
||||
$cgal_version=$1;
|
||||
} else {
|
||||
# die "$i is not a valid name for a testresult collection.\n";
|
||||
$is_good=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( $is_good == 1 ){
|
||||
if ( -s "$ftp_results_dir/$i" &&
|
||||
exist_in_file($i) == 1 &&
|
||||
system("fuser", "$ftp_results_dir/$i") != 0 ){
|
||||
system "cp $ftp_results_dir/$i $i";
|
||||
system "chmod 644 $i";
|
||||
$res = system "gunzip -t $i";
|
||||
system "rm -rf $i";
|
||||
if ( $res == 0 ){
|
||||
append_to_file($i);
|
||||
$tarname=`basename $i .gz`;
|
||||
chomp $tarname;
|
||||
make_unpackdir();
|
||||
eval {unpack_results($i)} && eval{install_results()};
|
||||
$@ && warn $@;
|
||||
chdir($unpack_dir_base);
|
||||
system('rm','-rf',$unpack_dir);
|
||||
system "./create_testresult_page $cgal_version";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dir_h);
|
||||
close (TESTRESULTSLOG);
|
||||
Loading…
Reference in New Issue