summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasplin <qt-info@nokia.com>2011-02-09 08:45:44 +0100
committerjasplin <qt-info@nokia.com>2011-02-09 08:45:44 +0100
commit5d844a9639c55b50f7571d58a31f6212a17f1169 (patch)
tree8d19628d58014bfec4986a3b190e28088bccfecd
parentfdfd806208042d84424d3e604425be33ca646da6 (diff)
Set max ranking size from GUI.
-rw-r--r--scripts/getrankings.py9
-rwxr-xr-xscripts/getstats.py16
-rw-r--r--web/getstats/index.html20
-rw-r--r--web/getstats/main.js2
-rw-r--r--web/getstats/rankings.js30
5 files changed, 60 insertions, 17 deletions
diff --git a/scripts/getrankings.py b/scripts/getrankings.py
index cd6b4af..7c20b6b 100644
--- a/scripts/getrankings.py
+++ b/scripts/getrankings.py
@@ -7,7 +7,7 @@ from misc import (
class GetRankings:
- def __init__(self, host, platform, branch, sha12):
+ def __init__(self, host, platform, branch, sha12, maxsize):
self.host = host
self.host_id = textToId('host', self.host)
self.platform = platform
@@ -17,6 +17,7 @@ class GetRankings:
self.context2_id = getContext(
self.host_id, self.platform_id, self.branch_id,
textToId('sha1', sha12))
+ self.maxsize = maxsize
# Returns -1, 0, and 1 if ranking position x is considered less than,
@@ -56,8 +57,10 @@ class GetRankings:
"SELECT benchmarkId, metricId, context1Id, pos, value"
" FROM ranking"
" WHERE context2Id = %d"
- " AND statId = %d"
- % (self.context2_id, stat_id))
+ " AND statId = %d %s;"
+ % (self.context2_id, stat_id,
+ ("LIMIT %d" % self.maxsize)
+ if (self.maxsize > 0) else ""))
for row in stat_ranking:
context_ids.add(row[2])
diff --git a/scripts/getstats.py b/scripts/getstats.py
index f7fc41f..b8a0de6 100755
--- a/scripts/getstats.py
+++ b/scripts/getstats.py
@@ -87,7 +87,7 @@ def createCommand(options, http_get):
" --db D --cmd snapshots --host H --platform P " +
"--branch B --sha11 S --sha12 S | \\\n" +
" --db D --cmd rankings --host H --platform P " +
- "--branch B --sha1 S")
+ "--branch B --sha1 S [--maxsize M]")
if http_get:
printErrorAsJSON("usage error")
@@ -221,7 +221,7 @@ def createCommand(options, http_get):
if "durtolmin" in options:
try:
- durtolmin = float(options["durtolmin"])
+ durtolmin = int(options["durtolmin"])
assert durtolmin >= 1
except:
raise BaseException(
@@ -232,7 +232,7 @@ def createCommand(options, http_get):
if "durtolmax" in options:
try:
- durtolmax = float(options["durtolmax"])
+ durtolmax = int(options["durtolmax"])
assert durtolmax >= durtolmin
except:
raise BaseException(
@@ -289,7 +289,15 @@ def createCommand(options, http_get):
branch = options["branch"]
sha1 = options["sha1"]
- return GetRankingsAsJSON(host, platform, branch, sha1)
+ if "maxsize" in options:
+ try:
+ maxsize = int(options["maxsize"])
+ except:
+ raise BaseException("'maxsize' not an integer")
+ else:
+ maxsize = 10
+
+ return GetRankingsAsJSON(host, platform, branch, sha1, maxsize)
# No match:
printUsageError()
diff --git a/web/getstats/index.html b/web/getstats/index.html
index 0d7ec62..ede3ee5 100644
--- a/web/getstats/index.html
+++ b/web/getstats/index.html
@@ -66,7 +66,25 @@
"changes in Qt, or because they need to improve their own " +
"quality).");
</script>
- </td><td></td>
+ </td>
+ <td id="max_rank_size_lead">Maximum size:
+ <select id="max_rank_size" onchange="updateActions()">
+ <option value="5">5</option>
+ <option value="10">10</option>
+ <option value="20">20</option>
+ <option value="50">50</option>
+ <option value="100">100</option>
+ <option value="200">200</option>
+ <option value="500">500</option>
+ <option value="1000">1000</option>
+ <option value="-1">unlimited</option>
+ </select>
+ <script type="text/javascript">
+ setTooltip(
+ $("#max_rank_size_lead"),
+ "The maximum number of benchmarks to show in each ranking.");
+ </script>
+ </td>
</tr>
<tr>
<td style="padding-top:5px; padding-bottom:5px;">
diff --git a/web/getstats/main.js b/web/getstats/main.js
index 3f7ba59..e5a1f65 100644
--- a/web/getstats/main.js
+++ b/web/getstats/main.js
@@ -162,6 +162,7 @@ function updateActions() {
url_rankings += "&platform=" + encodeURIComponent(context1_["platform"]);
url_rankings += "&branch=" + encodeURIComponent(context1_["branch"]);
url_rankings += "&sha1=" + context1_["sha1"];
+ url_rankings += "&maxsize=" + $("#max_rank_size option:selected").val();
// ### Test case filter unsupported for now:
//url_rankings += "&testcasefilter=" + testCaseFilter;
@@ -514,6 +515,7 @@ $(document).ready(function() {
fetchContexts();
// Set default action arguments:
+ $("#max_rank_size option[value='10']").attr("selected", true);
$("#diff_tol option[value='1.1']").attr("selected", true);
$("#dur_tol_min option[value='3']").attr("selected", true);
$("#dur_tol_max option[value='50']").attr("selected", true);
diff --git a/web/getstats/rankings.js b/web/getstats/rankings.js
index bda3eed..87e73ac 100644
--- a/web/getstats/rankings.js
+++ b/web/getstats/rankings.js
@@ -1,3 +1,7 @@
+// --- BEGIN Global variables -----------------------------------
+var maxsize = null; // Maximum number of benchmarks in a ranking
+// --- END Global variables -------------------------------------
+
function selectRankingTable() {
var val = $("#select_rankingTable").attr("value");
var types = ["qs", "lcssr", "lcssi", "lcss1r", "lcss1i"];
@@ -8,7 +12,9 @@ function selectRankingTable() {
}
var nrows = $("#rankingTable_" + val).find("tr").length - 1;
- $("#rankingTable_nrows").text(nrows + ((nrows == 1) ? " row" : " rows"));
+ $("#rankingTable_nrows").text(
+ nrows + ((nrows == 1) ? " row" : " rows") +
+ " (limit: " + (maxsize < 0 ? "unlimited" : maxsize) + ")");
}
function populateRankingTable(
@@ -55,7 +61,7 @@ function populateRankingTable(
$(tableSel + " > tbody:last").append(html);
}
-function fetchRankings(database, host, platform, branch, sha1) {
+function fetchRankings(database, host, platform, branch, sha1, maxsize) {
updateStatus("fetching rankings ...", true);
query = "?db=" + database +
@@ -63,7 +69,8 @@ function fetchRankings(database, host, platform, branch, sha1) {
"&host=" + encodeURIComponent(host) +
"&platform=" + encodeURIComponent(platform) +
"&branch=" + encodeURIComponent(branch) +
- "&sha1=" + sha1;
+ "&sha1=" + sha1 +
+ "&maxsize=" + maxsize;
url = "http://" + location.host + "/cgi-bin/getstatswrapper" + query;
//alert("url: >" + url + "<");
@@ -190,36 +197,41 @@ $(document).ready(function() {
var args = queryStringArgs();
- database = extractArg(args, "db");
+ var database = extractArg(args, "db");
if (database == "") {
alert("ERROR: invalid query string (empty database)");
return;
}
- host = extractArg(args, "host");
+ var host = extractArg(args, "host");
if (host == "") {
alert("ERROR: invalid query string (empty host)");
return;
}
- platform = extractArg(args, "platform");
+ var platform = extractArg(args, "platform");
if (platform == "") {
alert("ERROR: invalid query string (empty platform)");
return;
}
- branch = extractArg(args, "branch");
+ var branch = extractArg(args, "branch");
if (branch == "") {
alert("ERROR: invalid query string (empty branch)");
return;
}
- sha1 = extractArg(args, "sha1");
+ var sha1 = extractArg(args, "sha1");
if (sha1 == "") {
alert("ERROR: invalid query string (empty sha1)");
return;
}
+ maxsize = extractArg(args, "maxsize");
+ if (maxsize == "") {
+ alert("ERROR: invalid query string (empty maxsize)");
+ return;
+ }
$("#div_tsbm_border").css("display", "none");
$("#div_tsbm").css("display", "none");
$("#div_rankings").css("display", "none");
- fetchRankings(database, host, platform, branch, sha1);
+ fetchRankings(database, host, platform, branch, sha1, maxsize);
});