LCOV - code coverage report
Current view: top level - waltz/grpc - fuzz_grpc_codec.c (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 7 7 100.0 %
Date: 2025-08-05 05:04:49 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #if !FD_HAS_HOSTED
       2             : #error "This target requires FD_HAS_HOSTED"
       3             : #endif
       4             : 
       5             : #include <stdlib.h>
       6             : 
       7             : #include "fd_grpc_codec.h"
       8             : 
       9             : int
      10             : LLVMFuzzerInitialize( int *argc,
      11          12 :                       char ***argv ) {
      12          12 :   putenv( "FD_LOG_BACKTRACE=0" );
      13          12 :   fd_boot( argc, argv );
      14          12 :   (void) atexit( fd_halt );
      15          12 :   fd_log_level_core_set( 4 );
      16          12 :   return 0;
      17          12 : }
      18             : 
      19             : int
      20             : LLVMFuzzerTestOneInput( uchar const *data,
      21             :                         ulong        size ) {
      22             :   fd_grpc_resp_hdrs_t resp_hdrs;
      23             :   resp_hdrs.h2_status = 0U;
      24             :   fd_h2_hdr_matcher_t matcher[1];
      25             :   FD_TEST( fd_h2_hdr_matcher_init( matcher, 1UL )==matcher );
      26             :   int rc = fd_grpc_h2_read_response_hdrs( &resp_hdrs, matcher, data, size );
      27             : 
      28             :   /* Accept only the two documented outcomes */
      29             :   FD_TEST( (rc==FD_H2_SUCCESS) | (rc==FD_H2_ERR_PROTOCOL) );
      30             : 
      31             :   if( rc==FD_H2_SUCCESS ) {
      32             :     /* Header fields must be in valid ranges on success */
      33             :     FD_TEST( resp_hdrs.grpc_status<=FD_GRPC_STATUS_UNAUTHENTICATED );
      34             :     FD_TEST( resp_hdrs.grpc_msg_len<=sizeof(resp_hdrs.grpc_msg));
      35             :   }
      36             : 
      37             :   return 0;
      38             : }

Generated by: LCOV version 1.14