Commit Graph

5871 Commits (b0aea20317bf1dba3c416e298085455c6c6828b4)

Author SHA1 Message Date
Niklas Hauser d2093f1ddc Types: Add type-compatible Timeout factory functions. Add CaseAwait behavior for infinite timeouts. Improve enum naming. 2016-04-28 15:18:57 -05:00
Niklas Hauser 49952824fb Handlers: Add specialized functions for all handlers.
Most of them simply forward to the verbose handlers,
however, should we decide differently in the future,
existing unit tests will not have to be adapted.
2016-04-28 15:18:53 -05:00
Niklas Hauser 34571488a6 Harness: Fix case index counting. 2016-04-28 15:18:49 -05:00
Niklas Hauser 17c89289a1 Harness: Fix bugs in repeat logic. 2016-04-28 15:18:45 -05:00
Niklas Hauser 205233a6db Repeat: Allow repeat on timeout and validation at the same time. 2016-04-28 15:18:41 -05:00
Niklas Hauser bc25003d41 Unity: Add failure ignoring callback. 2016-04-28 15:18:38 -05:00
Niklas Hauser 633588dc35 Handlers: Add test failure handler to allow selftest. 2016-04-28 15:18:34 -05:00
Niklas Hauser 105d07b552 Harness: Allow generic ignoring of failures. 2016-04-28 15:18:30 -05:00
Niklas Hauser 67e271f292 Harness: Implement test case repeat on timeout.
This is particularly useful for network unittests that may timeout, but
are allowed to retry a number of times, before being declared a failure.
2016-04-28 15:18:25 -05:00
Niklas Hauser dc242ee280 Harness: Atomic execution of handlers not necessary. 2016-04-28 15:18:20 -05:00
Niklas Hauser 0b93efe7f6 Return whether the specification can be run or not. Do not die after specification teardown handler. 2016-04-28 15:18:16 -05:00
Niklas Hauser 4e5996ceea Allow starting a specification at a different case.
This can be used to skip failing test cases with external support from
a test runner like greentea.
It would reset the device and execute the specification again, but start
at the next test case.
2016-04-28 15:18:12 -05:00
Niklas Hauser c2343b223b Update namespace from v0 to v1. 2016-04-28 15:18:08 -05:00
Niklas Hauser d59284850d Fix off-by-one error in case indexing. 2016-04-28 15:18:03 -05:00
Niklas Hauser dc8c336652 Refactor all include guards to `UTEST_*`. 2016-04-28 15:17:59 -05:00
Niklas Hauser 13987f8101 Adapt include path for header file move to `utest`. 2016-04-28 15:17:55 -05:00
Niklas Hauser a3129f204a Move header files to `utest` folder. 2016-04-28 15:17:51 -05:00
Niklas Hauser bfc61ce8ae Rename `mbed_test_*` failure handler to `utest_*`. 2016-04-28 15:17:46 -05:00
Niklas Hauser 97bbff7ab2 Refactor namespace `mbed::test` to `utest`. 2016-04-28 15:17:43 -05:00
Niklas Hauser a83e54c915 Types: Use largest value in timeout as inactive hint.
This allows arbitrating to the more restrictive timeout.
2016-04-28 15:17:38 -05:00
Niklas Hauser dc4cb4585c Unify `Case` and `AsyncCase` using return type.
By letting the test case return a `control_t` type, it can decide itself
if it repeats, and what timeouts are required.
This removes the `AsyncCase` and allows a uniform declaration of test
cases.
2016-04-28 15:17:34 -05:00
Niklas Hauser b72f18009b Harness: Remove `.tolerance(0)` as not required. 2016-04-28 15:17:29 -05:00
Niklas Hauser 61fe8e07a1 Handlers: Remove forced newline after assertion failure.
This was a workaround for unity's failure to add a newline after
printing an assertion failure.
This has been fixed in unity.
2016-04-28 15:17:25 -05:00
Niklas Hauser 64573c33d0 Types: allow external access to `stringify` function. 2016-04-28 15:17:21 -05:00
Niklas Hauser b119cb2280 Case: `timeout_ms` is unsigned, use 0 as do-not-use indicator. 2016-04-28 15:17:18 -05:00
Niklas Hauser a045c44f78 Refactor `set_up` to `setup`, `tear_down` to `teardown`. It's a verb vs. noun thing. 2016-04-28 15:17:14 -05:00
Niklas Hauser 9c32e01d52 Harness: Add `is_busy()` method. 2016-04-28 15:17:09 -05:00
Niklas Hauser e77743d6a6 Types: Add repeat count to `control_flow_handler_t`. 2016-04-28 15:17:05 -05:00
Niklas Hauser b3e30294cc Overload the (Async-)Case class to take the handlers in a semantically meaningful way. 2016-04-28 15:17:01 -05:00
Niklas Hauser 7e321f8f81 Defaults: Force users to provide a greentea setup handler.
It displays a helpful message in case you forgot.
2016-04-28 15:16:55 -05:00
Niklas Hauser 2cf2ef5415 Move default handlers into specification. 2016-04-28 15:16:51 -05:00
Niklas Hauser 9a4e0d2da8 Add Specification class with common setup and teardown handlers. 2016-04-28 15:16:47 -05:00
Niklas Hauser e2a5d97f77 Harness: Add empty test case detection. 2016-04-28 15:16:44 -05:00
Niklas Hauser 2bbf725bcc Harness: Make it interrupt safe.
We do not want to have a call to `validate_callback()` before
`run_next_case()` is finished or while `handle_timeout()` is executing.
2016-04-28 15:16:40 -05:00
Niklas Hauser 8d84612472 Harness: Add correct handling of failures in setup and teardown handlers. 2016-04-28 15:16:36 -05:00
Niklas Hauser cbac633aa5 Defaults: Remove unnecessary namespaces. 2016-04-28 15:16:31 -05:00
Niklas Hauser 303fa5a3a0 Defaults: Make Greentea handlers more verbose. 2016-04-28 15:16:28 -05:00
Niklas Hauser ad8fdc62d6 Defaults: Set greentea default handlers. 2016-04-28 15:16:24 -05:00
Niklas Hauser 64f54ed35c Harness: Call case setup only once for control flow cases. 2016-04-28 15:16:20 -05:00
Niklas Hauser 06fc81f99d Add much better default handler declaration and usage. 2016-04-28 15:16:16 -05:00
Niklas Hauser 171033622b Move types and classes into seperate header files. Rename TestHarness to Harness. 2016-04-28 15:16:12 -05:00
Niklas Hauser ded41049fb Add unity assertion failure callback handler. 2016-04-28 15:16:08 -05:00
Niklas Hauser 9f770f8ec8 This commits gets rid of all dependencies on unity.
Failures will not longjmp, but are reported on top of the stack,
by calling the case failure handler, which then decides whether to
continue or abort testing.

