update tests

This commit is contained in:
Jeremy Tregunna 2016-04-26 22:52:20 -06:00
parent 6a7d90145c
commit ceec0d8521
No known key found for this signature in database
GPG Key ID: 1A042D7269D00255
2 changed files with 10 additions and 4 deletions

View File

@ -1,6 +1,7 @@
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "refuse.h"
static inline refhdr_t* _refuse_header(void* ptr)
@ -45,6 +46,7 @@ void refuse_reconcile(refuse_t* refuse)
if(hdr->retainCount == 0) {
// Iterate children, delete children
free(hdr);
hdr = NULL;
}
hdr = refdeque_pop_front(refuse->dec);
}

12
tests.c
View File

@ -71,12 +71,14 @@ START_TEST(test_refuse_retain_3)
refuse_t refuse = {0};
refuse_init(&refuse);
struct mock* t = refuse_alloc(&refuse, sizeof(struct mock));
refuse_set_dirty(&refuse, t);
refuse_retain(&refuse, t);
refhdr_t* hdr = (refhdr_t*)((char*)t - sizeof(refhdr_t));
ck_assert_int_eq(hdr->retainCount, 0);
refuse_retain(&refuse, t);
refuse_reconcile(&refuse);
ck_assert_int_eq(hdr->retainCount, 0);
refuse_set_dirty(&refuse, t);
ck_assert_int_eq(hdr->dirty, 1);
ck_assert_int_eq(hdr->retainCount, 1);
refuse_reconcile(&refuse);
ck_assert_int_eq(hdr->retainCount, 1);
}
END_TEST
@ -92,6 +94,8 @@ START_TEST(test_refuse_release_1)
refuse_release(&refuse, t);
ck_assert_int_eq(hdr->retainCount, 1);
refuse_reconcile(&refuse);
// This is not safe, as the memory has been deallocated, but we're
// in a controlled environment.
ck_assert_int_eq(hdr->retainCount, 0);
}
END_TEST