LCOV - code coverage report
Current view: top level - src - match_checksum_lock_pattern.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 90.0 % 10 9
Test Date: 2026-03-31 13:51:38 Functions: 100.0 % 1 1
Branches: 87.5 % 8 7

             Branch data     Line data    Source code
       1                 :             : #include "precizer.h"
       2                 :             : 
       3                 :             : /**
       4                 :             :  * @brief Decide whether to protect a relative path from checksum recalculation
       5                 :             :  *
       6                 :             :  * Compares the path against PCRE2 patterns supplied via --lock-checksum=
       7                 :             :  *
       8                 :             :  * @param[in] relative_path Relative path to test
       9                 :             :  * @return LOCK_CHECKSUM if matched, DO_NOT_LOCK_CHECKSUM if not,
      10                 :             :  *         FAIL_REGEXP_LOCK_CHECKSUM on PCRE2 error
      11                 :             :  */
      12                 :        3348 : LockChecksum match_checksum_lock_pattern(const char *relative_path)
      13                 :             : {
      14         [ +  + ]:        3348 :         if(config->lock_checksum_pcre_compiled == NULL)
      15                 :             :         {
      16                 :             :                 // Nothing to lock
      17                 :        2724 :                 return(DO_NOT_LOCK_CHECKSUM);
      18                 :             :         }
      19                 :             : 
      20         [ +  + ]:        1252 :         for(int i = 0; config->lock_checksum_pcre_compiled[i] != NULL; ++i)
      21                 :             :         {
      22                 :         792 :                 REGEXP result = match_regexp(config->lock_checksum_pcre_compiled[i],relative_path);
      23                 :             : 
      24         [ +  + ]:         792 :                 if(MATCH == result)
      25                 :             :                 {
      26                 :             :                         // Lock that file checksum from recalculation
      27                 :         164 :                         return(LOCK_CHECKSUM);
      28                 :             : 
      29         [ -  + ]:         628 :                 } else if(REGEXP_ERROR == result){
      30                 :             : 
      31                 :           0 :                         return(FAIL_REGEXP_LOCK_CHECKSUM);
      32                 :             : 
      33                 :             :                 }
      34                 :             :         }
      35                 :             : 
      36                 :             :         // No regexp matched
      37                 :         460 :         return(DO_NOT_LOCK_CHECKSUM);
      38                 :             : }
        

Generated by: LCOV version 2.0-1