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