aboutsummaryrefslogtreecommitdiffstats
path: root/fw
diff options
context:
space:
mode:
Diffstat (limited to 'fw')
-rw-r--r--fw/.gitignore1
-rw-r--r--fw/Makefile55
-rw-r--r--fw/tests/unit/types_utests.c63
-rw-r--r--fw/tests/unit/types_utests.h5
4 files changed, 109 insertions, 15 deletions
diff --git a/fw/.gitignore b/fw/.gitignore
index b228a86..ac9ee01 100644
--- a/fw/.gitignore
+++ b/fw/.gitignore
@@ -10,3 +10,4 @@
*.s
*.sdb
*.sym
+*_utests
diff --git a/fw/Makefile b/fw/Makefile
index 12bb693..1c0fb95 100644
--- a/fw/Makefile
+++ b/fw/Makefile
@@ -1,38 +1,63 @@
CC = xc8-cc
-INCLUDES = -I ./
-CFLAGS = -mcpu=pic16f1459 -std=c99 $(INCLUDES) -Wall
+INCLUDES = -I.
+CFLAGS = -mcpu=pic16f1459 -std=c99 -Wall $(INCLUDES)
LDFLAGS =
-SYSTEST_DIR = tests/system
-
HEX = can_gauge.hex
-
SRC = $(shell find . -maxdepth 1 -name "*.c" ! -name "main.c")
-
OBJ = $(notdir $(SRC:.c=.p1))
HDR = $(wildcard *.h)
-SYSTEST_SRC = $(wildcard $(SYSTEST_DIR)/*.c)
-SYSTEST_OBJ = $(notdir $(SYSTEST_SRC:.c=.p1))
-SYSTEST_HEX = $(SYSTEST_OBJ:.p1=.hex)
-
$(HEX): $(OBJ) main.p1
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
%.p1: %.c
$(CC) $(CFLAGS) -c $<
+$(OBJ): $(HDR)
+
+
+SYSTEST_DIR = tests/system
+SYSTEST_SRC = $(wildcard $(SYSTEST_DIR)/*.c)
+SYSTEST_OBJ = $(notdir $(SYSTEST_SRC:.c=.p1))
+SYSTEST_HEX = $(SYSTEST_OBJ:.p1=.hex)
+
$(SYSTEST_HEX): %.hex: %.p1 $(OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
$(SYSTEST_OBJ): %.p1: $(SYSTEST_DIR)/%.c
$(CC) $(CFLAGS) -c $<
-clean:
- rm -f *.hex *.d *.p1 *.lst *.rlf *.o *.s *.sdb *.sym *.hxl *.elf *.cmf
-
systest: $(SYSTEST_HEX)
-$(OBJ): $(HDR)
-.PHONY: clean systest
+UTEST_DIR = tests/unit
+UNITY_DIR = $(UTEST_DIR)/Unity/src
+UTEST_CC = tcc
+UTEST_INCLUDES = -I. -I $(UNITY_DIR)
+UTEST_CFLAGS = -std=c99 -Wall $(UTEST_INCLUDES)
+UTEST_LDFLAGS =
+UTEST_BIN = $(basename $(wildcard $(UTEST_DIR)/*.c))
+UTEST_SRC = $(wildcard $(UTEST_DIR)/*.c) $(UNITY_DIR)/unity.c
+UTEST_OBJ = $(UTEST_SRC:.c=.o)
+UTEST_HDR = $(wildcard $(UTEST_DIR)/*.h) $(UNITY_DIR)/unity.h
+
+utest: $(UTEST_BIN)
+ for t in $^; do \
+ $$t; \
+ done
+
+$(UTEST_BIN): $(UTEST_OBJ)
+ $(UTEST_CC) $(UTEST_CFLAGS) $(UTEST_LDFLAGS) -o $@ $^
+
+$(UTEST_OBJ): %.o: %.c
+ $(UTEST_CC) -c -o $@ $(UTEST_CFLAGS) $<
+
+$(UTEST_OBJ): $(UTEST_HDR)
+
+
+clean:
+ rm -f *.hex *.d *.p1 *.lst *.rlf *.o *.s *.sdb *.sym *.hxl *.elf *.cmf \
+ $(UTEST_OBJ) $(UTEST_BIN)
+
+.PHONY: clean systest utest
diff --git a/fw/tests/unit/types_utests.c b/fw/tests/unit/types_utests.c
new file mode 100644
index 0000000..578a100
--- /dev/null
+++ b/fw/tests/unit/types_utests.c
@@ -0,0 +1,63 @@
+#include <stdbool.h>
+#include <stdint.h>
+
+#include <unity.h>
+
+#include <types.h>
+
+void setUp(void) {}
+void tearDown(void) {}
+
+void
+testAddU16(void) {
+ setUp();
+ // TODO
+ TEST_ASSERT(false);
+ tearDown();
+}
+
+void
+testAddU16U8(void) {
+ setUp();
+ // TODO
+ TEST_ASSERT(false);
+ tearDown();
+}
+
+void
+testLshiftU16(void) {
+ setUp();
+ // TODO
+ TEST_ASSERT(false);
+ tearDown();
+}
+
+void
+testRshiftU16(void) {
+ setUp();
+ // TODO
+ TEST_ASSERT(false);
+ tearDown();
+}
+
+void
+testCmpU16(void) {
+ setUp();
+ // TODO
+ TEST_ASSERT(false);
+ tearDown();
+}
+
+int
+main(void) {
+ UnityBegin(__FILE__);
+
+ // Types
+ RUN_TEST(testAddU16);
+ RUN_TEST(testAddU16U8);
+ RUN_TEST(testLshiftU16);
+ RUN_TEST(testRshiftU16);
+ RUN_TEST(testCmpU16);
+
+ return UnityEnd();
+}
diff --git a/fw/tests/unit/types_utests.h b/fw/tests/unit/types_utests.h
new file mode 100644
index 0000000..1923727
--- /dev/null
+++ b/fw/tests/unit/types_utests.h
@@ -0,0 +1,5 @@
+testAddU16(void);
+testAddU16U8(void);
+testLshiftU16(void);
+testRshiftU16(void);
+testCmpU16(void);