END_TEST START_TEST (test_selector) { set_fail_freq(1000000); freesasa_parameters p = freesasa_default_parameters; p.shrake_rupley_n_points = 10; FILE *file = fopen(DATADIR "1ubq.pdb", "r"); freesasa_structure *s = freesasa_structure_from_pdb(file, NULL, 0); freesasa_result *result = freesasa_calc_structure(s, NULL); double area; char name[FREESASA_MAX_SELECTION_NAME]; freesasa_set_verbosity(FREESASA_V_SILENT); for (int i = 1; i < 17; ++i) { /* This is a pretty short expression. Have not verified that it's actually exactly 17 memory allocations, but we have success with a frequencey of 18, and 17 seems about right. */ set_fail_freq(i); ck_assert_int_eq(freesasa_select_area("s, resn ALA and not resi 1-20", name, &area, s, result), FREESASA_FAIL); // this expression should come across most allocations } freesasa_set_verbosity(FREESASA_V_NORMAL); fclose(file); freesasa_result_free(result); freesasa_structure_free(s); }
END_TEST START_TEST (test_memerr) { FILE *file = fopen(DATADIR "1ubq.pdb","r"); freesasa_structure *structure = freesasa_structure_from_pdb(file, NULL, 0); freesasa_result *result = freesasa_calc_structure(structure, NULL); freesasa_node *rn; freesasa_set_verbosity(FREESASA_V_SILENT); rn = freesasa_tree_new(); for (int i = 1; i < 200; ++i) { int ret; set_fail_after(i); ret = freesasa_tree_add_result(rn, result, structure, "test"); set_fail_after(0); ck_assert_int_eq(ret, FREESASA_FAIL); } freesasa_set_verbosity(FREESASA_V_NORMAL); freesasa_structure_free(structure); freesasa_result_free(result); fclose(file); } END_TEST
static void teardown(void) { freesasa_structure_free(structure); freesasa_result_free(result); freesasa_strvp_free(svp); }