From e387baf2134ab255463dec1b7d8708399c6e7849 Mon Sep 17 00:00:00 2001 From: erwincoumans Date: Tue, 24 Nov 2015 16:13:21 -0800 Subject: [PATCH] add collision and inverse dynamics unit tests to cmake, .travis.yml and appveyor.yml (more unit tests will follow, once this setup works) --- .travis.yml | 7 ++-- CMakeLists.txt | 5 +-- appveyor.yml | 8 +++++ test/CMakeLists.txt | 2 +- test/InverseDynamics/CMakeLists.txt | 30 ++++++++++++++++ .../test_invdyn_kinematics.cpp | 3 +- test/collision/CMakeLists.txt | 36 +++++++++++++++++++ test/collision/main.cpp | 8 ++--- 8 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 test/InverseDynamics/CMakeLists.txt create mode 100644 test/collision/CMakeLists.txt diff --git a/.travis.yml b/.travis.yml index 949adbd29..bb6dcde2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,10 +10,13 @@ script: - echo "CC="$CC - cmake . -G "Unix Makefiles" #-DCMAKE_CXX_FLAGS=-Werror - make -j8 - # Test again with double precision + - ctest -j8 --output-on-failure + # Build again with double precision - cmake . -G "Unix Makefiles" -DUSE_DOUBLE_PRECISION=ON #-DCMAKE_CXX_FLAGS=-Werror - make -j8 - # Test again with shared libraries + - ctest -j8 --output-on-failure + # Build again with shared libraries - cmake . -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON - make -j8 + - ctest -j8 --output-on-failure - sudo make install diff --git a/CMakeLists.txt b/CMakeLists.txt index 631c0fae6..5e33f67f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,12 +80,12 @@ IF(MSVC) ELSE() OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON) IF (USE_MSVC_SSE) - ADD_DEFINITIONS(/arch:SSE) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE") ENDIF() ENDIF() OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON) IF (USE_MSVC_FAST_FLOATINGPOINT) - ADD_DEFINITIONS(/fp:fast) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast") ENDIF() ENDIF(MSVC) @@ -273,6 +273,7 @@ ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON) IF (BUILD_UNIT_TESTS) + ENABLE_TESTING() SUBDIRS(test) ENDIF() diff --git a/appveyor.yml b/appveyor.yml index 54c1175f7..7014631e1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,12 @@ build: project: build3/vs2010/0_Bullet3Solution.sln + - mkdir cmake + - cd cmake + - cmake .. -G"Visual Studio 14 2015 Win64" + - cmake --build . --target ALL_BUILD --config Release -- /maxcpucount:4 /verbosity:quiet + +test_script: + - ctest --parallel 4 --build-config Release --output-on-failure before_build: - echo %CD% @@ -7,3 +14,4 @@ before_build: - echo %CD% - premake4 vs2010 - ps: cd .. + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 990d62ce4..45369660d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,3 @@ #SUBDIRS( gtest-1.7.0 TestBullet3OpenCL) -SUBDIRS( gtest-1.7.0 ) +SUBDIRS( gtest-1.7.0 collision InverseDynamics) diff --git a/test/InverseDynamics/CMakeLists.txt b/test/InverseDynamics/CMakeLists.txt new file mode 100644 index 000000000..79c9aebf2 --- /dev/null +++ b/test/InverseDynamics/CMakeLists.txt @@ -0,0 +1,30 @@ + + + +INCLUDE_DIRECTORIES( + . + ../../src + ../gtest-1.7.0/include + ../../Extras/InverseDynamics +) + + +#ADD_DEFINITIONS(-DGTEST_HAS_PTHREAD=1) +ADD_DEFINITIONS(-D_VARIADIC_MAX=10) + +LINK_LIBRARIES( + BulletInverseDynamicsUtils BulletInverseDynamics Bullet3Common LinearMath gtest +) + + + ADD_EXECUTABLE(Test_BulletInverseDynamics + test_invdyn_kinematics.cpp + ) + +ADD_TEST(Test_BulletInverseDynamics_PASS Test_BulletInverseDynamics) + +IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) + SET_TARGET_PROPERTIES(Test_Collision PROPERTIES DEBUG_POSTFIX "_Debug") + SET_TARGET_PROPERTIES(Test_Collision PROPERTIES MINSIZEREL_POSTFIX "_MinsizeRel") + SET_TARGET_PROPERTIES(Test_Collision PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo") +ENDIF(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) diff --git a/test/InverseDynamics/test_invdyn_kinematics.cpp b/test/InverseDynamics/test_invdyn_kinematics.cpp index 06e7c999e..6726816a5 100644 --- a/test/InverseDynamics/test_invdyn_kinematics.cpp +++ b/test/InverseDynamics/test_invdyn_kinematics.cpp @@ -349,7 +349,7 @@ TEST(InvDynKinematicsDifferentiation, errorOrder) { const idScalar expected_angular_acceleration_error_1 = max_angular_acceleration_error[0] * pow(kDeltaTs[1] / kDeltaTs[0], 2); - printf("linear vel error: %e %e %e\n", max_linear_velocity_error[1], +/* printf("linear vel error: %e %e %e\n", max_linear_velocity_error[1], expected_linear_velocity_error_1, max_linear_velocity_error[1] - expected_linear_velocity_error_1); printf("angular vel error: %e %e %e\n", max_angular_velocity_error[1], @@ -361,6 +361,7 @@ TEST(InvDynKinematicsDifferentiation, errorOrder) { printf("angular acc error: %e %e %e\n", max_angular_acceleration_error[1], expected_angular_acceleration_error_1, max_angular_acceleration_error[1] - expected_angular_acceleration_error_1); +*/ } int main(int argc, char** argv) { diff --git a/test/collision/CMakeLists.txt b/test/collision/CMakeLists.txt new file mode 100644 index 000000000..5c92e7d77 --- /dev/null +++ b/test/collision/CMakeLists.txt @@ -0,0 +1,36 @@ + +INCLUDE_DIRECTORIES( + . + ../../src + ../gtest-1.7.0/include +) + + +#ADD_DEFINITIONS(-DGTEST_HAS_PTHREAD=1) +ADD_DEFINITIONS(-D_VARIADIC_MAX=10) + +LINK_LIBRARIES( + LinearMath gtest +) + + + ADD_EXECUTABLE(Test_Collision + main.cpp + ../../src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp + ../../src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h + ../../src/BulletCollision/CollisionShapes/btSphereShape.cpp + ../../src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp + ../../src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp + ../../src/BulletCollision/CollisionShapes/btConvexShape.cpp + ../../src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp + ../../src/BulletCollision/CollisionShapes/btCollisionShape.cpp + ../../src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp + ) + +ADD_TEST(Test_Collision_PASS Test_Collision) + +IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) + SET_TARGET_PROPERTIES(Test_Collision PROPERTIES DEBUG_POSTFIX "_Debug") + SET_TARGET_PROPERTIES(Test_Collision PROPERTIES MINSIZEREL_POSTFIX "_MinsizeRel") + SET_TARGET_PROPERTIES(Test_Collision PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo") +ENDIF(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) diff --git a/test/collision/main.cpp b/test/collision/main.cpp index 3f68f1020..86fb36c59 100644 --- a/test/collision/main.cpp +++ b/test/collision/main.cpp @@ -179,12 +179,12 @@ void testSphereSphereDistance(SphereSphereTestMethod method, btScalar abs_error) ASSERT_EQ(btScalar(0), distInfo.m_distance); } - for (int rb=1;rb<10;rb++) - for (int z=-20;z<20;z++) + for (int rb=1;rb<5;rb++) + for (int z=-5;z<5;z++) { - for (int j=1;j<10;j++) + for (int j=1;j<5;j++) { - for (int i=-20;i<20;i++) + for (int i=-5;i<5;i++) { if (i!=z)//skip co-centric spheres for now (todo(erwincoumans) fix this) {