From b8e28ed52cec6de9179a5bb6058def0efc6fcfa5 Mon Sep 17 00:00:00 2001 From: Robert Gustafsson Date: Mon, 2 Oct 2017 20:13:07 +0200 Subject: Add some basic unit tests --- broccoli/Makefile | 11 ++++- broccoli/tests.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 broccoli/tests.c diff --git a/broccoli/Makefile b/broccoli/Makefile index d6e2a37..329c60c 100644 --- a/broccoli/Makefile +++ b/broccoli/Makefile @@ -2,11 +2,14 @@ CC=gcc CFLAGS = -c -Wall -I/usr/local/include -I/usr/local/include -DBROCCOLI LDFLAGS = -L/usr/local/lib -lbroccoli -pthread -all: midbropasad +all: midbropasad tests midbropasad: midbropasad.o broevent.o fifoqueue.o $(CC) midbropasad.o broevent.o fifoqueue.o -o midbropasad $(LDFLAGS) +tests: tests.o fifoqueue.o + $(CC) tests.o fifoqueue.o -o tests + midbropasad.o: midbropasad.c $(CC) $(CFLAGS) midbropasad.c @@ -15,5 +18,9 @@ broevent.o: broevent.c fifoqueue.o: fifoqueue.c $(CC) -c -Wall fifoqueue.c + +tests.o: tests.c + $(CC) -c -Wall tests.c + clean: - rm *.o midbropasad + rm *.o midbropasad tests diff --git a/broccoli/tests.c b/broccoli/tests.c new file mode 100644 index 0000000..73e0346 --- /dev/null +++ b/broccoli/tests.c @@ -0,0 +1,124 @@ +#include "includes/fifoqueue.h" +#include + + void +create_sensor_object_test() { + int value, uid; + value = 1; + uid = 2; + Sensor_t * sensor = create_sensor_object(value, uid); + assert(sensor->value == value); + assert(sensor->uid == uid); + printf("create_sensor_object_test SUCCESS\n"); + free(sensor); +} + + void +init_queue_test() +{ + int size; + Fifo_q * q; + size = 50; + q = init_queue(size); + assert(q->maxSize == size); + printf("init_queue_test SUCCESS\n"); + free(q); +} + + void +add_to_queue_test() +{ + int size, value, uid; + Fifo_q * q; + Sensor_t * sensor; + size = 50; + value = 1; + uid = 2; + q = init_queue(size); + sensor = create_sensor_object(value, uid); + add_to_queue(q,sensor); + assert(q->currentSize == 1); + assert(q->head->sensor == sensor); + assert(q->tail->sensor == sensor); + printf("add_to_queue_test SUCCESS\n"); + free(sensor); + free(q->head); + free(q); +} + + void +pop_from_queue_test() +{ + int size, value, uid; + Fifo_q * q; + Sensor_t * actual; + Sensor_t * expected; + size = 50; + value = 1; + uid = 2; + q = init_queue(size); + actual = create_sensor_object(value, uid); + add_to_queue(q, actual); + expected = pop_from_queue(q); + assert(actual == expected); + printf("pop_from_queue_test SUCCESS\n"); + free(actual); + free(q->head); + free(q); +} + + void +is_full_test() +{ + int size, value, uid; + Fifo_q * q; + Sensor_t * sensor; + size = 1; + value = 1; + uid = 2; + q = init_queue(size); + sensor = create_sensor_object(value, uid); + assert(is_full(q) == false); + add_to_queue(q,sensor); + assert(is_full(q) == true); + printf("is_full_test SUCCESS\n"); + free(sensor); + free(q->head); + free(q); +} + void +is_empty_test() +{ + int size, value, uid; + Fifo_q * q; + Sensor_t * sensor; + size = 1; + value = 1; + uid = 2; + q = init_queue(size); + sensor = create_sensor_object(value, uid); + assert(is_empty(q) == true); + add_to_queue(q,sensor); + assert(is_empty(q) == false); + printf("is_empty_test SUCCESS\n"); + free(sensor); + free(q->head); + free(q); +} + void +all_tests() +{ + create_sensor_object_test(); + init_queue_test(); + add_to_queue_test(); + pop_from_queue_test(); + is_full_test(); + is_empty_test(); + printf("TEST SUITE PASSED\n"); +} + int +main(int argc, char **argv) +{ + all_tests(); + return 0; +} -- cgit v1.2.1