END_TEST START_TEST(test_checksum_write_read) { char *new_file = solv_dupjoin(test_globals.tmpdir, "/test_checksum_write_read", NULL); build_test_file(new_file); unsigned char cs_computed[CHKSUM_BYTES]; unsigned char cs_read[CHKSUM_BYTES]; FILE *fp = fopen(new_file, "r"); checksum_fp(cs_computed, fp); // fails, file opened read-only: fail_unless(checksum_write(cs_computed, fp) == 1); fclose(fp); fp = fopen(new_file, "r+"); fail_if(checksum_write(cs_computed, fp)); fclose(fp); fp = fopen(new_file, "r"); fail_if(checksum_read(cs_read, fp)); fail_if(checksum_cmp(cs_computed, cs_read)); fclose(fp); g_free(new_file); }
static int can_use_repomd_cache(FILE *fp_solv, unsigned char cs_repomd[CHKSUM_BYTES]) { unsigned char cs_cache[CHKSUM_BYTES]; if (fp_solv && !checksum_read(cs_cache, fp_solv) && !checksum_cmp(cs_cache, cs_repomd)) return 1; return 0; }