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 <pabloabur@usp.br>
Signed-off-by: Rodrigo Siqueira <siqueira@ime.usp.br>
This commit is contained in:
rodrigosiqueira 2016-12-04 11:28:25 -02:00
parent a44cc7a3d1
commit e0152319f5
5 changed files with 73 additions and 0 deletions

3
.gitignore vendored
View File

@ -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/

View File

@ -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)

28
tests/unit/Makefile Normal file
View File

@ -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)

View File

@ -0,0 +1,14 @@
#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

View File

@ -0,0 +1,14 @@
#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