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 <pabloabur@usp.br>
Signed-off-by: Rodrigo Siqueira <siqueira@ime.usp.br>
*.o
*.d
.*.swp
+*.gch
/.cproject
/.project
/.settings
/yosys-win32-vcxsrc-*
/yosysjs-*
/libyosys.so
+/tests/unit/bintest/
+/tests/unit/objtest/
PRETTY = 1
SMALL = 0
+# Unit test
+UNITESTPATH := tests/unit
+
all: top-all
YOSYS_SRC := $(dir $(firstword $(MAKEFILE_LIST)))
@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)
--- /dev/null
+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)
--- /dev/null
+#include <gtest/gtest.h>
+
+#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
--- /dev/null
+#include <gtest/gtest.h>
+
+#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