LCOV - code coverage report
Current view: top level - progs - crc32c_sum.cxx (source / functions) Coverage Total Hit
Test: coverage.info Lines: 0.0 % 21 0
Test Date: 2025-11-11 10:26:08 Functions: 0.0 % 1 0

            Line data    Source code
       1              : //
       2              : // compute CRC32C checksum
       3              : //
       4              : 
       5              : #include <stdio.h>
       6              : #include <stdlib.h>
       7              : #include <unistd.h>
       8              : #include "crc32c.h"
       9              : 
      10              : #define SIZE (262144*3)
      11              : #define CHUNK SIZE
      12              : 
      13            0 : int main(int argc, char **argv)
      14              : {
      15              :     char *buf;
      16              :     ssize_t got;
      17              :     size_t off, n;
      18              :     uint32_t crc;
      19              : 
      20              :     (void)argv;
      21            0 :     crc = 0;
      22            0 :     buf = (char*)malloc(SIZE);
      23            0 :     if (buf == NULL) {
      24            0 :         fputs("out of memory", stderr);
      25            0 :         return 1;
      26              :     }
      27            0 :     while ((got = read(0, buf, SIZE)) > 0) {
      28            0 :         off = 0;
      29              :         do {
      30            0 :             n = (size_t)got - off;
      31            0 :             if (n > CHUNK)
      32            0 :                 n = CHUNK;
      33            0 :             crc = argc > 1 ? crc32c_sw(crc, buf + off, n) :
      34            0 :                              crc32c(crc, buf + off, n);
      35            0 :             off += n;
      36            0 :         } while (off < (size_t)got);
      37              :     }
      38            0 :     free(buf);
      39            0 :     if (got == -1) {
      40            0 :         fputs("read error\n", stderr);
      41            0 :         return 1;
      42              :     }
      43            0 :     printf("%08x\n", crc);
      44            0 :     return 0;
      45              : }
      46              : 
      47              : /* emacs
      48              :  * Local Variables:
      49              :  * tab-width: 8
      50              :  * c-basic-offset: 3
      51              :  * indent-tabs-mode: nil
      52              :  * End:
      53              :  */
        

Generated by: LCOV version 2.0-1