From e0152319f5ed6d99eb38bf6da40157a60fd48e04 Mon Sep 17 00:00:00 2001 From: rodrigosiqueira Date: Sun, 4 Dec 2016 11:28:25 -0200 Subject: [PATCH] Added required structure to implement unit tests Added modifications inside the main Makefile to refers the unit test Makefile. Added separated Makefile only for compiling unit tests. Added simple example of unit test. Signed-off-by: Charles Oliveira <18oliveira.charles@gmail.com> Signed-off-by: Pablo Alejandro Signed-off-by: Rodrigo Siqueira --- .gitignore | 3 +++ Makefile | 14 ++++++++++++++ tests/unit/Makefile | 28 ++++++++++++++++++++++++++++ tests/unit/kernel/logTest.cc | 14 ++++++++++++++ tests/unit/kernel/rtlilTest.cc | 14 ++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 tests/unit/Makefile create mode 100644 tests/unit/kernel/logTest.cc create mode 100644 tests/unit/kernel/rtlilTest.cc diff --git a/.gitignore b/.gitignore index 93e28cd6c..cd624f233 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.o *.d .*.swp +*.gch /.cproject /.project /.settings @@ -27,3 +28,5 @@ /yosys-win32-vcxsrc-* /yosysjs-* /libyosys.so +/tests/unit/bintest/ +/tests/unit/objtest/ diff --git a/Makefile b/Makefile index 9bf67d349..340fe1229 100644 --- a/Makefile +++ b/Makefile @@ -45,6 +45,9 @@ TARGETS = yosys$(EXE) yosys-config PRETTY = 1 SMALL = 0 +# Unit test +UNITESTPATH := tests/unit + all: top-all YOSYS_SRC := $(dir $(firstword $(MAKEFILE_LIST))) @@ -447,6 +450,17 @@ vloghtb: $(TARGETS) $(EXTRA_TARGETS) @echo " Passed \"make vloghtb\"." @echo "" +# Unit test +unit-test: libyosys.so + @$(MAKE) -C $(UNITESTPATH) CXX="$(CXX)" CPPFLAGS="$(CPPFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" LDLIBS="$(LDLIBS)" ROOTPATH="$(CURDIR)" + +run-all-unitest: + @$(MAKE) -C $(UNITESTPATH) run-tests + +clean-unit-test: + @$(MAKE) -C $(UNITESTPATH) clean + install: $(TARGETS) $(EXTRA_TARGETS) $(INSTALL_SUDO) mkdir -p $(DESTDIR)$(BINDIR) $(INSTALL_SUDO) install $(TARGETS) $(DESTDIR)$(BINDIR) diff --git a/tests/unit/Makefile b/tests/unit/Makefile new file mode 100644 index 000000000..16f65ec20 --- /dev/null +++ b/tests/unit/Makefile @@ -0,0 +1,28 @@ +GTESTFLAG := -lgtest -lgtest_main +RPATH := -Wl,-rpath +EXTRAFLAGS := -lyosys + +ALLTESTFILE := $(wildcard ./**/*Test.cc) +OBJTEST := objtest +BINTEST := bintest + +all: prepare $(ALLTESTFILE:%Test.cc=%Test.o) + +%Test.o: %Test.cc + $(CXX) -o $(OBJTEST)/$(notdir $@) -c -I$(ROOTPATH) $(CPPFLAGS) $(CXXFLAGS) $< + $(CXX) -L$(ROOTPATH) $(RPATH)=$(ROOTPATH) -o \ + $(BINTEST)/$(basename $(notdir $@)) $(OBJTEST)/$(notdir $@) $(LDLIBS) \ + $(GTESTFLAG) $(EXTRAFLAGS) + +.PHONY: prepare run-tests clean + +run-tests: + $(CURDIR)/$(BINTEST)/* + +prepare: + mkdir -p $(OBJTEST) + mkdir -p $(BINTEST) + +clean: + rm -rf $(OBJTEST) + rm -rf $(BINTEST) diff --git a/tests/unit/kernel/logTest.cc b/tests/unit/kernel/logTest.cc new file mode 100644 index 000000000..62b4f3b98 --- /dev/null +++ b/tests/unit/kernel/logTest.cc @@ -0,0 +1,14 @@ +#include + +#include "kernel/yosys.h" +#include "kernel/log.h" + +YOSYS_NAMESPACE_BEGIN + +TEST(KernelLogTest, logvValidValues) +{ + //TODO: Implement log test + EXPECT_EQ(7, 7); +} + +YOSYS_NAMESPACE_END diff --git a/tests/unit/kernel/rtlilTest.cc b/tests/unit/kernel/rtlilTest.cc new file mode 100644 index 000000000..d9eeed555 --- /dev/null +++ b/tests/unit/kernel/rtlilTest.cc @@ -0,0 +1,14 @@ +#include + +#include "kernel/yosys.h" +#include "kernel/rtlil.h" + +YOSYS_NAMESPACE_BEGIN + +TEST(KernelRtlilTest, getReferenceValid) +{ + //TODO: Implement rtlil test + EXPECT_EQ(33, 33); +} + +YOSYS_NAMESPACE_END -- 2.30.2