mirror of
https://github.com/YosysHQ/yosys
synced 2025-09-30 21:19:30 +00:00
Fix building and running unit tests (#5374)
* Fix building and running unit tests * Enable unit tests * Add gtest always * test-sanitizers.yml: Use makefile.conf * proper test setup * make it run on macOS * Run libyosys build only for unit tests after testing is done * Disable LTO on public CI --------- Co-authored-by: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com>
This commit is contained in:
parent
b586043647
commit
fcc3d7132d
8 changed files with 53 additions and 13 deletions
|
@ -1,11 +1,27 @@
|
|||
GTESTFLAG := -lgtest -lgtest_main
|
||||
RPATH := -Wl,-rpath
|
||||
EXTRAFLAGS := -lyosys -pthreads
|
||||
UNAME_S := $(shell uname -s)
|
||||
|
||||
# GoogleTest flags
|
||||
GTEST_PREFIX := $(shell brew --prefix googletest 2>/dev/null)
|
||||
ifeq ($(GTEST_PREFIX),)
|
||||
GTEST_CXXFLAGS :=
|
||||
GTEST_LDFLAGS := -lgtest -lgtest_main
|
||||
else
|
||||
GTEST_CXXFLAGS := -I$(GTEST_PREFIX)/include
|
||||
GTEST_LDFLAGS := -L$(GTEST_PREFIX)/lib -lgtest -lgtest_main
|
||||
endif
|
||||
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
RPATH = -Wl,-rpath,$(ROOTPATH)
|
||||
else
|
||||
RPATH = -Wl,-rpath=$(ROOTPATH)
|
||||
endif
|
||||
|
||||
EXTRAFLAGS := -lyosys -pthread
|
||||
|
||||
OBJTEST := objtest
|
||||
BINTEST := bintest
|
||||
|
||||
ALLTESTFILE := $(shell find -name '*Test.cc' -printf '%P ')
|
||||
ALLTESTFILE := $(shell find . -name '*Test.cc' | sed 's|^\./||' | tr '\n' ' ')
|
||||
TESTDIRS := $(sort $(dir $(ALLTESTFILE)))
|
||||
TESTS := $(addprefix $(BINTEST)/, $(basename $(ALLTESTFILE:%Test.cc=%Test.o)))
|
||||
|
||||
|
@ -15,16 +31,26 @@ TESTS := $(addprefix $(BINTEST)/, $(basename $(ALLTESTFILE:%Test.cc=%Test.o)))
|
|||
all: prepare $(TESTS) run-tests
|
||||
|
||||
$(BINTEST)/%: $(OBJTEST)/%.o
|
||||
$(CXX) -L$(ROOTPATH) $(RPATH)=$(ROOTPATH) $(LINKFLAGS) -o $@ $^ $(LIBS) \
|
||||
$(GTESTFLAG) $(EXTRAFLAGS)
|
||||
$(CXX) -L$(ROOTPATH) $(RPATH) $(LINKFLAGS) -o $@ $^ $(LIBS) \
|
||||
$(GTEST_LDFLAGS) $(EXTRAFLAGS)
|
||||
|
||||
$(OBJTEST)/%.o: $(basename $(subst $(OBJTEST),.,%)).cc
|
||||
$(CXX) -o $@ -c -I$(ROOTPATH) $(CPPFLAGS) $(CXXFLAGS) $^
|
||||
$(CXX) -o $@ -c -I$(ROOTPATH) $(CPPFLAGS) $(CXXFLAGS) $(GTEST_CXXFLAGS) $^
|
||||
|
||||
.PHONY: prepare run-tests clean
|
||||
|
||||
run-tests: $(TESTS)
|
||||
$(subst Test ,Test&& ,$^)
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
@for t in $^; do \
|
||||
echo "Running $$t"; \
|
||||
DYLD_LIBRARY_PATH=$(ROOTPATH) $$t || exit 1; \
|
||||
done
|
||||
else
|
||||
@for t in $^; do \
|
||||
echo "Running $$t"; \
|
||||
$$t || exit 1; \
|
||||
done
|
||||
endif
|
||||
|
||||
prepare:
|
||||
mkdir -p $(addprefix $(BINTEST)/,$(TESTDIRS))
|
||||
|
|
|
@ -20,6 +20,9 @@ namespace RTLIL {
|
|||
KernelRtlilTest() {
|
||||
if (log_files.empty()) log_files.emplace_back(stdout);
|
||||
}
|
||||
virtual void SetUp() override {
|
||||
IdString::ensure_prepopulated();
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(KernelRtlilTest, ConstAssignCompare)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue