uint8_t do_access(uint64_t lv,uint32_t ts,char *ptr) { uint32_t inode; EAT(ptr,lv,'('); GETU32(inode,ptr); EAT(ptr,lv,')'); return fs_access(ts,inode); }
int do_access(const char *filename,uint64_t lv,uint32_t ts,char *ptr) { uint32_t inode; EAT(ptr,filename,lv,'('); GETU32(inode,ptr); EAT(ptr,filename,lv,')'); return fs_access(ts,inode); }
void fs_test(int tid) { fun_string f[25]; unsigned char d1[] = "kungfu\0kaleidescopes", d2[] = "funintheSun"; size_t count; printf("[%d] START: FUN STRING test!\n", tid); assert(f[1] = fs_new(d1, 20, 0)); assert(f[2] = fs_new(d1, 20, 0)); assert(f[3] = fs_new(d2, 11, 0)); assert(!fs_cmp(f[1], f[2])); assert(fs_cmp(f[1], f[3])); assert(f[4] = fs_resize(f[1], 10)); assert(f[5] = fs_resize(f[2], 15)); assert(f[6] = fs_resize(f[3], 10)); assert(fs_cmp(f[4], f[5])); assert(!fs_ncmp(f[4], f[5], 10)); assert(!fs_ncmp(f[3], f[6], 10)); assert(f[7] = fs_access(f[1], 3, 10)); assert(f[8] = fs_access(f[4], 3, 5)); assert(f[9] = fs_access(f[5], 5, 10)); assert(!fs_ncmp(f[7], f[8], 3)); assert(fs_cmp(f[7], f[8])); assert(fs_ncmp(f[7], f[9], 5)); assert(10 == fs_len(f[7])); assert(5 == fs_len(f[8])); assert(10 == fs_len(f[7])); assert(20 == fs_len(f[1])); assert(10 == fs_len(f[4])); assert(11 == fs_len(f[3])); assert(f[10] = fs_set(f[1], '9', 40)); assert(f[11] = fs_set(f[1], '9', 50)); assert(f[12] = fs_set(f[1], 'A', 40)); assert(!fs_ncmp(f[10], f[11], 30)); assert(fs_cmp(f[10], f[11])); assert(fs_cmp(f[10], f[12])); assert(fs_cmp(f[1], f[10])); assert(f[13] = fs_dup(f[1])); assert(f[14] = fs_dup(f[2])); assert(f[15] = fs_dup(f[4])); assert(!fs_cmp(f[13], f[14])); assert(!fs_ncmp(f[13], f[15], 5)); assert(fs_cmp(f[13], f[6])); assert(f[16] = fs_chr(f[1], 'g')); assert(f[17] = fs_chr(f[4], 'g')); assert(f[18] = fs_rchr(f[1], 'g')); assert(!fs_ncmp(f[16], f[17], 3)); assert(!fs_cmp(f[16], f[18])); assert(fs_cmp(f[16], f[7])); assert(f[19] = fs_cat(f[3], f[16])); assert(f[20] = fs_cat(f[3], f[18])); assert(f[21] = fs_ncat(f[3], f[17], 2)); assert(!fs_cmp(f[19], f[20])); assert(fs_cmp(f[19], f[21])); assert(!fs_ncmp(f[19], f[21], 13)); // To test // cat // ncat fs_free(&f[1]); fs_free(&f[2]); fs_free(&f[3]); fs_free(&f[4]); fs_free(&f[5]); fs_free(&f[6]); fs_free(&f[7]); fs_free(&f[8]); fs_free(&f[9]); fs_free(&f[10]); fs_free(&f[11]); fs_free(&f[12]); fs_free(&f[13]); fs_free(&f[14]); fs_free(&f[15]); fs_free(&f[16]); fs_free(&f[17]); fs_free(&f[18]); fs_free(&f[19]); fs_free(&f[20]); fs_free(&f[21]); printf("[%d] Strings destroyed!\n", tid); printf("[%d] END: FUN STRING Test!\n\n", tid); return; }