summaryrefslogtreecommitdiff
path: root/test/test_table.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_table.c')
-rw-r--r--test/test_table.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/test/test_table.c b/test/test_table.c
index e6c18b0..d459de0 100644
--- a/test/test_table.c
+++ b/test/test_table.c
@@ -31,7 +31,7 @@ char *test_table_list(void) {
struct table_entry *next = calloc(sizeof(struct table_entry), 1);
next->key = 0xffffffff;
entry_append(root, next);
- mu_assert("Entry not inserted", root->next->key == 0xffffffff);
+ mu_assert("Table entry not inserted", root->next->key == 0xffffffff);
entry_free(root);
return NULL;
}
@@ -43,9 +43,37 @@ char *test_table_elif(void) {
stream_write(s, "\xff\xff\xff\xff\x01\x00\x41\x00\x00\x00", 10);
stream_rewind(s);
read_elif(s, root);
- mu_assert("Entry not inserted", root->next != NULL);
- mu_assert("Filename handling failed", !strcmp(root->next->filename, "A"));
+ mu_assert("Table entry not inserted (eliF)", root->next != NULL);
+ mu_assert("Filename handling failure", !strcmp(root->next->filename, "A"));
+ free(root->next->filename);
+ root->next->filename = NULL;
+ stream_rewind(s);
+ read_elif(s, root);
+ mu_assert("Existing entry ignored (eliF)", root->next->next == NULL);
entry_free(root);
stream_free(s);
return NULL;
}
+
+
+char *test_table_file(void) {
+ struct stream *s = stream_new(0x100);
+ struct table_entry *root = calloc(sizeof(struct table_entry), 1);
+ stream_write(s, "\x61\x64\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
+ "\xff\xff\x73\x65\x67\x6d\x1c\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x66"
+ "\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x74\x69\x6d\x65\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00", 113);
+ stream_rewind(s);
+ read_file(s, root);
+ mu_assert("Table entry not inserted (eliF)", root->next != NULL);
+ mu_assert("Key read failure", root->next->key == 0xffffffff);
+ root->next->ctime = 420;
+ stream_rewind(s);
+ read_file(s, root);
+ mu_assert("Existing entry ignored (eliF)", root->next->ctime == 0);
+ return NULL;
+}