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.")
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(
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
)
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)
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.
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
# 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}
-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)
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}
- )