OSDN Git Service

* GCC_Regression_Tester.wdgt/widget.html: Mark as HTML 4.01,
[pf3gnuchains/gcc-fork.git] / contrib / regression / GCC_Regression_Tester.wdgt / widget.html
1 <!-- Get and update the GCC regression tester's web page.
2      Copyright (C) 2005, 2007 Free Software Foundation, Inc.
3
4 This file is part of GCC.
5
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 2, or (at your option) any later
9 version.
10
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING.  If not, write to the Free
18 Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301, USA.  -->
20 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
21         "http://www.w3.org/TR/html4/strict.dtd">
22 <head>
23 <meta http-equiv="Content-Script-Type" content="text/javascript">
24 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
25 <title>Regression Tester Status</title>
26 <style type='text/css'>
27 body {
28         margin: 0px;
29         padding: 0px;
30 }
31 pre {
32         font-family: Monaco;
33         font-size: 9px;
34         margin: 0px;
35         padding: 1px 2px 1px 2px;
36         color: black;
37         background-color: white;
38         opacity: 0.8;
39 }
40 </style>
41 <script type='text/javascript' defer>
42 // A string representing NUM, with a leading zero if it would be 1 digit long
43 function dig2 (num) 
44 {
45     var result = num.toString();
46     if (result.length == 1)
47         return '0' + result;
48     else
49         return result;
50 }
51
52 // Get DATE as a string in standard ISO format in UTC
53 function getISO (date) 
54 {
55     return (date.getUTCFullYear().toString() + '-'
56             + dig2 (date.getUTCMonth() + 1) + '-'
57             + dig2 (date.getUTCDate()) + 'T'
58             + dig2 (date.getUTCHours()) + ':'
59             + dig2 (date.getUTCMinutes()) + 'Z');
60 }
61
62 // STR is a bunch of lines of the form '<key>: <date>' where <date> is in
63 // standard ISO UTC format.  Return a Date object corresponding to KEY, or null
64 // if none is found.
65 function fromISO (str, key)
66 {
67     var rx = new RegExp (key + ": (\\d+)-(\\d+)-(\\d+)T(\\d+):(\\d+):(\\d+)Z");
68     var match = rx.exec (str);
69     if (match == null || match.length != 7)
70         return null;
71     var date = new Date(0);
72     date.setUTCFullYear (match[1], match[2] - 1, match[3]);
73     date.setUTCHours (match[4], match[5], match[6], 0);
74     return date;
75 }
76
77 // Update the data
78 function updateContents () {
79     var url = 'http://gcc.gnu.org/regtest/HEAD/status.txt';
80     if (document.URL && document.URL.substring (0,5) == 'http:') {
81         url = document.URL.replace ('widget.html','status.txt');
82     }
83     var xml_request = new XMLHttpRequest();
84     
85     xml_request.onload = function(e) 
86         {
87             gotContents(e, xml_request);
88         }
89     xml_request.open("GET", url);
90     xml_request.setRequestHeader("Cache-Control", "max-age=30");
91     xml_request.send(null);
92 }
93
94 function gotContents (event, request) {
95     if (request.status != 200)
96         return;
97
98     if (! request.responseText)
99         return;
100
101     var txt = request.responseText;
102     var today = new Date();
103     var date_r = fromISO (txt, "Date");
104     var completed_r = fromISO (txt, "Test-Completed");
105     var now_test_r = fromISO (txt, "Now-Testing");
106     var eta = "";
107     
108     if (date_r != null && completed_r != null && now_test_r != null)
109         {
110             var eta_r = new Date (now_test_r.getTime() 
111                                   + completed_r.getTime() - date_r.getTime());
112             eta = "ETA: " + getISO (eta_r) + '\n';
113         }
114
115     var val = txt + "Now: " + getISO (today) + '\n' + eta;
116     var contEl = document.getElementById ("contents");
117     contEl.removeChild(contEl.firstChild);
118     contEl.appendChild (document.createTextNode (val));
119 }
120
121 var mainTimer = null;
122
123 function myOnShow () 
124 {
125     if (! mainTimer) {
126         mainTimer = setInterval (updateContents, 60000);
127     }
128     updateContents();
129 }
130
131 function myOnHide () 
132 {
133     if (mainTimer) {
134         clearInterval (mainTimer);
135         mainTimer = null;
136     }
137 }
138
139 function myOnLoad ()
140 {
141     if ( window.widget ) {
142         widget.onshow = myOnShow;
143         widget.onhide = myOnHide;
144     }
145     myOnShow();
146 }
147 </script>
148 </head>
149
150 <body onLoad='myOnLoad();'>
151 <pre id="contents">Loading...</pre>
152 </body>
153 </html>