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

Unified Diff: client/site_tests/graphics_Piglit/graphics_Piglit.py

Issue 6745001: Add piglit autotest (Closed) Base URL: ssh://gitrw.chromium.org:9222/autotest.git@master
Patch Set: fix crash parsing problem in UITest Created 9 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/site_tests/graphics_Piglit/control ('k') | server/site_tests/suites/control.regression » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/site_tests/graphics_Piglit/graphics_Piglit.py
diff --git a/client/site_tests/graphics_Piglit/graphics_Piglit.py b/client/site_tests/graphics_Piglit/graphics_Piglit.py
new file mode 100644
index 0000000000000000000000000000000000000000..913abbab44158662b7d8728150b11f780fd14d6d
--- /dev/null
+++ b/client/site_tests/graphics_Piglit/graphics_Piglit.py
@@ -0,0 +1,102 @@
+# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""
+Runs the piglit OpenGL suite of tests.
+"""
+
+import logging, os, re
+from autotest_lib.client.bin import test, utils
+from autotest_lib.client.common_lib import error
+from autotest_lib.client.cros import cros_ui, cros_ui_test
+
+# most graphics tests need the auto_login feature of UITest
+class graphics_Piglit(cros_ui_test.UITest):
+ version = 1
+ preserve_srcdir = True
+
+ def setup(self):
+ self.job.setup_dep(['piglit'])
+
+ # hard wiring the cros-driver.test config file until we
+ # need to parameterize this test for short/extended testing
+ def run_once(self):
+ # expected crashes inside of piglit need to be listed for UITest
+ self.crash_blacklist.append('attribute0')
+ self.crash_blacklist.append('cashewd')
+ self.crash_blacklist.append('fbo-depth-sample-compare')
+ self.crash_blacklist.append('getuniform-01')
+ self.crash_blacklist.append('glsl-bug-22603')
+ self.crash_blacklist.append('glsl-fs-color-matrix')
+ self.crash_blacklist.append('glsl-fs-discard-02')
+ self.crash_blacklist.append('glslparsertest')
+ self.crash_blacklist.append('shader_runner')
+
+ dep = 'piglit'
+ dep_dir = os.path.join(self.autodir, 'deps', dep)
+ self.job.install_pkg(dep, 'dep', dep_dir)
+ # 'results/default/graphics_Piglit/cros-driver')
+ results_path = os.path.join(self.outputdir, 'cros-driver')
+ piglit_path = os.path.join(dep_dir, 'piglit')
+ bin_path = os.path.join(piglit_path, 'bin')
+ summary = ''
+ if (os.path.exists(os.path.join(piglit_path, 'piglit-run.py')) and
+ os.path.exists(bin_path) and
+ os.listdir(bin_path)):
+
+ os.chdir(piglit_path)
+ cmd = 'python piglit-run.py'
+ cmd = cmd + ' tests/cros-driver.tests'
+ cmd = cmd + ' ' + results_path
+ cmd = cros_ui.xcommand(cmd)
+ logging.info('Calling %s' % cmd)
+ utils.run(cmd)
+ # count number of pass, fail, warn and skip in the test summary
+ summary_path = os.path.join(results_path, 'summary')
+ f = open(summary_path, 'r')
+ summary = f.read()
+ f.close()
+ else:
+ return error.TestError('test runs only on x86 (needs OpenGL)')
+
+ # get passed
+ report = re.findall(r'\nresult: pass', summary)
+ if not report:
+ return error.TestFail('Output missing: pass number unknown!')
+ passed = len(report)
+ # get failed
+ report = re.findall(r'\nresult: fail', summary)
+ if not report:
+ return error.TestFail('Output missing: fail number unknown!')
+ failed = len(report)
+ # get warned
+ report = re.findall(r'\nresult: warn', summary)
+ if not report:
+ return error.TestFail('Output missing: warn number unknown!')
+ warned = len(report)
+ # get skipped
+ report = re.findall(r'\nresult: skip', summary)
+ if not report:
+ return error.TestFail('Output missing: skip number unknown!')
+ skipped = len(report)
+
+ # doesn't seem to send it to the host console
+ logging.info('Piglit: %d pass', passed)
+ logging.info('Piglit: %d fail', failed)
+ logging.info('Piglit: %d warn', warned)
+ logging.info('Piglit: %d skip', skipped)
+
+ # output numbers for plotting by harness
+ keyvals = {}
+ keyvals['count_subtests_pass'] = passed
+ keyvals['count_subtests_fail'] = failed
+ keyvals['count_subtests_warn'] = warned
+ keyvals['count_subtests_skip'] = skipped
+ self.write_perf_keyval(keyvals)
+
+ # generate human friendly html output
+ cmd = 'python piglit-summary-html.py'
+ cmd = cmd + ' ' + os.path.join(results_path, 'html')
+ cmd = cmd + ' ' + results_path
+ utils.run(cmd)
+
« no previous file with comments | « client/site_tests/graphics_Piglit/control ('k') | server/site_tests/suites/control.regression » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698