Mercurial > hg > CbC > CbC_gcc
comparison contrib/regression/GCC_Regression_Tester.wdgt/widget.html @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 <!-- Get and update the GCC regression tester's web page. | |
2 Copyright (C) 2005, 2007, 2009 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 3, 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 COPYING3. If not see | |
18 <http://www.gnu.org/licenses/>. --> | |
19 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" | |
20 "http://www.w3.org/TR/html4/strict.dtd"> | |
21 <head> | |
22 <meta http-equiv="Content-Script-Type" content="text/javascript"> | |
23 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> | |
24 <title>Regression Tester Status</title> | |
25 <style type='text/css'> | |
26 body { | |
27 margin: 0px; | |
28 padding: 0px; | |
29 } | |
30 pre { | |
31 font-family: Monaco; | |
32 font-size: 9px; | |
33 margin: 0px; | |
34 padding: 1px 2px 1px 2px; | |
35 color: black; | |
36 background-color: white; | |
37 opacity: 0.8; | |
38 } | |
39 </style> | |
40 <script type='text/javascript' defer> | |
41 // A string representing NUM, with a leading zero if it would be 1 digit long | |
42 function dig2 (num) | |
43 { | |
44 var result = num.toString(); | |
45 if (result.length == 1) | |
46 return '0' + result; | |
47 else | |
48 return result; | |
49 } | |
50 | |
51 // Get DATE as a string in standard ISO format in UTC | |
52 function getISO (date) | |
53 { | |
54 return (date.getUTCFullYear().toString() + '-' | |
55 + dig2 (date.getUTCMonth() + 1) + '-' | |
56 + dig2 (date.getUTCDate()) + 'T' | |
57 + dig2 (date.getUTCHours()) + ':' | |
58 + dig2 (date.getUTCMinutes()) + 'Z'); | |
59 } | |
60 | |
61 // STR is a bunch of lines of the form '<key>: <date>' where <date> is in | |
62 // standard ISO UTC format. Return a Date object corresponding to KEY, or null | |
63 // if none is found. | |
64 function fromISO (str, key) | |
65 { | |
66 var rx = new RegExp (key + ": (\\d+)-(\\d+)-(\\d+)T(\\d+):(\\d+):(\\d+)Z"); | |
67 var match = rx.exec (str); | |
68 if (match == null || match.length != 7) | |
69 return null; | |
70 var date = new Date(0); | |
71 date.setUTCFullYear (match[1], match[2] - 1, match[3]); | |
72 date.setUTCHours (match[4], match[5], match[6], 0); | |
73 return date; | |
74 } | |
75 | |
76 // Update the data | |
77 function updateContents () { | |
78 var url = 'http://gcc.gnu.org/regtest/HEAD/status.txt'; | |
79 if (document.URL && document.URL.substring (0,5) == 'http:') { | |
80 url = document.URL.replace ('widget.html','status.txt'); | |
81 } | |
82 var xml_request = new XMLHttpRequest(); | |
83 | |
84 xml_request.onload = function(e) | |
85 { | |
86 gotContents(e, xml_request); | |
87 } | |
88 xml_request.open("GET", url); | |
89 xml_request.setRequestHeader("Cache-Control", "max-age=30"); | |
90 xml_request.send(null); | |
91 } | |
92 | |
93 function gotContents (event, request) { | |
94 if (request.status != 200) | |
95 return; | |
96 | |
97 if (! request.responseText) | |
98 return; | |
99 | |
100 var txt = request.responseText; | |
101 var today = new Date(); | |
102 var date_r = fromISO (txt, "Date"); | |
103 var completed_r = fromISO (txt, "Test-Completed"); | |
104 var now_test_r = fromISO (txt, "Now-Testing"); | |
105 var eta = ""; | |
106 | |
107 if (date_r != null && completed_r != null && now_test_r != null) | |
108 { | |
109 var eta_r = new Date (now_test_r.getTime() | |
110 + completed_r.getTime() - date_r.getTime()); | |
111 eta = "ETA: " + getISO (eta_r) + '\n'; | |
112 } | |
113 | |
114 var val = txt + "Now: " + getISO (today) + '\n' + eta; | |
115 var contEl = document.getElementById ("contents"); | |
116 contEl.removeChild(contEl.firstChild); | |
117 contEl.appendChild (document.createTextNode (val)); | |
118 } | |
119 | |
120 var mainTimer = null; | |
121 | |
122 function myOnShow () | |
123 { | |
124 if (! mainTimer) { | |
125 mainTimer = setInterval (updateContents, 60000); | |
126 } | |
127 updateContents(); | |
128 } | |
129 | |
130 function myOnHide () | |
131 { | |
132 if (mainTimer) { | |
133 clearInterval (mainTimer); | |
134 mainTimer = null; | |
135 } | |
136 } | |
137 | |
138 function myOnLoad () | |
139 { | |
140 if ( window.widget ) { | |
141 widget.onshow = myOnShow; | |
142 widget.onhide = myOnHide; | |
143 } | |
144 myOnShow(); | |
145 } | |
146 </script> | |
147 </head> | |
148 | |
149 <body onLoad='myOnLoad();'> | |
150 <pre id="contents">Loading...</pre> | |
151 </body> | |
152 </html> |