LCOV - code coverage report
Current view: top level - libs/bsw/uds/src/uds/base - Service.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 20 20
Test Date: 2026-02-24 11:21:15 Functions: 100.0 % 4 4

            Line data    Source code
       1              : // Copyright 2024 Accenture.
       2              : 
       3              : #include "uds/base/Service.h"
       4              : 
       5              : #include "uds/connection/IncomingDiagConnection.h"
       6              : #include "uds/session/DiagSession.h"
       7              : #include "uds/session/IDiagSessionManager.h"
       8              : 
       9              : namespace uds
      10              : {
      11           95 : Service::Service(uint8_t const service, DiagSession::DiagSessionMask const sessionMask)
      12              : : AbstractDiagJob(
      13           95 :     fService,
      14              :     1U,
      15              :     0U,
      16              :     AbstractDiagJob::VARIABLE_REQUEST_LENGTH,
      17              :     AbstractDiagJob::VARIABLE_RESPONSE_LENGTH,
      18           95 :     sessionMask)
      19              : {
      20           95 :     init(service);
      21           95 : }
      22              : 
      23           47 : Service::Service(
      24              :     uint8_t const service,
      25              :     uint8_t const requestPayloadLength,
      26              :     uint8_t const responseLength,
      27           47 :     DiagSession::DiagSessionMask const sessionMask)
      28           47 : : AbstractDiagJob(fService, 1U, 0U, requestPayloadLength, responseLength, sessionMask)
      29              : {
      30           47 :     init(service);
      31           47 : }
      32              : 
      33          142 : void Service::init(uint8_t const service)
      34              : {
      35          142 :     fService[0] = service;
      36          142 :     setDefaultDiagReturnCode(DiagReturnCode::ISO_SUBFUNCTION_NOT_SUPPORTED);
      37          142 : }
      38              : 
      39              : DiagReturnCode::Type
      40           21 : Service::verify(uint8_t const* const request, uint16_t const /* requestLength */)
      41              : {
      42           21 :     if (request[0] != fpImplementedRequest[0])
      43              :     {
      44            4 :         return DiagReturnCode::NOT_RESPONSIBLE;
      45              :     }
      46           17 :     if (!fAllowedSessions.match(getSession()))
      47              :     {
      48            1 :         return DiagReturnCode::ISO_SERVICE_NOT_SUPPORTED_IN_ACTIVE_SESSION;
      49              :     }
      50           16 :     return DiagReturnCode::OK;
      51              : }
      52              : 
      53              : } // namespace uds
        

Generated by: LCOV version 2.0-1