int unset(entry_t **list, char *args) { char **table = NULL; size_t size = 0, i = 0; if (list == NULL || args == NULL) return EXIT_FAILURE; table = split(args, ' ', &size); if (table == NULL || size == 1) { if (table != NULL) { free(*table); free(table); } return EXIT_FAILURE; } entry_remove(list, table[1]); for (i = 0; i < size; i++) free(table[i]); free(table); return EXIT_SUCCESS; }
/*********************************************** Delete a character's entry return RET_NOK on error ***********************************************/ ret_code_t entry_destroy(const char * table, const char * file) { char * filename; filename = strconcat(table,"/",file,NULL); entry_remove(filename); free(filename); return RET_OK; }
char * test_entry_add_to_dir_with_too_many_files() { int i; struct entry *d, *f; d = entry_create_dir("test dir", &test_user, PERM_RD | PERM_WR, PERM_RD); for (i = 0; i < MAX_FILES; i++) { f = entry_create_file("test file", &test_user, PERM_RD, PERM_RD); entry_add_to_dir(d, f); } f = entry_create_file("test file", &test_user, PERM_RD, PERM_RD); mu_assert("entry_add_to_dir should return too many files", entry_add_to_dir(d, f) == - E_TOO_MANY_FILES); entry_remove(d); entry_remove(f); return 0; }
char * test_entry_add_to_dir_recursivly() { struct entry *d1, *d2; d1 = entry_create_dir("test dir", &test_user, PERM_RD | PERM_WR, PERM_RD); d2 = entry_create_dir("test dir", &test_user, PERM_RD | PERM_WR, PERM_RD); entry_add_to_dir(d1, d2); mu_assert("entry_add_to_dir should return invalid type", entry_add_to_dir(d2, d1) == - E_INVALID_TYPE); entry_remove(d1); return 0; }
char * test_entry_rw_file_with_invalid_type() { char buf[100]; struct entry *d; d = entry_create_dir("test dir", &test_user, PERM_RD | PERM_WR, PERM_RD); mu_assert("entry_write_file: rv", entry_write_file(d, "t") == - E_INVALID_TYPE); mu_assert("entry_read_file: rv", entry_read_file(d, buf) == - E_INVALID_TYPE); entry_remove(d); return 0; }
char * test_entry_rw_file() { char buf[100]; char *test_content = "foobar"; struct entry *f; f = entry_create_file("test file", &test_user, PERM_RD | PERM_WR, PERM_RD); mu_assert("entry_write_file: rv", entry_write_file(f, test_content) == 6); mu_assert("entry_read_file: rv", entry_read_file(f, buf) == 6); mu_assert("entry content", strcmp(buf, test_content) == 0); entry_remove(f); return 0; }