Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,25 @@ on:
types: [checks_requested]

jobs:
docs-verify:
uses: eclipse-score/cicd-workflows/.github/workflows/docs-verify.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0
permissions:
pull-requests: write
contents: read
with:
bazel-docs-verify-target: "--lockfile_mode=error //:docs_check"
run-tests:
uses: eclipse-score/cicd-workflows/.github/workflows/tests.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0
permissions:
contents: read
pull-requests: read
with:
bazel-target: 'test --lockfile_mode=error //... --config x86_64-linux'
upload-name: 'bazel-testlogs'
build-docs:
uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@main
needs: run-tests
if: ${{ needs.run-tests.result == 'success' }}
uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0
permissions:
contents: write
pages: write
Expand Down
10 changes: 10 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,13 @@ Decision records
:glob:

design_decisions/explicit_init.rst

Requirements
------------

.. toctree::
:maxdepth: 1
:glob:

logging/requirements/index.rst
logging/stats.rst
37 changes: 37 additions & 0 deletions docs/logging/requirements/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

Requirements
############

.. document:: Logging Requirements
:id: doc__logging_requirements
:status: valid
:safety: ASIL_B
:security: NO
:realizes: wp__requirements_comp

Component Requirements
----------------------

.. comp_req:: Key Naming
:id: comp_req__logging__something
:reqtype: Functional
:security: NO
:safety: ASIL_B
:satisfies: feat_req__logging__timestamping_original
:status: valid
:belongs_to: comp__logging

The component shall accept keys that consist solely of alphanumeric characters, underscores, or dashes.
116 changes: 116 additions & 0 deletions docs/logging/stats.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
.. _log_statistics:

Component Requirements Statistics
=================================

Overview
--------

.. needpie:: Requirements Status
:labels: not valid, valid but not tested, valid and tested
:colors: red,yellow, green

type == 'comp_req' and status == 'invalid'
type == 'comp_req' and testlink == '' and (status == 'valid' or status == 'invalid')
type == 'comp_req' and testlink != '' and (status == 'valid' or status == 'invalid')

In Detail
---------

.. grid:: 2
:class-container: score-grid

.. grid-item-card::

.. needpie:: Requirements marked as Valid
:labels: not valid, valid
:colors: red, orange, green

type == 'comp_req' and status == 'invalid'
type == 'comp_req' and status == 'valid'

.. grid-item-card::

.. needpie:: Requirements with Codelinks
:labels: no codelink, with codelink
:colors: red, green

type == 'comp_req' and source_code_link == ''
type == 'comp_req' and source_code_link != ''

.. grid-item-card::

.. needpie:: Test Results
:labels: passed, failed, skipped
:colors: green, red, orange

type == 'testcase' and result == 'passed'
type == 'testcase' and result == 'failed'
type == 'testcase' and result == 'skipped'

.. grid:: 2

.. grid-item-card::

Failed Tests

*Hint: This table should be empty. Before a PR can be merged all tests have to be successful.*

.. needtable:: FAILED TESTS
:filter: result == "failed"
:tags: TEST
:columns: name as "testcase";result;fully_verifies;partially_verifies;test_type;derivation_technique;id as "link"

.. grid-item-card::

Skipped / Disabled Tests

.. needtable:: SKIPPED/DISABLED TESTS
:filter: result != "failed" and result != "passed"
:tags: TEST
:columns: name as "testcase";result;fully_verifies;partially_verifies;test_type;derivation_technique;id as "link"




All passed Tests
-----------------

.. needtable:: SUCCESSFUL TESTS
:filter: result == "passed"
:tags: TEST
:columns: name as "testcase";result;fully_verifies;partially_verifies;test_type;derivation_technique;id as "link"


Details About Testcases
------------------------

.. needpie:: Test Types Used In Testcases
:labels: static-code-analysis, structural-statement-coverage, structural-branch-coverage, walkthrough, inspection, interface-test, requirements-based, resource-usage, control-flow-analysis, data-flow-analysis, fault-injection, struct-func-cov, struct-call-cov
:legend:

type == 'testcase' and test_type == 'static-code-analysis'
type == 'testcase' and test_type == 'structural-statement-coverage'
type == 'testcase' and test_type == 'structural-branch-coverage'
type == 'testcase' and test_type == 'walkthrough'
type == 'testcase' and test_type == 'inspection'
type == 'testcase' and test_type == 'interface-test'
type == 'testcase' and test_type == 'requirements-based'
type == 'testcase' and test_type == 'resource-usage'
type == 'testcase' and test_type == 'control-flow-analysis'
type == 'testcase' and test_type == 'data-flow-analysis'
type == 'testcase' and test_type == 'fault-injection'
type == 'testcase' and test_type == 'struct-func-cov'
type == 'testcase' and test_type == 'struct-call-cov'


.. needpie:: Derivation Techniques Used In Testcases
:labels: requirements-analysis, boundary-values, equivalence-classes, fuzz-testing, error-guessing, explorative-testing
:legend:

type == 'testcase' and derivation_technique == 'requirements-analysis'
type == 'testcase' and derivation_technique == 'boundary-values'
type == 'testcase' and derivation_technique == 'equivalence-classes'
type == 'testcase' and derivation_technique == 'fuzz-testing'
type == 'testcase' and derivation_technique == 'error-guessing'
type == 'testcase' and derivation_technique == 'explorative-testing'
11 changes: 11 additions & 0 deletions score/datarouter/test/ut/ut_logging/test_logparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@ TEST(LogParserTest, SingleMessageHandler)

TEST(LogParserTest, FilterForwarderWithSingleForwarder)
{
RecordProperty("PartiallyVerifies", "comp_req__logging__something");
RecordProperty("ASIL", "B");
RecordProperty("Description", "hello");
RecordProperty("TestType", "requirements-based");
RecordProperty("DerivationTechnique", "requirements-analysis");

using namespace std::chrono_literals;
const std::string type_params = MakeTypeParams<TestMessage>(DltidT{"ECU4"}, DltidT{"APP0"});

Expand All @@ -136,6 +142,11 @@ TEST(LogParserTest, FilterForwarderWithSingleForwarder)
// There is no expectation or assertion we can set to check this condition.
TEST(LogParserTest, TestWrongTypeParameter)
{
RecordProperty("PartiallyVerifies", "feat_req__logging__timestamping_original");
RecordProperty("ASIL", "B");
RecordProperty("Description", "hello");
RecordProperty("TestType", "requirements-based");
RecordProperty("DerivationTechnique", "requirements-analysis");
LogParser parser(CreateTestNvConfig());
const std::string type_params = MakeWrongTypeParams<TestMessage>(DltidT{"ECU0"}, DltidT{"APP0"});
constexpr BufsizeT kTestMessageIndex = 1234;
Expand Down
Loading