History log of /external/lisa/libs/utils/test.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a4fef2cb05b02c92928df23d136caf8d2726c0ef 04-May-2017 Patrick Bellasi <patrick.bellasi@arm.com> utils/trace: remove tasks attribute

The Trace object is tracking a set of tasks which can be used as a default
for other trace analysis modules. However, this API is somehow confusing
since most of the times we still want to specify a different set of tasks
after the trace has been parsed.

This patch removes the usage of the tasks attributes at Trace parsing time
while ensuring that each of the current API clients define which tasks
they want to focus on.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py
4beebab43c51a68508d486859c24cd489cc9f9c5 28-Jun-2017 Brendan Jackman <bjackman@users.noreply.github.com> Merge pull request #415 from bjackman/lisa-test-iterations-cmdline

Add feature to set test iteration count from command line
9b99af5876fb3686d772d149419bcfb9a1d66e68 09-Jun-2017 Brendan Jackman <brendan.jackman@arm.com> Add feature to set test iteration count from commandline

This is a kludge, but I think doing this properly basically requires
implementing our own Nose test runner, or even our own test-running
framework entire. In the short term we really need this feature.

nosetests doesn't provide a way for the user to pass command-line
arguments to the test. To get around this, this commit adds a
parameter to lisa-test that sets an environment variable, which
LisaTest then reads to set or override the iterations count.
/external/lisa/libs/utils/test.py
59ad067fd62b8554c9656e635cc1dae172fd96c3 20-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Add permitted_fail_pct attribute

This allows specifying a percentage of iterations of a given
test (tuple wload, conf, test method) can be permitted to fail.

If some tests fail but not enough to cross this percentage threshold, a warning
is printed.
/external/lisa/libs/utils/test.py
8ba281d201a54bd0bd34cc0248830f87af030269 28-Mar-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Improve running tests with multiple iterations

Currently when you run a LisaTest with experiments_conf['iterations']!=0, the
test assertions are made for every experiment and the test is failed as soon as
any experiment produces a failure. Only the first failure encountered is
displayed.

With this patch all the results for each wload/conf pair are aggregated.

The problem is only solved across iterations: if multiple wloads or confs fail,
only the first wload/conf pair that was found to have failed will be
displayed.
/external/lisa/libs/utils/test.py
3a01b131174b28d2d5409bd060a58b08be9bf6d6 20-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: rename logger to _log

For consistency with other LISA code
/external/lisa/libs/utils/test.py
1093851c73744730428f9a52afba512c5996c668 22-Feb-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Replace runTest with overridden __init__

`runTest` is detected and run as a test by nosetests, since it has 'Test' in the
name. We just added it so that we could instantiate LisaTest objects
easily (like `t = FreqInvarianceTest()`). Instead, remove it and override
__init__ with a default `methodName` that doesn't have 'test' in the name.

Fixes https://github.com/ARM-software/lisa/issues/306
/external/lisa/libs/utils/test.py
968e72e29bfae2fe1329fa77cdc978dd92930b37 15-Feb-2017 Brendan Jackman <bjackman@users.noreply.github.com> Merge pull request #295 from derkling/fix-tests

Fix some tests broken by recent executor refactoring
ef8ab219eff42cd7cc817f7a60fd62bbd9ec184b 14-Feb-2017 Patrick Bellasi <patrick.bellasi@arm.com> utils/test: alias test configuration and workloads

Test configuration and workloads can be specified either using inline dicts
or JSON files. Moreover, they can be part of the same main dictionary or
separate ones. Finally, these information are tracked by different modules.

This patch adds two convenience alias which allows a test to get an easy
access to the set of configurations and workloads used to run the experiments.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py
cb824ffc8974200583a815e6e5cc28fb7fbc6b2b 14-Feb-2017 Patrick Bellasi <patrick.bellasi@arm.com> utils/test: fix documentation

A wload configuration can still be specified using a JSON file, let's report
that in the documentation.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py
08c88a53db462765141ae3d3771f809e01e41feb 12-Jan-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: add `experiments` alias
/external/lisa/libs/utils/test.py
07c24985f8c4964a11483db44e383d0ddf602566 12-Jan-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Add public "runExperiments" method

Having it public makes it useful for using LisaTest outside of the influence of
nosetests, i.e. via notebooks.
/external/lisa/libs/utils/test.py
10fa32a75d284fcc2965e664407a5cca226430aa 12-Jan-2017 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Fix get_sched_assert method
/external/lisa/libs/utils/test.py
d69f7ab728d780c797440c6e174d73d65d503bf2 13-Dec-2016 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Add empty runTest method

Defining a default, empty runTest allows test classes to be conveniently
instantiated. Since we run tests via nose, runTest isn't used. Instead
all the public methods with 'test' in the name are treated as test
methods.
/external/lisa/libs/utils/test.py
15a2cf422f76b8e79d3beb147c73e2b35cafc4fe 23-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Add get_trace method

It's a good idea to unify the creation of Traces in one place, because
passing a different sent of events will result in different time
indexes due to the time normalization being based on the time of the
first event.

This is also a nice convenience method.
/external/lisa/libs/utils/test.py
c278c2343c7f25083a80cb164b6bdc761d50050b 22-Nov-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs: use a more configurable logging strategy

