Thursday, 7 July 2022
Thursday, 23 June 2022
how to write a unit test using googletest in ubuntu?
(base) ninja@luke:~/workspace/google_test$ cat main_test.cpp
// main_test.cpp
#include "whattotest.cpp"
#include <gtest/gtest.h>
TEST(SquareRootTest, PositiveNos) {
ASSERT_EQ(6, squareRoot(36.0));
ASSERT_EQ(18.0, squareRoot(324.0));
ASSERT_EQ(25.4, squareRoot(645.16));
ASSERT_EQ(0, squareRoot(0.0));
}
TEST(SquareRootTest, NegativeNos) {
ASSERT_EQ(-1.0, squareRoot(-15.0));
ASSERT_EQ(-1.0, squareRoot(-0.2));
}
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
---
(base) ninja@luke:~/workspace/google_test$ cat whattotest.cpp
// whattotest.cpp
#include <math.h>
double squareRoot(const double a) {
double b = sqrt(a);
if(b != b) { // nan check
return -1.0;
}else{
return sqrt(a);
}
}
---
(base) ninja@luke:~/workspace/google_test$ cat CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(test)
################################
# GTest
################################
project(googletest-git NONE)
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.0
)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(BUILD_GMOCK OFF CACHE BOOL "" FORCE)
set(BUILD_GTEST ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
################################
# main test program
################################
# Add test cpp file
add_executable(test main_test.cpp)
# Link test executable against gtest & gtest_main
target_link_libraries(test gtest gtest_main)
commands:-
cd ~/workspace/google_test
mkdir build
cd build
cmake ..
make test
How to include all *.h or *.cpp in CMakeLists.txt?
file(GLOB_RECURSE SOURCES LIST_DIRECTORIES true *.h *.cpp)
How to create multiple folders in one go using terminal?
mkdir -p test/{build,lib,src,tst}
Tuesday, 14 June 2022
How to convert onnx to TRT without any precision loss?
https://docs.nvidia.com/deeplearning/tensorrt/polygraphy/docs/index.html
Wednesday, 8 June 2022
How to remote control using TMATE?
https://tmate.io/
(brother of TMUX???)
Monday, 30 May 2022
CMakeLists.txt of OpenCV in GStreamer Docker 3090
apt install cmake
apt install qt5-default python-dev python3-dev -y
cd /data/opencv-4.4.0/build
cmake ..
make -j32
make install
CMakeLists.txt:-
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/data/opencv-4.4.0/distribute \
-DINSTALL_C_EXAMPLES=ON \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DBUILD_SHARED_LIBS=ON \
-DWITH_TBB=ON \
-DWITH_V4L=ON \
-DBUILD_opencv_world=OFF \
-DOPENCV_PYTHON3_INSTALL_PATH=/data/opencv-4.4.0/distribute/python3 \
-DWITH_QT=ON \
-DWITH_OPENGL=ON \
-DWITH_FFMPEG=ON \
-DHAVE_FFMPEG=OFF \
-DWITH_CUDA=ON \
-DHAVE_CUDNN=ON \
-DCUDNN_INCLUDE_DIRS=/data/cuda/include \
-DCUDNN_LIBRARY=/usr/lib/x86_64-linux-gnu/libcudnn.so.8.0.4 \
-DWITH_CUFFT=ON \
-DWITH_CUBLAS=ON \
-DWITH_NVCUVID=OFF \
-DHAVE_NVCUVID=OFF\
-DWITH_NVCUVENC=ON \
-DHAVE_NVCUVENC=ON \
-DBUILD_CUDA_STUBS=ON \
-DBUILD_opencv_cudalegacy=ON \
-DBUILD_opencv_cudacodec=ON \
-DCUDA_FAST_MATH=ON \
-DCUDA_ARCH_BIN="8.6" \
-DCUDA_TOOLKIT_ROOT_DIR="/usr/local/cuda-11.1" \
-DOPENCV_EXTRA_MODULES_PATH="/data/opencv_contrib-4.4.0/modules" \
-DBUILD_NEW_PYTHON_SUPPORT=ON \
-DBUILD_opencv_python3=ON \
-DHAVE_opencv_python3=ON \
-DPYTHON3_EXECUTABLE=/usr/bin/python3 \
-DPYTHON3_DEFAULT_EXECUTABLE=/usr/bin/python3 \
-DPYTHON3_INCLUDE_PATH=/usr/include/python3.6 \
-DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/x86_64-linux-gnu/python3.6/site-packages/numpy/core/include \
-DPYTHON3_PACKAGES_PATH=/usr/lib/x86_64-linux-gnu/python3.6/site-packages \
-DPYTHON3_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython3.6.so \
-DPYTHON3_LIBRARIES_PATH=/usr/lib/x86_64-linux-gnu \
-D OpenGL_GL_PREFERENCE=GLVND \
-D BUILD_opencv_rgbd=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D WITH_GTK_2_X=ON \
-DBUILD_EXAMPLES=OFF ..
Subscribe to:
Posts (Atom)