[Test/Cmake] clean cmake
authorJaeyun <jy1210.jung@samsung.com>
Wed, 7 Nov 2018 03:00:24 +0000 (12:00 +0900)
committerMyungJoo Ham <myungjoo.ham@gmail.com>
Thu, 8 Nov 2018 11:39:22 +0000 (20:39 +0900)
add option ENABLE_TEST and clean cmake for unit-test

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
CMakeLists.txt
packaging/nnstreamer.spec
tests/CMakeLists.txt
tests/nnstreamer_tensors/tensors_test/CMakeLists.txt

index bfa847a..c852f20 100644 (file)
@@ -8,6 +8,8 @@ OPTION(ENABLE_TENSORFLOW "Enable tensorflow support" OFF)
 OPTION(ENABLE_MODEL_DOWNLOAD "Enable download the model files" ON)
 OPTION(INSTALL_EXAMPLE_APP "Install example applications" OFF)
 OPTION(SINGLE_BINARY "Generate a single binary for all nnstreamer elements" ON)
+OPTION(ENABLE_TEST "Enable tests" ON)
+
 IF(SINGLE_BINARY)
        ADD_DEFINITIONS(-DSINGLE_BINARY)
        MESSAGE(STATUS "The nnstreamer elements will be created as a single plugin binary.")
@@ -39,31 +41,15 @@ SET(PKG_MODULES
        gstreamer-controller-1.0
        gstreamer-video-1.0
        gstreamer-audio-1.0
-       gstreamer-app-1.0
        glib-2.0
 )
 
-FIND_LIBRARY(GTEST_LIB gtest)
 IF(TIZEN)
        ADD_DEFINITIONS(-DTIZEN=1)
        # Enable dlog of Tizen.
        SET(PKG_MODULES ${PKG_MODULES} dlog)
 ENDIF(TIZEN)
 
