From aaeb8919bd4a026268e0600398cb1e9ad477663f Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 11 Mar 2021 08:09:54 +0800 Subject: [PATCH] ST: Refine utest script. --- trunk/3rdparty/st-srs/auto/fast.sh | 9 ++++ trunk/3rdparty/st-srs/utest/Makefile | 76 ++++++++++------------------ 2 files changed, 36 insertions(+), 49 deletions(-) diff --git a/trunk/3rdparty/st-srs/auto/fast.sh b/trunk/3rdparty/st-srs/auto/fast.sh index c83d370bfc0..e772ec603c1 100755 --- a/trunk/3rdparty/st-srs/auto/fast.sh +++ b/trunk/3rdparty/st-srs/auto/fast.sh @@ -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" @@ -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)" \ No newline at end of file diff --git a/trunk/3rdparty/st-srs/utest/Makefile b/trunk/3rdparty/st-srs/utest/Makefile index 3fcb026c326..5be3a408de9 100644 --- a/trunk/3rdparty/st-srs/utest/Makefile +++ b/trunk/3rdparty/st-srs/utest/Makefile @@ -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) $@ $^ ##################################################################################### @@ -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 $^