Other changes:

- Individual cases can have their own setup and teardown handlers,
- Case repeats are now handled by the case handler returning `control_flow_t`,
- Separates `status_t` and `failure_t`,
- Implements useful default case setup and teardown, and
- Keeps score of passes and failures on per case and test basis.
2016-04-28 15:16:04 -05:00
Niklas Hauser eef649e498 Remove return type from case handler.
Use AsyncCase constructor to signal waiting for a async callback.
2016-04-28 15:16:00 -05:00
Niklas Hauser e4354b2c1a Add interface and implementation of a list based unit test harness. 2016-04-28 15:15:56 -05:00
Martin Kojtal 47390727e5 Add unity to frameworks 2016-04-28 15:15:52 -05:00
Sam Grove b337c7fd00 Merge pull request #63 from bridadan/set-project-name-option
Allow the output binary of make.py to be named from the command line
2016-04-28 14:26:59 -05:00
Marcus Shawcroft bd37e5ac0a Merge pull request #65 from geky/make-follow-symlinks
Add support for following symlinks in make.py
2016-04-28 16:03:40 +01:00
Bogdan Marinescu 6b3d841664 Merge pull request #56 from 0xc0170/fix_generated_dir
Fix generated dir
2016-04-27 10:56:19 +03:00
Martin Kojtal 80cecbfcfb Exporters - if source, generate to projectfiles/{{ide}}
This allows to use multiple tools within a project, they don't affect
each other.

An example:
projectfiles/gcc_arm
projectfiles/uvision
projectfiles/iar
2016-04-26 11:44:26 -05:00