Skip to content

Commit

Permalink
ST: Refine utest script.
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Apr 25, 2021
1 parent d1ac9da commit aaeb891
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 49 deletions.
9 changes: 9 additions & 0 deletions trunk/3rdparty/st-srs/auto/fast.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
#!/bin/bash

PWD=$(cd `dirname $0`/.. && pwd)

pushd $PWD
echo "Run UTest in $(pwd)"

IS_LINUX=yes
uname -s|grep Darwin >/dev/null && IS_DARWIN=yes && IS_LINUX=no
echo "IS_LINUX: $IS_LINUX, IS_DARWIN: $IS_DARWIN"
Expand All @@ -13,9 +18,13 @@ if [[ $IS_DARWIN == yes ]]; then
else
make linux-debug-gcov && ./obj/st_utest
fi
ret=$?; if [[ 0 -ne $ret ]]; then echo "Make ST utest fail, ret=$ret"; exit $ret; fi

echo "Generating coverage"
mkdir -p coverage &&
gcovr -r . -e LINUX -e DARWIN -e examples --html --html-details -o coverage/st.html &&
echo "Coverage report at coverage/st.html" &&
open coverage/st.html

popd
echo "UTest done, restore $(pwd)"
76 changes: 27 additions & 49 deletions trunk/3rdparty/st-srs/utest/Makefile
Original file line number Diff line number Diff line change
@@ -1,61 +1,38 @@
# user must run make the objs/utest dir
# at the same dir of Makefile.

# A sample Makefile for building Google Test and using it in user
# tests. Please tweak it to suit your environment and project. You
# may want to move it to your project's root directory.
#
# SYNOPSIS:
#
# make [all] - makes everything.
# make TARGET - makes the given target.
# make clean - removes all files generated by make.

# Please tweak the following variable definitions as needed by your
# project, except GTEST_HEADERS, which you can use in your own targets
# but shouldn't modify.

# Points to the root of Google Test, relative to where this file is.
# Remember to tweak this if you move this file.
GTEST_DIR = ./gtest

# Flags passed to the preprocessor.
CPPFLAGS += -I$(GTEST_DIR)/include
# The main dir of st.
ST_DIR = ..
# The main dir of st utest.
ST_UTEST = .
# The main dir of gtest.
GTEST_DIR = $(ST_UTEST)/gtest

# Flags passed to the C++ compiler.
CXXFLAGS += -g -O0 -std=c++11
CXXFLAGS += -Wall -Wno-deprecated-declarations -Wno-unused-private-field -Wno-unused-command-line-argument
CXXFLAGS += -DGTEST_USE_OWN_TR1_TUPLE=1

# All tests produced by this Makefile. Remember to add new tests you
# created to the list.
TESTS = ../obj/st_utest

# All Google Test headers. Usually you shouldn't change this
# definition.
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
$(GTEST_DIR)/include/gtest/internal/*.h
# Flags for warnings.
WARNFLAGS += -Wall -Wno-deprecated-declarations -Wno-unused-private-field -Wno-unused-command-line-argument

# House-keeping build targets.

all : $(TESTS)
all : $(ST_DIR)/obj/st_utest

clean :
rm -f $(TESTS) gtest.a gtest_main.a *.o *.gcno *.gcda
rm -f $(ST_DIR)/obj/st_utest* $(ST_DIR)/obj/gtest*

# Usually you shouldn't tweak such internal variables, indicated by a
# trailing _.
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_DIR)/include/gtest/*.h $(GTEST_DIR)/include/gtest/internal/*.h

# For simplicity and to avoid depending on Google Test's
# implementation details, the dependencies specified below are
# conservative and not optimized. This is fine as Google Test
# compiles fast and for ordinary users its source rarely changes.
../obj/gtest-all.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
$(GTEST_DIR)/src/gtest-all.cc -o $@
$(ST_DIR)/obj/gtest-all.o : $(GTEST_SRCS_)
$(CXX) -c $(GTEST_DIR)/src/gtest-all.cc -o $@ \
$(CXXFLAGS) \
$(WARNFLAGS) \
-I$(GTEST_DIR)/include -I$(GTEST_DIR)

../obj/gtest.a : ../obj/gtest-all.o
$(ST_DIR)/obj/gtest.a : $(ST_DIR)/obj/gtest-all.o
$(AR) $(ARFLAGS) $@ $^

#####################################################################################
Expand All @@ -64,19 +41,20 @@ GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
#####################################################################################
#####################################################################################

# Includes, the include dir.
ST_UTEST_INC = -I../obj -I./

# Depends, the depends objects
ST_UTEST_DEPS = ../obj/libst.a
ST_UTEST_DEPS = $(ST_DIR)/obj/libst.a

# Depends, utest header files
UTEST_DEPS = st_utest.hpp
UTEST_DEPS = $(ST_UTEST)/st_utest.hpp

# Objects, build each object of utest
../obj/st_utest.o : st_utest.cpp $(ST_UTEST_DEPS) $(UTEST_DEPS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(UTEST_FLAGS) $(ST_UTEST_INC) -c st_utest.cpp -o $@
$(ST_DIR)/obj/st_utest.o : st_utest.cpp $(ST_UTEST_DEPS) $(UTEST_DEPS)
$(CXX) -c st_utest.cpp -o $@ \
$(CXXFLAGS) $(UTEST_FLAGS) \
$(WARNFLAGS) \
-I$(GTEST_DIR)/include -I$(ST_UTEST) -I$(ST_DIR) -I$(ST_DIR)/obj

# generate the utest binary
../obj/st_utest : ../obj/st_utest.o ../obj/gtest.a $(ST_UTEST_DEPS)
$(CXX) -o $@ $(CPPFLAGS) $(CXXFLAGS) $(UTEST_FLAGS) $^ -lpthread -ldl
$(ST_DIR)/obj/st_utest : $(ST_DIR)/obj/st_utest.o $(ST_DIR)/obj/gtest.a $(ST_UTEST_DEPS)
$(CXX) -o $@ $(CXXFLAGS) $(UTEST_FLAGS) \
-lpthread -ldl $^

0 comments on commit aaeb891

Please sign in to comment.