diff --git a/Maintenance/test_handling/create_testresult_page b/Maintenance/test_handling/create_testresult_page index 8d9a867592de..ca62a5928286 100755 --- a/Maintenance/test_handling/create_testresult_page +++ b/Maintenance/test_handling/create_testresult_page @@ -16,6 +16,7 @@ use Cwd; use strict; use Date::Format; +use JSON; my $server_url="https://cgal.geometryfactory.com/"; my $cgal_members="${server_url}CGAL/Members/"; @@ -205,7 +206,7 @@ sub collect_results() sub print_result_table() { my $platform_count = scalar(@platforms_to_do); - + my $release_version = substr($release_name, 5); print OUTPUT <<"EOF"; @@ -227,7 +228,7 @@ EOF if ($test_num == 15) { $test_num = 0; print OUTPUT "\n\n"; @@ -243,7 +244,8 @@ EOF # close VERSION; # } print OUTPUT "\n\n"; - print OUTPUT "\n"; + + print OUTPUT "\n"; # if ( $version ) { # print OUTPUT "\n"; # } else { @@ -556,11 +558,13 @@ EOF sub print_platforms_numbers() { my ($platform_num,$platform)=(0,""); + my $release_version = substr($release_name, 5); foreach $platform (@platforms_to_do) { ++$platform_num; my $pf_short = short_pfname($platform); my $class = ""; my $tag = ""; + my $platformlink = $platform; if($platform_is_optimized{$platform} || $platform_is_64bits{$platform}) { $class = " class=\""; @@ -576,7 +580,7 @@ sub print_platforms_numbers() $class = $class . "\""; $tag = $tag . " )"; } - print OUTPUT "$platform_num\n"; + print OUTPUT "$platform_num\n"; } } @@ -730,8 +734,7 @@ sub get_warnings_and_errors { my $result = `zcat $result_file`; my @lines = split("\n", $result); foreach my $line (@lines) { - if ($line =~ /(warning|error):/i && !$seen{$line}++) { - #if ($line !~ /\b(ERROR|WARNING)\b/ && $line =~ /(warning|error):/i) { + if ($line =~ /(warning|error):/i && !$seen{$line}++ || $line =~ /(warning|error) [CJ]\d+:/i && !$seen{$line}++) { $warnings_and_errors .= $line . "\n"; } @@ -748,6 +751,41 @@ sub create_summary_page { my $test_directory; my @letters = ('r', 'n', 'w', 'o'); my $letters_options = join("\n", map { "" } @letters); + my $package_options = join("\n", map { "" } sort keys %test_directories); + + my @search_index; + my ($platform_num, $platform) = (0, ""); + foreach $platform (@platforms_to_do) { + foreach my $letter (@letters) { + foreach my $test_directory (sort keys %test_directories) { + my $resulttext = $testresults[$platform_num]->{$test_directory}; + if (defined($resulttext) && $resulttext eq $letter) { + my $warnings_and_errors = get_warnings_and_errors("$testresult_dir/$release_name/$test_directory/TestReport_$platform.gz"); + push @search_index, { + platform => $platform, + test_directory => $test_directory, + content => $warnings_and_errors, + release => $release_name, + letters => $letter, + }; + } + } + } + $platform_num++; + } + + my $json = JSON->new->allow_nonref; + my $json_text = $json->pretty->encode(\@search_index); + open my $fh, '>', "$testresult_dir/$release_name/search_index.json" or die "Could not open file: $!"; + print $fh $json_text; + close $fh; + + my @all_releases = grep {-d $_ } glob("../*"); + my %urls_for_js = ( + current => ["$release_name/search_index.json"], + all => [map { "TESTRESULTS/$_/search_index.json" } @all_releases], + ); + my $json_urls = encode_json(\%urls_for_js); my $Summary_output = <<"EOF"; @@ -758,93 +796,287 @@ sub create_summary_page { + + + +

Summary Results of ${release_name}

+ +
+
EOF my $summary_page_path = "$testresult_dir/summary".substr($release_name,4).".html"; open(my $out, '>', $summary_page_path) or die "Could not open file '$summary_page_path' $!"; print $out $Summary_output; - my ($platform_num, $platform) = (0, ""); - foreach $platform (@platforms_to_do) { - print $out "

Results of $platform

"; - foreach my $letter (@letters) { - print $out "

$letter

"; - foreach my $test_directory (sort keys %test_directories) { - my $resulttext = $testresults[$platform_num]->{$test_directory}; - if (defined($resulttext) && $resulttext eq $letter) { - print $out '
'; - my $warnings_and_errors = get_warnings_and_errors("$testresult_dir/$release_name/$test_directory/TestReport_$platform.gz"); - if ($warnings_and_errors) { - print $out "
$warnings_and_errors
"; - } - } - } - print $out "
"; - } - print $out "
"; - $platform_num++; - } - print $out "\n\n"; close $out; } - main(); diff --git a/Maintenance/test_handling/testresult.css b/Maintenance/test_handling/testresult.css index 02e8ad65d0fb..f95a62452f92 100644 --- a/Maintenance/test_handling/testresult.css +++ b/Maintenance/test_handling/testresult.css @@ -81,3 +81,12 @@ TABLE.result TD > a.package_name { color: black; font-weight: bold; } + +/* Summary Page */ + +.result-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 20px; + padding: 20px; + } \ No newline at end of file
\n"; - print OUTPUT 'Platform Description'; + print OUTPUT "Platform Description"; print OUTPUT "\n"; print_platforms_numbers(); print OUTPUT "\n
$test_directory$test_directory$version