This is a big re-factoring which update all the logging statements to make
use of a more sane and consistent configuration:

- each module uses the same logger configuration but refers to a custom
logger which has the same name of the module, this should allows a
fine grained configuration of the loglevels for each module.

- a new libs/utils/conf.py::LisaLogging class allows to load the
configuration and customize the root logger level.

- loggers are configured using a single logfile (logging.conf) which is
provided by default in the LISA's root folder.

Each logger can be configured to specify:
- loglevel: INFO by default for all modules
- output channels: console and logfile (lisa.log by default) for all modules
- string format: the same by default for all modules

If logging.conf does not specify a specific configuration for a logger, than
the default logger configuration applies, which is the one defined by the
"root" logger.

Notebooks and LisaTest are required to call at least one time the
LisaLogging::setup() method to properly intialize logging.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py
58d32dc365fa39e96a7875593611702a4035221b 22-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Flesh out docstrings
/external/lisa/libs/utils/test.py
41814259b6125af57cdb5c1b26f96b60a636e4b1 11-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> LisaTest: Add methods to override for test configuration

These methods allow users of LisaTest to provide a `test_conf` member
which configures the test environment (TestEnv) and an
`experiments_conf` member to configure the experiments to set up the
experiments (Executor).

Users can override _getExperimentsConf with a method that generates the
Executor experiments configuration as a function of target information -
this is called _aftere_ the TestEnv is initialised and it is passed as a parameter.
/external/lisa/libs/utils/test.py
2bafed53a78810119b683ee1e83eb7ec972b8a96 17-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> executor: Rename tests_conf to experiments_conf

tests_conf is easily confused with the test_conf that TestEnv uses.

Also remove the default value since this parameter is required.
/external/lisa/libs/utils/test.py
324d7fa43f58a074292caca4f08e76a17ea94e75 11-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> executor: Take a TestEnv instead of a target_conf
/external/lisa/libs/utils/test.py
4fb683537195884f4eacf08f7eebf57ca3915dd5 02-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> libs/utils/test: Add get_end_time and get_window to LisaTest
/external/lisa/libs/utils/test.py
0445214a8018fd093f0de203f36bb951220292ce 02-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> libs/utils/test: Add get_sched_assert method to LisaTest
/external/lisa/libs/utils/test.py
7487138b3df6377d2ef7c91a7f0028cf28f547a7 04-Nov-2016 Brendan Jackman <brendan.jackman@arm.com> libs/utils/tests: Don't look at Executor config in LisaTest

We don't need to validate the config; Executor already does
that. Therefore we don't even need to parse it - just pass it blindly on
to Executor. That way we can use raw dicts instead of JSON files.
/external/lisa/libs/utils/test.py
ad51cdcee3499fc20415ecba8db06dc76f4f7b6a 13-Oct-2016 Brendan Jackman <brendan.jackman@arm.com> libs/utils/test: Add new utility methods to LisaTest
/external/lisa/libs/utils/test.py
36b84bc7a7636fb48ab81af023f9bb1c6b6cc622 30-Sep-2016 Brendan Jackman <brendan.jackman@arm.com> libs/utils/test: Add experiment_test decorator

It's expected that tests often have to iterate over all the experiments
that were run in order to make assertions about the results of
each. This decorator abstracts that iteration, also providing the
experiment workload's task names for convenience.
/external/lisa/libs/utils/test.py
19af1b636016d16cda1b117fb6393b86f35e2274 26-Feb-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/test: use cls instead of self for class methods

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py
df15a12bbd7f5b9cdc798c3a4a952f1d0c50a46d 26-Feb-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/test: fix multiple run of the executor

Tests executions and data collection is driven by the Executor module which
should be executed just one time to run all the experiments required by
the following tests.
The current implementation of LisaTest creates the Executor object
and run its from within the ctor method of the base class. This ctor is
called by nosetests before each test runs. This imply that we currently run
data collection multiple times.

This patch fixes this issue by switching to the usage of the setUpClass
class method, which is granted to be called just one time by nosetest.
This mehod is used in each test to call the LisaTest::_init() method
which is now the one in charge to initialized and execute tests.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py
f80919dc5a5b568b7ec8215d82004fe844b9e679 12-Feb-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/test: add base class for experiments execution

Most of the LISA tests requires the execution of a set of experiments to
collect traces required for the tests. The execution engine provided
by libs/utils/executor provides the minimal code to run a pre-configured
set of experiments, but still we need some glue code to configure the
executor as well as (eventually) post-process their results.

This patch adds a python unittest based class which provides:
1. the glue code to load a tests configuration and check its conformance
with the executor engine
2. execute the tests

This base class adds support also for the definition of a pre-defined set
of testing callbacks. A test writer can thus easily extends a LISA test
by specifying code to be run:
a) before experiments execution (LisaTest::_experimentsInit)
b) after experiments have completed (LisaTest::_experimentsFinalize)
Configuration checking (LisaTest::_checkConf) and experiments execution
(LisaTest::_runExperiments) are also methods which can be eventually
re-defined by a specif test instance.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/test.py