diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Fri Jul 17 14:47:48 2009 +0900
@@ -0,0 +1,152 @@
+<!-- Get and update the GCC regression tester's web page.
+     Copyright (C) 2005, 2007, 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+        "http://www.w3.org/TR/html4/strict.dtd">
+<head>
+<meta http-equiv="Content-Script-Type" content="text/javascript">
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<title>Regression Tester Status</title>
+<style type='text/css'>
+body {
+	margin: 0px;
+	padding: 0px;
+}
+pre {
+	font-family: Monaco;
+	font-size: 9px;
+	margin: 0px;
+	padding: 1px 2px 1px 2px;
+	color: black;
+	background-color: white;
+	opacity: 0.8;
+}
+</style>
+<script type='text/javascript' defer>
+// A string representing NUM, with a leading zero if it would be 1 digit long
+function dig2 (num) 
+{
+    var result = num.toString();
+    if (result.length == 1)
+	return '0' + result;
+    else
+	return result;
+}
+
+// Get DATE as a string in standard ISO format in UTC
+function getISO (date) 
+{
+    return (date.getUTCFullYear().toString() + '-'
+	    + dig2 (date.getUTCMonth() + 1) + '-'
+	    + dig2 (date.getUTCDate()) + 'T'
+	    + dig2 (date.getUTCHours()) + ':'
+	    + dig2 (date.getUTCMinutes()) + 'Z');
+}
+
+// STR is a bunch of lines of the form '<key>: <date>' where <date> is in
+// standard ISO UTC format.  Return a Date object corresponding to KEY, or null
+// if none is found.
+function fromISO (str, key)
+{
+    var rx = new RegExp (key + ": (\\d+)-(\\d+)-(\\d+)T(\\d+):(\\d+):(\\d+)Z");
+    var match = rx.exec (str);
+    if (match == null || match.length != 7)
+	return null;
+    var date = new Date(0);
+    date.setUTCFullYear (match[1], match[2] - 1, match[3]);
+    date.setUTCHours (match[4], match[5], match[6], 0);
+    return date;
+}
+
+// Update the data
+function updateContents () {
+    var url = 'http://gcc.gnu.org/regtest/HEAD/status.txt';
+    if (document.URL && document.URL.substring (0,5) == 'http:') {
+	url = document.URL.replace ('widget.html','status.txt');
+    }
+    var xml_request = new XMLHttpRequest();
+    
+    xml_request.onload = function(e) 
+	{
+	    gotContents(e, xml_request);
+	}
+    xml_request.open("GET", url);
+    xml_request.setRequestHeader("Cache-Control", "max-age=30");
+    xml_request.send(null);
+}
+
+function gotContents (event, request) {
+    if (request.status != 200)
+        return;
+
+    if (! request.responseText)
+	return;
+
+    var txt = request.responseText;
+    var today = new Date();
+    var date_r = fromISO (txt, "Date");
+    var completed_r = fromISO (txt, "Test-Completed");
+    var now_test_r = fromISO (txt, "Now-Testing");
+    var eta = "";
+    
+    if (date_r != null && completed_r != null && now_test_r != null)
+	{
+	    var eta_r = new Date (now_test_r.getTime() 
+				  + completed_r.getTime() - date_r.getTime());
+	    eta = "ETA: " + getISO (eta_r) + '\n';
+	}
+
+    var val = txt + "Now: " + getISO (today) + '\n' + eta;
+    var contEl = document.getElementById ("contents");
+    contEl.removeChild(contEl.firstChild);
+    contEl.appendChild (document.createTextNode (val));
+}
+
+var mainTimer = null;
+
+function myOnShow () 
+{
+    if (! mainTimer) {
+	mainTimer = setInterval (updateContents, 60000);
+    }
+    updateContents();
+}
+
+function myOnHide () 
+{
+    if (mainTimer) {
+	clearInterval (mainTimer);
+	mainTimer = null;
+    }
+}
+
+function myOnLoad ()
+{
+    if ( window.widget ) {
+	widget.onshow = myOnShow;
+	widget.onhide = myOnHide;
+    }
+    myOnShow();
+}
+</script>
+</head>
+
+<body onLoad='myOnLoad();'>
+<pre id="contents">Loading...</pre>
+</body>
+</html>