diff options
author | jasplin <qt-info@nokia.com> | 2011-02-09 08:45:44 +0100 |
---|---|---|
committer | jasplin <qt-info@nokia.com> | 2011-02-09 08:45:44 +0100 |
commit | 5d844a9639c55b50f7571d58a31f6212a17f1169 (patch) | |
tree | 8d19628d58014bfec4986a3b190e28088bccfecd | |
parent | fdfd806208042d84424d3e604425be33ca646da6 (diff) |
Set max ranking size from GUI.
-rw-r--r-- | scripts/getrankings.py | 9 | ||||
-rwxr-xr-x | scripts/getstats.py | 16 | ||||
-rw-r--r-- | web/getstats/index.html | 20 | ||||
-rw-r--r-- | web/getstats/main.js | 2 | ||||
-rw-r--r-- | web/getstats/rankings.js | 30 |
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); }); |