summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-02-18 16:14:43 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-02-23 09:18:17 +0100
commiteb5ef75379781bf94a097b3ffc60acc56270300a (patch)
tree717ff1ebe78d2670b8c8a7e9003094950a056860
parentspec: Use test cases for validation (diff)
downloadrtems-central-eb5ef75379781bf94a097b3ffc60acc56270300a.tar.bz2
spec: Use code inspections
-rw-r--r--spec/acfg/val/appl-disable-filesystem.yml24
-rw-r--r--spec/acfg/val/disable-newlib-reentrancy.yml34
-rw-r--r--spec/acfg/val/max-file-descriptors.yml28
-rw-r--r--spec/testsuites/validation-acfg-0.yml6
4 files changed, 86 insertions, 6 deletions
diff --git a/spec/acfg/val/appl-disable-filesystem.yml b/spec/acfg/val/appl-disable-filesystem.yml
new file mode 100644
index 00000000..f89d9f09
--- /dev/null
+++ b/spec/acfg/val/appl-disable-filesystem.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/appl-disable-filesystem
+method: by-inspection
+references:
+- identifier: cpukit/include/rtems/confdefs/libio.h
+ hash: 2PF8S7RMgdgdPEe68H37pgxQ94KGMIlb5DULb6N0RHA=
+ type: file
+text: |
+ Defining ${../if/appl-disable-filesystem:/name} is mandatory for applications
+ using only the pre-qualified feature set. The reason is to get linker errors
+ in case such applications are linked if they depend on the files system
+ support. Thus no validation test case can be used. Inspection of the
+ referenced ${/glossary/sourcecode:/term} file showed that several data
+ structures are initialized with references to functions which are not in the
+ pre-qualified feature set, if ${../if/appl-disable-filesystem:/name} is not
+ defined. For the pre-qualified only build of RTEMS, this would lead to an
+ unresolved reference linker error. This shows that the
+ ${../req/appl-disable-filesystem} requirement is implemented as specified.
+type: validation
diff --git a/spec/acfg/val/disable-newlib-reentrancy.yml b/spec/acfg/val/disable-newlib-reentrancy.yml
new file mode 100644
index 00000000..2c37b427
--- /dev/null
+++ b/spec/acfg/val/disable-newlib-reentrancy.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/disable-newlib-reentrancy
+method: by-inspection
+references:
+- identifier: cpukit/include/rtems/confdefs/extensions.h
+ hash: o1zTKlcoJAoVIQYziWnRhZFx8v1R7ntNmT1W7zfdA5A=
+ type: file
+- identifier: cpukit/include/rtems/confdefs/newlib.h
+ hash: wKlyOe7m5g4ThjUtsP2ujODiuZrOtK9qFBkMiCcFlxU=
+ type: file
+- identifier: cpukit/include/rtems/confdefs/threads.h
+ hash: B3GWt2DpJYAMe6qvc_kBODb4MFOOXcESQ2y4Jk4PIIY=
+ type: file
+text: |
+ Defining ${../if/disable-newlib-reentrancy:/name} is mandatory for
+ applications using only the pre-qualified feature set. The reason is to get
+ linker errors in case such applications are linked if they depend on the
+ Newlib reentrancy support. Thus no validation test case can be used.
+ Inspection of the referenced ${/glossary/sourcecode:/term} files showed that
+ an initial extension set is registered, if
+ ${../if/disable-newlib-reentrancy:/name} is not defined. For the
+ pre-qualified only build of RTEMS, this would lead to an unresolved reference
+ linker error. If ${../if/disable-newlib-reentrancy:/name} is defined, then
+ the ``__getreent()`` function is not provided by RTEMS. If
+ ${../if/disable-newlib-reentrancy:/name} is defined, then the Newlib
+ reentrancy structure is not contained in the ${/glossary/tcb:/term}. This
+ shows that the ${../req/disable-newlib-reentrancy} requirement is implemented
+ as specified.
+type: validation
diff --git a/spec/acfg/val/max-file-descriptors.yml b/spec/acfg/val/max-file-descriptors.yml
new file mode 100644
index 00000000..b2a12040
--- /dev/null
+++ b/spec/acfg/val/max-file-descriptors.yml
@@ -0,0 +1,28 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: validation
+ uid: ../req/max-file-descriptors
+method: by-inspection
+references:
+- identifier: cpukit/include/rtems/confdefs/libio.h
+ hash: 2PF8S7RMgdgdPEe68H37pgxQ94KGMIlb5DULb6N0RHA=
+ type: file
+- identifier: cpukit/libcsupport/src/libiozeroiops.c
+ hash: 87rsMIa1Z9n0hvw4xH06KrpdmUXetjWvHF25Z8hw1do=
+ type: file
+text: |
+ Setting ${../if/max-file-descriptors:/name} to zero is mandatory for
+ applications using only the pre-qualified feature set. The reason is to get
+ linker errors in case such applications are linked if they depend on file
+ descriptors. Thus no validation test case can be used. Inspection of the
+ referenced ${/glossary/sourcecode:/term} file showed that no file descriptor
+ table is statically allocated, if ${../if/max-file-descriptors:/name} is
+ defined to zero, otherwise a table with an entry count specified by the
+ option is statically allocated. For a not pre-qualified only build of RTEMS,
+ a file descriptor table with zero entries is provided by an RTEMS library.
+ This shows that the ${../req/max-file-descriptors} requirement is implemented
+ as specified.
+type: validation
diff --git a/spec/testsuites/validation-acfg-0.yml b/spec/testsuites/validation-acfg-0.yml
index 9a97c6d2..5d9bd6df 100644
--- a/spec/testsuites/validation-acfg-0.yml
+++ b/spec/testsuites/validation-acfg-0.yml
@@ -5,12 +5,6 @@ enabled-by: true
links:
- role: requirement-refinement
uid: /req/test-suites
-- role: validation
- uid: /acfg/req/max-file-descriptors
-- role: validation
- uid: /acfg/req/disable-newlib-reentrancy
-- role: validation
- uid: /acfg/req/appl-disable-filesystem
test-brief: |
This validation test suite is used to validate the default value of
application configuration options taking the optional BSP provided settings