Skip to content

Commit

Permalink
Merge pull request elastic#73 from algernon/merge/h/persist-state-des…
Browse files Browse the repository at this point in the history
…troy-cleanup

persist-state: Clean up the temporary file upon destroy
  • Loading branch information
bazsi committed Jan 22, 2014
2 parents 891b3a4 + 2bda049 commit 358aa0b
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
1 change: 1 addition & 0 deletions lib/persist-state.c
Original file line number Diff line number Diff line change
Expand Up @@ -873,6 +873,7 @@ _destroy(PersistState *self)
close(self->fd);
if (self->current_map)
munmap(self->current_map, self->current_size);
unlink(self->temp_filename);

g_mutex_free(self->mapped_lock);
g_cond_free(self->mapped_release_cond);
Expand Down
3 changes: 0 additions & 3 deletions tests/unit/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,3 @@ tests_unit_test_persist_state_LDADD = \
tests_unit_test_value_pairs_LDADD = \
$(TEST_LDADD) $(unit_test_extra_modules)

CLEANFILES += \
test_values.persist \
test_values.persist-
29 changes: 29 additions & 0 deletions tests/unit/test_persist_state.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,33 @@ test_values(void)
cancel_and_destroy_persist_state(state);
}

void
test_persist_state_temp_file_cleanup_on_cancel()
{
PersistState *state = clean_and_create_persist_state_for_test("test_persist_state_temp_file_cleanup_on_cancel.persist");

cancel_and_destroy_persist_state(state);

assert_true(access("test_persist_state_temp_file_cleanup_on_cancel.persist", F_OK) != 0,
"persist file is removed on destroy()");
assert_true(access("test_persist_state_temp_file_cleanup_on_cancel.persist-", F_OK) != 0,
"backup persist file is removed on destroy()");
}

void
test_persist_state_temp_file_cleanup_on_commit_destroy()
{
PersistState *state = clean_and_create_persist_state_for_test("test_persist_state_temp_file_cleanup_on_commit_destroy.persist");

commit_and_destroy_persist_state(state);

assert_true(access("test_persist_state_temp_file_cleanup_on_commit_destroy.persist", F_OK) != 0,
"persist file is removed on destroy(), even after commit");
assert_true(access("test_persist_state_temp_file_cleanup_on_commit_destroy.persist-", F_OK) != 0,
"backup persist file is removed on destroy(), even after commit");
}


int
main(int argc, char *argv[])
{
Expand All @@ -133,6 +160,8 @@ main(int argc, char *argv[])
app_startup();
test_values();
test_persist_state_remove_entry();
test_persist_state_temp_file_cleanup_on_cancel();
test_persist_state_temp_file_cleanup_on_commit_destroy();

return 0;
}

0 comments on commit 358aa0b

Please sign in to comment.