LCOV - code coverage report
Current view: top level - util/can_rcv_buffer.c (source / functions) Coverage Total Hit
Test: coverage-filtered.info Lines: 100.0 % 25 25
Test Date: 2026-04-29 08:47:32 Functions: 100.0 % 8 8
Branches: 100.0 % 10 10
MC/DC: 100.0 % 10 10

             Branch data      MC/DC data    Line data    Source code
       1                 :              :             : #include <stddef.h>
       2                 :              :             : 
       3                 :              :             : #include "common.h"
       4                 :              :             : 
       5                 :              :             : #include "can.h"
       6                 :              :             : #include "can_rcv_buffer.h"
       7                 :              :             : #include "safe_ring_buffer.h"
       8                 :              :             : 
       9                 :              :             : static srb_ctx_t buf;
      10                 :              :             : static bool overflow_flag;
      11                 :              :             : 
      12                 :              :           2 : void rcvb_init(void *pool, size_t pool_size) {
      13         [ +  + ]:      [ T  F ]:           2 :         w_assert(pool);
      14                 :              :             : 
      15                 :              :           1 :         srb_init(&buf, pool, pool_size, sizeof(can_msg_t));
      16                 :              :           1 :         overflow_flag = false;
      17                 :              :           1 : }
      18                 :              :             : 
      19                 :              :         757 : void rcvb_push_message(const can_msg_t *msg) {
      20         [ +  + ]:      [ T  F ]:         757 :         w_assert(msg);
      21                 :              :             : 
      22         [ +  + ]:      [ T  F ]:         756 :         if (srb_push(&buf, (void *)msg) == W_OVERFLOW) {
      23                 :              :         198 :                 overflow_flag = true;
      24                 :              :             :         }
      25                 :              :         756 : }
      26                 :              :             : 
      27                 :              :         756 : bool rcvb_has_overflowed(void) {
      28                 :              :         756 :         return overflow_flag;
      29                 :              :             : }
      30                 :              :             : 
      31                 :              :         198 : void rcvb_clear_overflow_flag(void) {
      32                 :              :         198 :         overflow_flag = false;
      33                 :              :         198 : }
      34                 :              :             : 
      35                 :              :         198 : bool rcvb_is_full(void) {
      36                 :              :         198 :         return srb_is_full(&buf);
      37                 :              :             : }
      38                 :              :             : 
      39                 :              :        1012 : bool rcvb_is_empty(void) {
      40                 :              :        1012 :         return srb_is_empty(&buf);
      41                 :              :             : }
      42                 :              :             : 
      43                 :              :         500 : w_status_t rcvb_pop_message(can_msg_t *msg) {
      44         [ +  + ]:      [ T  F ]:         500 :         w_assert(msg);
      45                 :              :             : 
      46                 :              :         499 :         return srb_pop(&buf, (void *)msg);
      47                 :              :             : }
      48                 :              :             : 
      49                 :              :        1001 : w_status_t rcvb_peek_message(can_msg_t *msg) {
      50         [ +  + ]:      [ T  F ]:        1001 :         w_assert(msg);
      51                 :              :             : 
      52                 :              :        1000 :         return srb_peek(&buf, (void *)msg);
      53                 :              :             : }
        

Generated by: LCOV version 2.0-1