tests: benchmarks: thread_metric: Record measurements
Extentd 'benchmark.thread_metric' (tests/benchmarks/thread_metric) test suite to collect benchmark measurements in Twister reports as recordings parsed from the test's output: time period values as well as errors. Additionally, each test is executed until it makes at least 3 measurements to estimate variance. Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
This commit is contained in:
parent
e63a513a93
commit
ae90679f88
2 changed files with 40 additions and 4 deletions
|
@ -9,8 +9,10 @@ common:
|
|||
# time does not pass while the CPU executes. So the benchmark just appears as if hung.
|
||||
arch_exclude:
|
||||
- posix
|
||||
# qemu_nios2 excluded as it is slow
|
||||
# some slow qemu_* excluded
|
||||
platform_exclude:
|
||||
- qemu_malta/qemu_malta
|
||||
- qemu_malta/qemu_malta/be
|
||||
- qemu_nios2
|
||||
integration_platforms:
|
||||
- qemu_x86
|
||||
|
@ -18,9 +20,22 @@ common:
|
|||
timeout: 300
|
||||
harness: console
|
||||
harness_config:
|
||||
type: one_line
|
||||
type: multi_line
|
||||
ordered: true
|
||||
regex:
|
||||
- "(.*) Relative Time: (.*)"
|
||||
# Collect at least 3 measurements for each benchmark:
|
||||
- "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
|
||||
- "(.*)Time Period Total:[ ]*[0-9]+(.*)"
|
||||
- "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
|
||||
- "(.*)Time Period Total:[ ]*[0-9]+(.*)"
|
||||
- "(.*) Thread-Metric(.+) Relative Time:[ ]*[0-9]+(.*)"
|
||||
- "(.*)Time Period Total:[ ]*[0-9]+(.*)"
|
||||
record:
|
||||
regex:
|
||||
- "Time Period Total:[ ]*(?P<total_time_period>[0-9]+)"
|
||||
- "ERROR:[ ]*(?P<error_message>.*)"
|
||||
- "[ ]+Average:(?P<error_details>.*)"
|
||||
merge: true
|
||||
|
||||
tests:
|
||||
benchmark.thread_metric.basic:
|
||||
|
|
|
@ -123,6 +123,27 @@ tm_memory_allocation_test.c Basic memory allocation test
|
|||
tm_porting_layer_zephyr.c Specific porting layer source
|
||||
code for Zephyr
|
||||
|
||||
2.5. Test execution with Twister tool
|
||||
|
||||
When the test suite is executed by Twister it takes parameters from testcase.yaml
|
||||
file, in particular:
|
||||
|
||||
* check expected benchmark output presence at least three times to collect
|
||||
measurements from 3 consequtive intervals for each of the benchmark tests.
|
||||
|
||||
* use 300 sec. timeout on each benchmark test from this suite;
|
||||
it is expected to be at least twice bigger than normally needed
|
||||
to collect measurements 3 times with 30 sec. intervals on most of the
|
||||
platforms except some simulators.
|
||||
|
||||
* parse benchmark output to extract measurements and errors when
|
||||
it happens e.g. on counters diverged from average; Twister records
|
||||
this data in twister.json and recording.csv report files for analysis.
|
||||
|
||||
For more details see Twister testcase.yaml documentation and 'harness_config:'
|
||||
parameters.
|
||||
|
||||
|
||||
3 Porting
|
||||
|
||||
3.1 Porting Layer
|
||||
|
@ -216,7 +237,7 @@ measurement tests:
|
|||
of memory. If successful, a TM_SUCCESS is returned.
|
||||
|
||||
|
||||
2.2 Porting Requirements Checklist
|
||||
3.2 Porting Requirements Checklist
|
||||
|
||||
The following requirements are made in order to ensure fair benchmarks
|
||||
are achieved on each RTOS performing the test:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue