Merge lp:~le-chi-thu/lava-test/peacekeeper_test_suite into lp:lava-test/0.0

Proposed by Le Chi Thu
Status: Merged
Merged at revision: 67
Proposed branch: lp:~le-chi-thu/lava-test/peacekeeper_test_suite
Merge into: lp:lava-test/0.0
Diff against target: 119 lines (+108/-0)
2 files modified
abrek/test_definitions/peacekeeper.py (+41/-0)
abrek/test_definitions/peacekeeper/peacekeeper.py (+67/-0)
To merge this branch: bzr merge lp:~le-chi-thu/lava-test/peacekeeper_test_suite
Reviewer Review Type Date Requested Status
Linaro Validation Team Pending
Review via email: mp+60041@code.launchpad.net

Description of the change

Added browser benchmark test case : peacekeeper - http://clients.futuremark.com/peacekeeper/index.action

The test case is used the firefox browser to perform the test.

To post a comment you must log in.
67. By Le Chi Thu <email address hidden> <email address hidden>

Added browser benchmark test case - peacekeeper

Revision history for this message
Paul Larson (pwlars) wrote :

Have you tested this? I suspect this would cause confusion about whether you were referring to the peacekeeper directory for abrek to import or the module by itself. It may make sense to store the code for the actual testsuite somewhere else. I'll give it a try later today.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added directory 'abrek/test_definitions/peacekeeper'
=== added file 'abrek/test_definitions/peacekeeper.py'
--- abrek/test_definitions/peacekeeper.py 1970-01-01 00:00:00 +0000
+++ abrek/test_definitions/peacekeeper.py 2011-05-05 11:13:26 +0000
@@ -0,0 +1,41 @@
1# Copyright (c) 2010 Linaro
2#
3# This program is free software: you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation, either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16"""
17 This script automates the automate installation, execution, and
18 results parsing for the Peacekeeper browser benchmark.
19
20 http://clients.futuremark.com/peacekeeper/index.action
21"""
22
23import abrek.testdef
24import os
25
26curdir = os.path.realpath(os.path.dirname(__file__))
27
28INSTALLSTEPS = ['cp -rf %s/peacekeeper/* .'%curdir]
29RUNSTEPS = ['python peacekeeper.py firefox']
30DEPS = ['python-ldtp','firefox']
31
32my_installer = abrek.testdef.AbrekTestInstaller(INSTALLSTEPS, deps=DEPS)
33my_runner = abrek.testdef.AbrekTestRunner(RUNSTEPS)
34
35PATTERN = "^(?P<result>\w+): Score = (?P<measurement>\d+)"
36
37my_parser = abrek.testdef.AbrekTestParser(PATTERN,
38 appendall={'units':'point'})
39
40testobj = abrek.testdef.AbrekTest(testname="peacekeeper", installer=my_installer,
41 runner=my_runner, parser=my_parser)
042
=== added file 'abrek/test_definitions/peacekeeper/peacekeeper.py'
--- abrek/test_definitions/peacekeeper/peacekeeper.py 1970-01-01 00:00:00 +0000
+++ abrek/test_definitions/peacekeeper/peacekeeper.py 2011-05-05 11:13:26 +0000
@@ -0,0 +1,67 @@
1#!/usr/bin/python
2
3import re
4import sys
5import time
6from optparse import OptionParser
7from ldtp import *
8from urllib import urlopen
9
10chromium_data = {
11 "cmd":"chromium-browser",
12 "title":"*Chromium",
13 "urlfield":"txt0"
14}
15
16firefox_data = {
17 "cmd":"firefox",
18 "title":"*Firefox",
19 "urlfield":"txtGotoaWebSite"
20}
21
22browser_data = {
23 "firefox":firefox_data,
24 "chromium":chromium_data
25}
26
27site = "http://service.futuremark.com/peacekeeper/run.action"
28
29try:
30 browser = browser_data[sys.argv[1]]
31except:
32 print "Usage: %s [%s]" % (sys.argv[0], '|'.join(browser_data.keys()))
33 sys.exit(1)
34
35closewindow(browser["title"])
36
37launchapp(browser["cmd"], [site])
38
39if not waittillguiexist(browser["title"], guiTimeOut = 60):
40 print "Error: Program never started"
41 sys.exit(-1)
42
43result_url = gettextvalue(browser["title"], browser["urlfield"])
44wait_loop = 60 # 60 * 30 seconds = 15 minutes
45time.sleep(10)
46
47while not re.search('results.action', result_url) and wait_loop > 0:
48 result_url = gettextvalue(browser["title"], browser["urlfield"])
49 print "waiting..."
50 time.sleep(30)
51 wait_loop = wait_loop-1
52
53closewindow(browser["title"])
54
55print result_url
56
57if wait_loop > 0:
58 fd = urlopen(result_url)
59 data = fd.read()
60 fd.close()
61
62 scoreline = re.search('<div class="score">(\d+)</div>', data)
63 if scoreline:
64 score = scoreline.group(1)
65 print "pass: Score = %s" % score
66else:
67 print "fail: Score = 0"
0\ No newline at end of file68\ No newline at end of file

Subscribers

People subscribed via source and target branches