Spider2/tests/hset_iter.c

35 lines
747 B
C

#include <stdbool.h>
#include <string.h>
#include "util.h"
#include "unit.h"
size_t int_hash(int *ptr) {
return *ptr;
}
int tests_hset_iter(int argc, char **argv) {
int_hset_t hset1, hset2;
hset_init(int_hset_t, hset1, int_hash, NULL);
hset_init(int_hset_t, hset2, int_hash, NULL);
for(int i = 0; i < 1000; i++)
hset_add(hset1, i);
void *saveptr = NULL;
int *data;
while ((data = hset_iter(hset2, saveptr)) != NULL)
hset_add(hset2, *data);
char msgbuf[100];
for(int i = 0; i < 1000; i++) {
snprintf(msgbuf, sizeof(msgbuf), "%d not in hset2", i);
chi_assert(msgbuf, hset_find(hset2, i));
}
hset_destroy(hset2);
hset_destroy(hset1);
return 0;
}