Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Side by Side Diff: scripts/slave/results_dashboard.py

Issue 12317053: Sends test results to new perf dashboard (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/slave/runtest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Functions for adding results to perf dashboard."""
7
8 import httplib
9 import json
10 import sys
11 import urllib
12 import urllib2
13
14 SEND_RESULTS_PATH = "/add_point"
15 RESULTS_LINK_PATH = "/report?masters=%s&bots=%s&tests=%s&rev=%s"
16
17
18 # TODO(sullivan): cache results to a file in case of http errors.
19 def SendResults(logname, lines, system, test, url):
20 results_to_add = []
21 # TODO(sullivan): Where to get the master (e.g. "ChromiumPerf") from?
Mike Stip (use stip instead) 2013/02/21 23:12:49 I would pass this from the master to runtest.py as
22 master = "master"
23 bot = system
24 if not logname.endswith("-summary.dat"):
25 return
26 graph = logname.replace("-summary.dat", "")
27 for line in lines:
28 data = json.loads(line)
29 # TODO(sullivan): This is the git rev. We want svn rev, for proper ordering.
30 revision = data["rev"]
31 for (trace, values) in data["traces"].iteritems():
32 # TODO(sullivan): Handle special trace names:
33 # Reference builds
34 # graph == trace (main graph)
35 # by_url builds
36 result = {
37 "master": master,
38 "bot": system,
39 "test": "%s/%s/%s" % (test, graph, trace),
40 "revision": revision,
41 "value": values[0],
42 "error": values[1],
43 }
44 # TODO(sullivan): webkit_rev is set to "undefined" here even when it is
45 # available in the stdio.
46 if "webkit_rev" in data and data["webkit_rev"] != "undefined":
47 result["supplemental_columns"] = {"r_webkit_rev": data["webkit_rev"]}
48 results_to_add.append(result)
49 data = urllib.urlencode({"data": json.dumps(results_to_add)})
50 req = urllib2.Request(url + SEND_RESULTS_PATH, data)
51 # TODO(sullivan): properly handle exceptions.
52 try:
53 urllib2.urlopen(req)
54 except urllib2.HTTPError, e:
55 sys.stderr.write("HTTPError: %d\n" % e.code)
56 except urllib2.URLError, e:
57 sys.stderr.write("URLError: %s\n", str(e.reason))
58 except httplib.HTTPException, e:
59 sys.stderr.write("HTTPException\n")
60
61 results_link = url + RESULTS_LINK_PATH % (
62 urllib.quote(master),
63 urllib.quote(bot),
64 urllib.quote(test + "/" + graph),
65 revision)
66 print "@@@STEP_LINK@%s@%s@@@" % ("Results Dashboard", results_link)
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/runtest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698