mirror of https://github.com/CGAL/cgal
158 lines
4.6 KiB
JavaScript
158 lines
4.6 KiB
JavaScript
/* Author: Maxime Gimeno <maxime.gimeno@gmail.com> */
|
|
|
|
/***
|
|
Needs difflib.js, fill_empty_lines.js and print_diff.js to work.
|
|
|
|
Input : 2 strings of the form "CGAL-M.m.mm-I[c]-XXX"
|
|
|
|
Output: the list of differences between the testsuites.
|
|
|
|
***/
|
|
|
|
//v1.7
|
|
function diff_testsuites(baseTest, newTest){
|
|
var URL_suff='https://cgal.geometryfactory.com/~cgaltest/testsuite_comparison/list_of_suffixes.txt';
|
|
var URL_testsuite='https://cgal.geometryfactory.com/CGAL/Members/testsuite/';
|
|
//get the list of suffixes
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open('GET', URL_suff, false);
|
|
xhr.send(null);
|
|
var tmp=xhr.responseText;
|
|
var suffixes=tmp.split("\n");
|
|
suffixes.sort();
|
|
suffixes.reverse();
|
|
var myArray = new Array();
|
|
|
|
//contains the diff of existing platforms.
|
|
|
|
var diffArray = new Array();
|
|
|
|
var init = false;
|
|
for(s = 0; s < suffixes.length; s++) {
|
|
var new_column = new Array();
|
|
var suffixe=suffixes[s].replace("\r", "");
|
|
xhr.open('GET', URL_testsuite+baseTest+'/'+suffixe, false);
|
|
xhr.send(null);
|
|
var base_exists = (xhr.status === 200);
|
|
var base=xhr.responseText.replace("\r", "");
|
|
xhr.open('GET', URL_testsuite+newTest+'/'+suffixe, false);
|
|
xhr.send(null);
|
|
var new_exists = (xhr.status === 200)
|
|
|
|
if(base_exists && !new_exists)
|
|
{
|
|
diffArray.push("-"+suffixe);
|
|
continue;
|
|
}
|
|
if(!base_exists && new_exists)
|
|
{
|
|
diffArray.push("+"+suffixe);
|
|
continue;
|
|
}
|
|
if(!base_exists && !new_exists)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var newtext=xhr.responseText.replace("\r", "");
|
|
var sp_base=base.split("\n");
|
|
sp_base.sort();
|
|
for(i=0; i< sp_base.length; i++){
|
|
sp_base[i]=sp_base[i].replace("\r", "");
|
|
}
|
|
var sp_newtext=newtext.split("\n");
|
|
sp_newtext.sort();
|
|
for(i=0; i< sp_newtext.length; i++){
|
|
sp_newtext[i]=sp_newtext[i].replace("\r", "");
|
|
}
|
|
addMissingLines(sp_base, sp_newtext);
|
|
if(!init)
|
|
{
|
|
var first_column = new Array();
|
|
first_column.push("Platform")
|
|
for(i=0; i< sp_base.length; i++){
|
|
if(sp_base[i] !== ""){
|
|
first_column.push(sp_base[i].substr(0, sp_base[i].length-2));
|
|
} else {
|
|
first_column.push(sp_newtext[i].substr(0, sp_newtext[i].length-2));
|
|
}
|
|
}
|
|
myArray.push(first_column);
|
|
init = true;
|
|
}
|
|
var fragments = suffixe.split("_");
|
|
fragments.shift();
|
|
var name = fragments.join("_");
|
|
name = name.replace('.txt', '');
|
|
if(name !== ""){
|
|
new_column.push(name.replace(fragments[0]+"_", ''));
|
|
for(i=0; i< sp_base.length; i++){
|
|
var broken = false;
|
|
var res = print_diff(sp_base[i], sp_newtext[i]);
|
|
var compensator=0;
|
|
if(sp_base[i] !== ""){
|
|
while(sp_base[i].substr(0, sp_base[i].length-2) !== first_column[i+compensator]){
|
|
if(compensator >10){
|
|
broken=true;
|
|
break;
|
|
}
|
|
compensator++;
|
|
}
|
|
}
|
|
else{
|
|
while(sp_newtext[i].substr(0, sp_newtext[i].length-2) !== first_column[i+compensator]){
|
|
if(compensator >10){
|
|
broken=true;
|
|
break;
|
|
}
|
|
compensator++;
|
|
}
|
|
}
|
|
if(broken)
|
|
{
|
|
continue;
|
|
}
|
|
var new_line=first_column[i+compensator]+"||"+"<td style='width: 25px; text-align: right;";
|
|
var result="";
|
|
if(res[0]===""){
|
|
if(res[1] !==""){
|
|
result+="+";
|
|
}
|
|
}
|
|
else {
|
|
result+="<a href=\""+URL_testsuite+baseTest+"/"+first_column[i+compensator]+"/TestReport_"+name+".gz\">"+res[0]+"</a>\/";
|
|
}
|
|
|
|
if(res[1]===""){
|
|
if(res[0]!==""){
|
|
result+="-";
|
|
}
|
|
}
|
|
else {
|
|
result+="<a href=\""+URL_testsuite+newTest+"/"+first_column[i+compensator]+"/TestReport_"+name+".gz\">"+res[1]+"</a>";
|
|
}
|
|
if(res[1] === "w"){
|
|
new_line+=" background-color: rgb(100%,100%,50%)'> "+result;
|
|
} else if(res[1]=== "r"){
|
|
new_line+=" background-color: rgb(65%,65%,100%)'> "+result;
|
|
} else if(res[1]=== "n"){
|
|
new_line+=" background-color: rgb(100%,50%,50%)'> "+result;
|
|
} else if(res[1]== "t"){
|
|
new_line+=" background-color: rgb(75%,100%,50%)'> "+result;
|
|
} else if(res[1]==="" && res[0]!==""){
|
|
new_line+=" background-color: rgb(50%,25%,75%)'>"+result;
|
|
}
|
|
else{
|
|
new_line+="'>";
|
|
}
|
|
new_line+="</td>";
|
|
new_column.push(new_line);
|
|
}
|
|
myArray.push(new_column);
|
|
}
|
|
}
|
|
|
|
return [myArray, diffArray];
|
|
}
|
|
|