static void add_blk(struct blist *blist) { struct blk *blk; fail_unless((blk=blk_alloc())!=NULL); blk->fingerprint=prng_next64(); prng_md5sum(blk->md5sum); blk->savepath=prng_next64(); blist_add_blk(blist, blk); }
static char *gen_endfile_str(void) { uint64_t bytes; uint8_t checksum[MD5_DIGEST_LENGTH]; bytes=prng_next64(); prng_md5sum(checksum); return get_endfile_str(bytes, checksum); }
static void add_blk_and_data_files(struct blist *blist, uint64_t save_path) { struct blk *blk; fail_unless((blk=blk_alloc())!=NULL); blk->fingerprint=prng_next64(); prng_md5sum(blk->md5sum); blk->savepath=save_path; blist_add_blk(blist, blk); }
void build_sparse_index(const char *path, int manifests, int fingerprints) { struct fzp *fzp; fail_unless(!build_path_w(path)); fail_unless((fzp=fzp_gzopen(path, "wb"))!=NULL); for(int m=0; m<manifests; m++) { char mpath[256]; snprintf(mpath, sizeof(mpath), "some/manifest/%d", m); fzp_printf(fzp, "%c%04lX%s\n", CMD_MANIFEST, strlen(mpath), mpath); for(int f=0; f<fingerprints; f++) fail_unless(!to_fzp_fingerprint(fzp, prng_next64())); } fail_unless(!fzp_close(&fzp)); }