summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-28 13:06:16 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-28 19:51:56 +0200
commitda36db33a11c22f02181f14d6be03455f859cbfb (patch)
tree2d3756a7207da3cd36962cbac35b40152bed92e8
parentspec: Fix sporadic test failure (diff)
downloadrtems-central-da36db33a11c22f02181f14d6be03455f859cbfb.tar.bz2
spec: Specify _Timecounter_Tick_simple()
-rw-r--r--spec/score/timecounter/req/tick-simple-delta.yml16
-rw-r--r--spec/score/timecounter/req/tick-simple-offset.yml16
-rw-r--r--spec/score/timecounter/req/tick-simple.yml16
-rw-r--r--spec/score/timecounter/unit/kern-tc.yml42
-rw-r--r--spec/score/timecounter/val/install.yml45
5 files changed, 93 insertions, 42 deletions
diff --git a/spec/score/timecounter/req/tick-simple-delta.yml b/spec/score/timecounter/req/tick-simple-delta.yml
new file mode 100644
index 00000000..09f50c0a
--- /dev/null
+++ b/spec/score/timecounter/req/tick-simple-delta.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: tick-simple
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ When the simple timecounter tick service is called, the time points of the
+ current timehand shall be advanced by the time interval specified by the
+ ``delta`` parameter.
+type: requirement
diff --git a/spec/score/timecounter/req/tick-simple-offset.yml b/spec/score/timecounter/req/tick-simple-offset.yml
new file mode 100644
index 00000000..02832384
--- /dev/null
+++ b/spec/score/timecounter/req/tick-simple-offset.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: tick-simple
+functional-type: function
+rationale: null
+references: []
+requirement-type: functional
+text: |
+ When the simple timecounter tick service is called, the timecounter offset of
+ the current timehand shall be set to the offset specified by the ``offset``
+ parameter.
+type: requirement
diff --git a/spec/score/timecounter/req/tick-simple.yml b/spec/score/timecounter/req/tick-simple.yml
new file mode 100644
index 00000000..46ef3c8f
--- /dev/null
+++ b/spec/score/timecounter/req/tick-simple.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: group
+non-functional-type: design
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+ The clock implementation shall provide a simple timecounter tick service for
+ timecounter devices with a period equal to the ${/glossary/clock-tick:/term}
+ interval.
+type: requirement
diff --git a/spec/score/timecounter/unit/kern-tc.yml b/spec/score/timecounter/unit/kern-tc.yml
deleted file mode 100644
index fb1cdca2..00000000
--- a/spec/score/timecounter/unit/kern-tc.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links: []
-test-actions:
-
-#### _Timecounter_Tick_simple() ###############################################
-
-- action-brief: |
- Call function _Timecounter_Tick_simple().
- action-code: |
- ISR_lock_Context lock_context;
- _Timecounter_Acquire( &lock_context );
- _Timecounter_Tick_simple( 0, 0, &lock_context );
- checks: []
- links:
- - name: _Timecounter_Tick_simple
- role: unit-test
- uid: ../../if/domain
-
-###############################################################################
-
-test-brief: |
- Unit tests for the time counter kern_tc part.
-test-context: []
-test-context-support: null
-test-description: |
- Parts of the file ``cpukit/score/src/kern_tc.c`` are only executed by certain
- device driver code. The space qualified code subset does not contain those
- features. This test exercises the code parts otherwise not reached in order
- to achieve full code coverage.
-test-header: null
-test-includes:
-- rtems/score/timecounter.h
-test-local-includes: []
-test-setup: null
-test-stop: null
-test-support: null
-test-target: testsuites/unit/tc-score-kern-tc.c
-test-teardown: null
-type: test-case
diff --git a/spec/score/timecounter/val/install.yml b/spec/score/timecounter/val/install.yml
index f9b99a23..543dc006 100644
--- a/spec/score/timecounter/val/install.yml
+++ b/spec/score/timecounter/val/install.yml
@@ -5,6 +5,21 @@ enabled-by: true
links: []
test-actions:
- action-brief: |
+ Call the simple timecounter tick service with a zero delta and offset.
+ This will lead to an overflow to zero of the timehand generation. It shall
+ not change the initial clock values.
+ action-code: |
+ ISR_lock_Context lock_context;
+
+ _Timecounter_Acquire( &lock_context );
+ _Timecounter_Tick_simple( 0, 0, &lock_context );
+ checks: []
+ links:
+ - role: validation
+ uid: ../req/tick-simple-delta
+ - role: validation
+ uid: ../req/tick-simple-offset
+- action-brief: |
Call the directives to get the initial value of
${/glossary/clock-realtime:/term} and the initial boot time.
action-code: |
@@ -780,6 +795,36 @@ test-actions:
links:
- role: validation
uid: ../req/tick-large-delta
+- action-brief: |
+ Call the simple timecounter tick service with non-zero delta and offset
+ parameter values so that exactly one second passed.
+ action-code: |
+ ISR_lock_Context lock_context;
+ Timecounter *tc;
+ struct bintime bt;
+
+ tc = &high_quality_high_frequency;
+
+ _Timecounter_Acquire( &lock_context );
+ _Timecounter_Tick_simple(
+ tc->base.tc_frequency / 2,
+ GetCounter( tc ) - tc->base.tc_frequency / 2,
+ &lock_context
+ );
+ checks:
+ - brief: |
+ Check that exactly one second passed due to the simple clock tick
+ service.
+ code: |
+ rtems_clock_get_realtime_bintime( &bt );
+ T_eq_i64( bt.sec, 567993603 );
+ T_eq_u64( bt.frac, 103079215104 );
+ links:
+ - role: validation
+ uid: ../req/tick-simple-delta
+ - role: validation
+ uid: ../req/tick-simple-offset
+ links: []
test-brief: |
Tests timecounter installation related functions and directives of the Clock
Manager.