Archived
1
0
Fork 0
This repository has been archived on 2026-05-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
archived/test/t_queue.c
Henrik Hautakoski f46ae1970b Change indentation to follow the updated standard.
Alot of mixed indentation. use 4 chars wide soft tabs.
2011-03-19 12:28:48 +02:00

99 lines
1.3 KiB
C

#include <assert.h>
#include <stdlib.h>
#include "../src/queue.h"
static int map[512];
static queue_t q = NULL;
static void setup() {
int i;
if (!q)
assert(q = queue_init());
for(i=0; i < 512; i++)
queue_enqueue(q, &map[i]);
}
static void tierdown() {
if (q)
while(queue_dequeue(q));
}
void test_enqueue() {
setup();
assert(queue_num_items(q) == 512);
tierdown();
}
void test_dequeue() {
int i, t;
assert(queue_dequeue(NULL) == NULL);
assert(queue_dequeue(q) == NULL);
setup();
for(i=0; i < 512; i++)
assert(queue_dequeue(q) == &map[i]);
tierdown();
}
void test_isempty() {
setup();
assert(queue_isempty(q) == 0);
while(queue_dequeue(q));
assert(queue_isempty(q));
assert(queue_isempty(NULL));
tierdown();
}
void test_num_items() {
int i;
assert(queue_num_items(NULL) == 0);
assert(queue_num_items(q) == 0);
setup();
assert(queue_num_items(q) == 512);
for(i=0; i < 512/3; i++)
queue_dequeue(q);
assert(queue_num_items(q) == 512 - 512/3);
tierdown();
}
int main() {
int i;
for(i=0; i < 512; i++)
map[i] = i;
test_enqueue();
test_dequeue();
test_isempty();
test_num_items();
if (q)
queue_destroy(q);
return 0;
}