diff options
author | Dylan Baker <baker.dylan.c@gmail.com> | 2014-05-02 00:23:28 -0700 |
---|---|---|
committer | Dylan Baker <baker.dylan.c@gmail.com> | 2014-05-06 20:10:22 -0700 |
commit | 9b1e7da290cd612690e85bcacc99b50c65d83fe6 (patch) | |
tree | 2368cf51b5639a666245636b50d42dde5bf7fd24 /piglit-run.py | |
parent | 463b049bf3b0a9cc41bc4886d013f161b8156e74 (diff) |
framework: move executable functions to modules
This moves piglit-run and piglit-resume main() functions to
framework.programs.run as run() and resume() respectively, and moves
piglit-summary-* to framework.programs.summary. It then creates
compatibility wrappers as piglit-*.py for the functions.
This is groundwork for a combined piglit interface. The original files
could not be imported directly since they have dash (-) in their name,
and python considers dash an illegal character for function, class, and
modules names, and python would raise an ImportError when attempting to
import one of them.
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'piglit-run.py')
-rwxr-xr-x | piglit-run.py | 199 |
1 files changed, 22 insertions, 177 deletions
diff --git a/piglit-run.py b/piglit-run.py index e5b1b4381..fd7cd72b3 100755 --- a/piglit-run.py +++ b/piglit-run.py @@ -1,187 +1,32 @@ #!/usr/bin/env python -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation -# files (the "Software"), to deal in the Software without -# restriction, including without limitation the rights to use, -# copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following -# conditions: -# -# This permission notice shall be included in all copies or -# substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR(S) BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -# DEALINGS IN THE SOFTWARE. +# Copyright (c) 2014 Intel Corporation -from __future__ import print_function -import argparse -import sys -import os -import os.path as path -import time - -sys.path.append(path.dirname(path.realpath(sys.argv[0]))) -import framework.core as core -import framework.profile - - -def main(): - parser = argparse.ArgumentParser(sys.argv) - parser.add_argument("-n", "--name", - metavar="<test name>", - default=None, - help="Name of this test run") - parser.add_argument("-d", "--dry-run", - action="store_false", - dest="execute", - help="Do not execute the tests") - parser.add_argument("-t", "--include-tests", - default=[], - action="append", - metavar="<regex>", - help="Run only matching tests " - "(can be used more than once)") - parser.add_argument("-x", "--exclude-tests", - default=[], - action="append", - metavar="<regex>", - help="Exclude matching tests " - "(can be used more than once)") - conc_parser = parser.add_mutually_exclusive_group() - conc_parser.add_argument('-c', '--all-concurrent', - action="store_const", - default="some", - const="all", - dest="concurrency", - help="Run all tests concurrently") - conc_parser.add_argument("-1", "--no-concurrency", - action="store_const", - default="some", - const="none", - dest="concurrency", - help="Disable concurrent test runs") - parser.add_argument("-p", "--platform", - choices=["glx", "x11_egl", "wayland", "gbm"], - help="Name of windows system passed to waffle") - parser.add_argument("-f", "--config", - dest="config_file", - type=argparse.FileType("r"), - help="Optionally specify a piglit config file to use. " - "Default is piglit.conf") - parser.add_argument("--valgrind", - action="store_true", - help="Run tests in valgrind's memcheck") - parser.add_argument("--dmesg", - action="store_true", - help="Capture a difference in dmesg before and " - "after each test. Implies -1/--no-concurrency") - parser.add_argument("-v", "--verbose", - action="store_true", - help="Produce a line of output for each test before " - "and after it runs") - parser.add_argument("test_profile", - metavar="<Path to one or more test profile(s)>", - nargs='+', - help="Path to testfile to run") - parser.add_argument("results_path", - type=path.realpath, - metavar="<Results Path>", - help="Path to results folder") - args = parser.parse_args() - - # Set the platform to pass to waffle - if args.platform: - os.environ['PIGLIT_PLATFORM'] = args.platform - - # If dmesg is requested we must have serial run, this is becasue dmesg - # isn't reliable with threaded run - if args.dmesg: - args.concurrency = "none" - - # Read the config file - if args.config_file: - core.PIGLIT_CONFIG.readfp(args.config_file) - args.config_file.close() - else: - core.PIGLIT_CONFIG.read(os.path.join(os.path.dirname(__file__), - 'piglit.conf')) - - # Pass arguments into Environment - env = core.Environment(concurrent=args.concurrency, - exclude_filter=args.exclude_tests, - include_filter=args.include_tests, - execute=args.execute, - valgrind=args.valgrind, - dmesg=args.dmesg, - verbose=args.verbose) - - # Change working directory to the root of the piglit directory - piglit_dir = path.dirname(path.realpath(sys.argv[0])) - os.chdir(piglit_dir) - core.checkDir(args.results_path, False) +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: - results = core.TestrunResult() +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. - # Set results.name - if args.name is not None: - results.name = args.name - else: - results.name = path.basename(args.results_path) +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. - # Begin json. - result_filepath = path.join(args.results_path, 'main') - result_file = open(result_filepath, 'w') - json_writer = core.JSONWriter(result_file) - json_writer.open_dict() +""" Run a piglit test profile - # Write out command line options for use in resuming. - json_writer.write_dict_key('options') - json_writer.open_dict() - json_writer.write_dict_item('profile', args.test_profile) - for key, value in env: - json_writer.write_dict_item(key, value) - if args.platform: - json_writer.write_dict_item('platform', args.platform) - json_writer.close_dict() +Deprecated compatability wrapper - json_writer.write_dict_item('name', results.name) - - for (key, value) in env.collectData().items(): - json_writer.write_dict_item(key, value) - - profile = framework.profile.merge_test_profiles(args.test_profile) - profile.results_dir = args.results_path - - json_writer.write_dict_key('tests') - json_writer.open_dict() - time_start = time.time() - # Set the dmesg type - if args.dmesg: - profile.dmesg = args.dmesg - profile.run(env, json_writer) - time_end = time.time() - - json_writer.close_dict() - - results.time_elapsed = time_end - time_start - json_writer.write_dict_item('time_elapsed', results.time_elapsed) - - # End json. - json_writer.close_dict() - json_writer.file.close() - - print('Thank you for running Piglit!\n' - 'Results have been written to ' + result_filepath) +""" +import sys +from framework.programs.run import run -if __name__ == "__main__": - main() +run(sys.argv) |