-IF(TIZEN OR GTEST_LIB)
-       # Use GTEST shared lib (Tizen supplied gtest as shared lib)
-       SET(gtestLink gtest pthread)
-       SET(gtestSrc "")
-       SET(gtestInc "")
-ELSE(TIZEN OR GTEST_LIB)
-       IF (NOT EXISTS /usr/src/gtest/src/gtest-all.cc)
-               MESSAGE(FATAL FATAL_ERROR "You need to install libgtest-dev or (supplied with GTEST_LIB) libgtest.so.")
-       ENDIF ()
-       SET(gtestLink pthread)
-       SET(gtestSrc /usr/src/gtest/src/gtest-all.cc)
-       SET(gtestInc /usr/src/gtest)
-ENDIF(TIZEN OR GTEST_LIB)
-
 pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
 
 INCLUDE_DIRECTORIES(
@@ -88,16 +74,6 @@ TARGET_LINK_LIBRARIES(common ${pkgs_LIBRARIES})
 TARGET_INCLUDE_DIRECTORIES(common PUBLIC ${pkgs_INCLUDE_DIRS})
 SET(pkgs_LIBRARIES ${pkgs_LIBRARIES} common)
 
-# Unit test for common
-ADD_EXECUTABLE(unittest_common tests/common/unittest_common.cpp ${gtestSrc})
-TARGET_INCLUDE_DIRECTORIES(unittest_common PUBLIC ${pkgs_INCLUDE_DIRS} ${gtestInc})
-TARGET_LINK_LIBRARIES(unittest_common ${pkgs_LIBRARIES} ${gtestLink})
-
-# Unit test for tensor sink
-ADD_EXECUTABLE(unittest_sink tests/nnstreamer_sink/unittest_sink.cpp ${gtestSrc})
-TARGET_INCLUDE_DIRECTORIES(unittest_sink PUBLIC ${pkgs_INCLUDE_DIRS} ${gtestInc})
-TARGET_LINK_LIBRARIES(unittest_sink ${pkgs_LIBRARIES} ${gtestLink})
-
 # Supported projects for the single binary
 SET(PROJECTS
        tensor_aggregator
@@ -114,9 +90,11 @@ SET(PROJECTS
 )
 
 ADD_SUBDIRECTORY(nnstreamer_example)
-ADD_SUBDIRECTORY(tests/nnstreamer_tensors/tensors_test)
-enable_testing()
-ADD_SUBDIRECTORY(tests)
+
+IF(ENABLE_TEST)
+       enable_testing()
+       ADD_SUBDIRECTORY(tests)
+ENDIF(ENABLE_TEST)
 
 SET(OBJECTS)
 FOREACH(PRJ IN LISTS PROJECTS)
index 5fe1143..383a037 100644 (file)
@@ -93,8 +93,8 @@ export GST_PLUGIN_PATH=$(pwd)
 export LD_LIBRARY_PATH=$(pwd):$(pwd)/gst/tensor_filter
 %cmake .. -DTIZEN=ON -DGST_INSTALL_DIR=%{gstlibdir} -DENABLE_MODEL_DOWNLOAD=OFF
 make %{?_smp_mflags}
-./unittest_common
-./unittest_sink --gst-plugin-path=.
+./tests/unittest_common
+./tests/unittest_sink --gst-plugin-path=.
 popd
 pushd tests
 # The ssat requires 6~7min to run armv7l binary files in the current CI server.
@@ -102,13 +102,13 @@ pushd tests
 timeout=600
 ssat &
 pid=$!
-# CAUTION: Note that you have to keep the coding style of the existing statement 
-# in case that you have to update the below statement in the future. 
-# a. Do not run repetitive statement(ex. while) to avoid too log messages in the log file. 
+# CAUTION: Note that you have to keep the coding style of the existing statement
+# in case that you have to update the below statement in the future.
+# a. Do not run repetitive statement(ex. while) to avoid too log messages in the log file.
 # b. Declare appropriate heuristic timeout value
 # c. Do not declare too long sleep time to keep the reasonable waiting time after submitting PR
-(sleep $timeout 
-kill $pid 
+(sleep $timeout
+kill $pid
 if [[ "$?" -eq 0 ]]; then
     echo "[DEBUG] GBS is stopped because of 'ssat' timeout(10min)"
     exit 124 # 124 is ubuntu status code of timeout
@@ -139,18 +139,18 @@ popd
 
 # Get commit info
     VCS=`cat ${RPM_SOURCE_DIR}/nnstreamer.spec | grep "^VCS:" | sed "s|VCS:\\W*\\(.*\\)|\\1|"`
-                                                                                                                                       
-# Create human readable unit test coverate report web page                                                                             
-    # Create null gcda files if gcov didn't create it because there is completely no unit test for them.                               
-    find . -name "*.gcno" -exec sh -c 'touch -a "${1%.gcno}.gcda"' _ {} \;                                                             
-    # Remove gcda for meaningless file (CMake's autogenerated)                                                                         
-    find . -name "CMakeCCompilerId*.gcda" -delete                                                                                      
-    find . -name "CMakeCXXCompilerId*.gcda" -delete                                                                                    
-    #find . -path "/build/*.j                                                                                                          
+
+# Create human readable unit test coverate report web page
+    # Create null gcda files if gcov didn't create it because there is completely no unit test for them.
+    find . -name "*.gcno" -exec sh -c 'touch -a "${1%.gcno}.gcda"' _ {} \;
+    # Remove gcda for meaningless file (CMake's autogenerated)
+    find . -name "CMakeCCompilerId*.gcda" -delete
+    find . -name "CMakeCXXCompilerId*.gcda" -delete
+    #find . -path "/build/*.j
     # Generate report
-    lcov -t 'NNStreamer Unit Test Coverage' -o unittest.info -c -d . -b $(pwd) --no-external                                                
-    # Visualize the report                                                                                                             
-    genhtml -o result unittest.info -t "nnstreamer %{version}-%{release} ${VCS}" --ignore-errors source -p ${RPM_BUILD_DIR}   
+    lcov -t 'NNStreamer Unit Test Coverage' -o unittest.info -c -d . -b $(pwd) --no-external
+    # Visualize the report
+    genhtml -o result unittest.info -t "nnstreamer %{version}-%{release} ${VCS}" --ignore-errors source -p ${RPM_BUILD_DIR}
 %endif
 
 %if 0%{?testcoverage}
index 1f749a3..7fbd2b2 100644 (file)
@@ -1,4 +1,42 @@
-ADD_TEST(NAME unit_test 
+# For unit test
+
+SET(PKGTEST_MODULES
+       gstreamer-app-1.0
+       gstreamer-check-1.0
+)
+
+FIND_LIBRARY(GTEST_LIB gtest)
+
+IF(TIZEN OR GTEST_LIB)
+       # Use GTEST shared lib (Tizen supplied gtest as shared lib)
+       SET(gtestLink gtest pthread)
+       SET(gtestSrc "")
+       SET(gtestInc "")
+ELSE(TIZEN OR GTEST_LIB)
+       IF (NOT EXISTS /usr/src/gtest/src/gtest-all.cc)
+               MESSAGE(FATAL FATAL_ERROR "You need to install libgtest-dev or (supplied with GTEST_LIB) libgtest.so.")
+       ENDIF ()
+       SET(gtestLink pthread)
+       SET(gtestSrc /usr/src/gtest/src/gtest-all.cc)
+       SET(gtestInc /usr/src/gtest)
+ENDIF(TIZEN OR GTEST_LIB)
+
+pkg_check_modules(testpkgs REQUIRED ${PKGTEST_MODULES})
+
+# sub-directory for test plugins
+ADD_SUBDIRECTORY(nnstreamer_tensors/tensors_test)
+
+# Unit test for common
+ADD_EXECUTABLE(unittest_common common/unittest_common.cpp ${gtestSrc})
+TARGET_INCLUDE_DIRECTORIES(unittest_common PUBLIC ${pkgs_INCLUDE_DIRS} ${testpkgs_INCLUDE_DIRS} ${gtestInc})
+TARGET_LINK_LIBRARIES(unittest_common ${pkgs_LIBRARIES} ${testpkgs_LIBRARIES} ${gtestLink})
+
+# Unit test using tensor_sink
+ADD_EXECUTABLE(unittest_sink nnstreamer_sink/unittest_sink.cpp ${gtestSrc})
+TARGET_INCLUDE_DIRECTORIES(unittest_sink PUBLIC ${pkgs_INCLUDE_DIRS} ${testpkgs_INCLUDE_DIRS} ${gtestInc})
+TARGET_LINK_LIBRARIES(unittest_sink ${pkgs_LIBRARIES} ${testpkgs_LIBRARIES} ${gtestLink})
+
+ADD_TEST(NAME unit_test
         COMMAND sh -c "GST_PLUGIN_PATH=${PROJECT_SOURCE_DIR}/build ssat ${CMAKE_CURRENT_SOURCE_DIR}")
 
 SET_TESTS_PROPERTIES(unit_test PROPERTIES TIMEOUT 120)
index 1e14df0..f96e598 100644 (file)
@@ -4,28 +4,18 @@ ADD_LIBRARY(testtensorsStatic STATIC gsttesttensors.c)
 TARGET_LINK_LIBRARIES(testtensors ${pkgs_LIBRARIES})
 TARGET_INCLUDE_DIRECTORIES(testtensors PUBLIC ${pkgs_INCLUDE_DIRS})
 TARGET_COMPILE_OPTIONS(testtensors PUBLIC ${pkgs_CFLAGS_OTHER})
+
 TARGET_LINK_LIBRARIES(testtensorsStatic ${pkgs_LIBRARIES})
 TARGET_INCLUDE_DIRECTORIES(testtensorsStatic PUBLIC ${pkgs_INCLUDE_DIRS})
 TARGET_COMPILE_OPTIONS(testtensorsStatic PUBLIC ${pkgs_CFLAGS_OTHER})
 
-INSTALL(TARGETS testtensors testtensorsStatic
-       RUNTIME DESTINATION ${EXEC_PREFIX}
-       LIBRARY DESTINATION ${LIB_INSTALL_DIR}
-       ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-       )
-
 ADD_LIBRARY(tensorscheck SHARED gsttensorscheck.c )
 ADD_LIBRARY(tensorscheckStatic STATIC gsttensorscheck.c)
 
 TARGET_LINK_LIBRARIES(tensorscheck ${pkgs_LIBRARIES})
 TARGET_INCLUDE_DIRECTORIES(tensorscheck PUBLIC ${pkgs_INCLUDE_DIRS})
 TARGET_COMPILE_OPTIONS(tensorscheck PUBLIC ${pkgs_CFLAGS_OTHER})
+
 TARGET_LINK_LIBRARIES(tensorscheckStatic ${pkgs_LIBRARIES})
 TARGET_INCLUDE_DIRECTORIES(tensorscheckStatic PUBLIC ${pkgs_INCLUDE_DIRS})
 TARGET_COMPILE_OPTIONS(tensorscheckStatic PUBLIC ${pkgs_CFLAGS_OTHER})
-
-INSTALL(TARGETS tensorscheck tensorscheckStatic
-       RUNTIME DESTINATION ${EXEC_PREFIX}
-       LIBRARY DESTINATION ${LIB_INSTALL_DIR}
-       ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-       )