diff options
author | Yujun Zhang <zhang.yujunz@zte.com.cn> | 2016-12-08 01:40:18 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2016-12-08 01:40:18 +0000 |
commit | 0665c9635a6332f479b181a186a3469aa9d45343 (patch) | |
tree | 308cbb9582a9022f04863d5064af74ce518ff466 | |
parent | 2e2f7b68a84d02ac2f59a7b0303b7052cdb2229b (diff) | |
parent | 1ce534f64402fd7b2fd85328dda12af9b2ba0c18 (diff) |
Merge "Implement PerfTest prototype"
-rw-r--r-- | qtip/runner/benchmark.py | 6 | ||||
-rw-r--r-- | qtip/runner/perftest.py | 20 | ||||
-rw-r--r-- | tests/data/perftest/iperf | 0 | ||||
-rw-r--r-- | tests/unit/runner/perftest_test.py | 32 |
4 files changed, 37 insertions, 21 deletions
diff --git a/qtip/runner/benchmark.py b/qtip/runner/benchmark.py index 46cb069d..56b5b30e 100644 --- a/qtip/runner/benchmark.py +++ b/qtip/runner/benchmark.py @@ -21,13 +21,10 @@ class Property: class Benchmark: """Abstract class of QTIP benchmarks""" - # paths to search for suites _paths = [path.join(path.dirname(__file__), path.pardir, path.pardir, 'benchmarks')] def __init__(self, name): - """:param name: suite name""" - # TODO(yujunz) check existence and expand to full path self.name = name self._abspath = self._find(name) @@ -47,8 +44,7 @@ class Benchmark: def describe(self): """description of benchmark""" - # TODO(yujunz) - # - read description from benchmark content + # TODO(yujunz) read description from benchmark content return { Property.NAME: self.name, Property.DESCRIPTION: 'QTIP benchmark', diff --git a/qtip/runner/perftest.py b/qtip/runner/perftest.py index 835f2a81..c6d58397 100644 --- a/qtip/runner/perftest.py +++ b/qtip/runner/perftest.py @@ -7,21 +7,13 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from os import path -class PerfTest: - """A perf test collects raw performance metrics by running test tools""" +from benchmark import Benchmark - def __init__(self): - pass - @staticmethod - def list_all(): - """list all available perf tests""" - pass +class PerfTest(Benchmark): + """PerfTest is the driver of external performance test tools""" - def desc(self): - """description of the perf test""" - pass - - def run(self): - pass + # paths to search for perftest + _paths = [path.join(p, 'perftest') for p in Benchmark._paths] diff --git a/tests/data/perftest/iperf b/tests/data/perftest/iperf new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/data/perftest/iperf diff --git a/tests/unit/runner/perftest_test.py b/tests/unit/runner/perftest_test.py index 798afadd..b3e6e8e2 100644 --- a/tests/unit/runner/perftest_test.py +++ b/tests/unit/runner/perftest_test.py @@ -1,4 +1,4 @@ -############################################################################## +############################################################### # Copyright (c) 2016 ZTE Corp and others. # # All rights reserved. This program and the accompanying materials @@ -7,7 +7,35 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from os import path +import pytest + +from qtip.runner.perftest import PerfTest +from qtip.runner.benchmark import Property + + +class TestPerfTestClass: + def test_attr(self): + assert len(PerfTest._paths) is 1 + class TestPerfTest: + PerfTest._paths = [path.join(path.dirname(__file__), path.pardir, + path.pardir, 'data', 'perftest')] + + def test_init(self): + perftest = PerfTest('test-a') + assert perftest.name == 'test-a' + + with pytest.raises(TypeError) as excinfo: + PerfTest() + assert '__init__() takes exactly 2 arguments (1 given)' \ + in str(excinfo.value) + def test_list(self): - assert True + perftest_list = PerfTest.list_all() + assert len(list(perftest_list)) is 1 + for desc in perftest_list: + assert Property.NAME in desc + assert Property.DESCRIPTION in desc + assert Property.ABSPATH in desc |