[ozulis] now deleting some fields in AST's destructors
[ozulis.git] / reports / basic.js
blobd1ad623ff90a7c41c7b7ffe5fa407c87e228b0fe
1 var divIdCount = 0;
3 function nextId()
5   return "div"+divIdCount++;
8 function displayTable(data)
10   var i = 0;
12   document.write('<link href="report.css" rel="stylesheet" type="text/css">');
13   document.write("<div class='test-suite'>");
14   for (i in data) {
15     displayTest(data[i]);
16   }
17   document.write("</div>");
20 function console2html(out)
22   out = out.replace(/\u001b\[m/g, "</font><font color='white'>");
23   out = out.replace(/\u001b\[0;30m/g, "</font><font color='black'>");
24   out = out.replace(/\u001b\[0;31m/g, "</font><font color='#cc6666'>");
25   out = out.replace(/\u001b\[0;32m/g, "</font><font color='#33cc66'>");
26   out = out.replace(/\u001b\[0;33m/g, "</font><font color='#cc9933'>");
27   out = out.replace(/\u001b\[0;34m/g, "</font><font color='#3366cc'>");
28   out = out.replace(/\u001b\[0;35m/g, "</font><font color='#cc33cc'>");
29   out = out.replace(/\u001b\[0;36m/g, "</font><font color='#33cccc'>");
30   out = out.replace(/\u001b\[0;37m/g, "</font><font color='#cccccc'>");
31   out = out.replace(/\u001b\[0;38m/g, "</font><font color='#666666'>");
32   out = out.replace(/\u001b\[1;30m/g, "</font><font color='black'>");
33   out = out.replace(/\u001b\[1;31m/g, "</font><font color='#ff6666'>");
34   out = out.replace(/\u001b\[1;32m/g, "</font><font color='#66ff66'>");
35   out = out.replace(/\u001b\[1;33m/g, "</font><font color='#ffff66'>");
36   out = out.replace(/\u001b\[1;34m/g, "</font><font color='#6699ff'>");
37   out = out.replace(/\u001b\[1;35m/g, "</font><font color='#ff66ff'>");
38   out = out.replace(/\u001b\[1;36m/g, "</font><font color='#33ffff'>");
39   out = out.replace(/\u001b\[1;37m/g, "</font><font color='white'>");
40   out = out.replace(/\u001b\[1;38m/g, "</font><font color='grey'>");
41   return "<font color='white'>"+out+"</font>";
44 function displayTest(test)
46   var detailsId = nextId();
47   var childsId = nextId();
49   document.write("<div class='test'>");
50   if (test.succeed)
51     document.write("<font color='green'>");
52   else
53     document.write("<font color='red'>");
54   document.write("<a onclick='changeDisplayState(\""+childsId+"\")' style='cursor:pointer;'>"+test.name+"</a></font> <a onclick='changeDisplayState(\""+
55                  detailsId+"\")' style='cursor:pointer;'>details</a><br/>");
56   document.write("<div id='"+detailsId+"' style='display:none' ><table>");
57   var prop;
58   for (prop in test.details)
59   {
60     var x;
62     if (prop == "stderr" || prop == 'stdout')
63       x = "<td style='background-color:black'><pre>"+console2html(test.details[prop])+"</pre></td>";
64     else
65       x = "<td><pre>"+test.details[prop]+"</pre></td>";
66     document.write("<tr><td>"+prop+"</td>"+x+"</tr>");
67   }
68   document.write("</table></div>");
69   if (test.tests != null)
70   {
71     var i = 0;
73     document.write("<div class='test-suite' id='"+childsId+"' class='childdiv'");
74     if (test.succeed)
75       document.write(" style='display:none'");
76     document.write(">");
77     for (i in test.tests) {
78       displayTest(test.tests[i]);
79     }
80     document.write("</div>");
81   }
82   document.write('</div>');
85 function changeDisplayState(id)
87   var div=document.getElementById(id);
88   if (div.style.display == 'none' ||
89       div.style.display == '') {
90     div.style.display = 'block';
91   } else {
92     div.style.display = 'none';
93   }