LCOV - code coverage report
Current view: top level - flamenco/stakes - test_stake_delegations_util.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 26 26 100.0 %
Date: 2026-11-12 04:25:03 Functions: 17 21 81.0 %

          Line data    Source code
       1             : #ifndef HEADER_fd_src_flamenco_stakes_test_stake_delegations_util_h
       2             : #define HEADER_fd_src_flamenco_stakes_test_stake_delegations_util_h
       3             : 
       4             : #include "fd_stake_delegations.h"
       5             : 
       6             : /* Test-only introspection.  Production code should depend on delegation
       7             :    behavior, not the selected storage tier. */
       8             : 
       9             : static inline ulong
      10         126 : test_stake_delegations_base_cnt( fd_stake_delegations_t const * stake_delegations ) {
      11         126 :   ulong cnt = 0UL;
      12         126 :   fd_stake_delegations_iter_t iter_[1];
      13         126 :   for( fd_stake_delegations_iter_t * iter =
      14         126 :          fd_stake_delegations_iter_init( iter_, stake_delegations );
      15         687 :        !fd_stake_delegations_iter_done( iter );
      16         561 :        fd_stake_delegations_iter_next( iter ) ) {
      17         561 :     cnt++;
      18         561 :   }
      19         126 :   return cnt;
      20         126 : }
      21             : 
      22             : static inline int
      23             : test_stake_delegations_find_copy( fd_stake_delegations_t const * stake_delegations,
      24             :                                   fd_pubkey_t const *            stake_account,
      25       13764 :                                   fd_stake_delegation_t *        out ) {
      26       13764 :   fd_stake_delegations_iter_t iter_[1];
      27       13764 :   for( fd_stake_delegations_iter_t * iter =
      28       13764 :          fd_stake_delegations_iter_init( iter_, stake_delegations );
      29       34947 :        !fd_stake_delegations_iter_done( iter );
      30       31548 :        fd_stake_delegations_iter_next( iter ) ) {
      31       31548 :     fd_stake_delegation_t const * ele = fd_stake_delegations_iter_ele( iter );
      32       31548 :     if( FD_LIKELY( memcmp( ele->stake_account.key, stake_account->key, sizeof(fd_pubkey_t) ) ) ) continue;
      33       10365 :     if( out ) *out = *ele;
      34       10365 :     return 1;
      35       31548 :   }
      36        3399 :   return 0;
      37       13764 : }
      38             : 
      39             : static inline int
      40             : test_stake_delegations_contains( fd_stake_delegations_t const * stake_delegations,
      41         168 :                                  fd_pubkey_t const *            stake_account ) {
      42             :   return test_stake_delegations_find_copy( stake_delegations, stake_account, NULL );
      43         168 : }
      44             : 
      45             : #endif /* HEADER_fd_src_flamenco_stakes_test_stake_delegations_util_h */

Generated by: LCOV version 1.14