add collision and inverse dynamics unit tests to cmake, .travis.yml and appveyor.yml

(more unit tests will follow, once this setup works)
This commit is contained in:
erwincoumans
2015-11-24 16:13:21 -08:00
parent 4205e976f6
commit e387baf213
8 changed files with 89 additions and 10 deletions

View File

@@ -10,10 +10,13 @@ script:
- echo "CC="$CC - echo "CC="$CC
- cmake . -G "Unix Makefiles" #-DCMAKE_CXX_FLAGS=-Werror - cmake . -G "Unix Makefiles" #-DCMAKE_CXX_FLAGS=-Werror
- make -j8 - 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 - cmake . -G "Unix Makefiles" -DUSE_DOUBLE_PRECISION=ON #-DCMAKE_CXX_FLAGS=-Werror
- make -j8 - 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 - cmake . -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON
- make -j8 - make -j8
- ctest -j8 --output-on-failure
- sudo make install - sudo make install

View File

@@ -80,12 +80,12 @@ IF(MSVC)
ELSE() ELSE()
OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON) OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON)
IF (USE_MSVC_SSE) IF (USE_MSVC_SSE)
ADD_DEFINITIONS(/arch:SSE) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE")
ENDIF() ENDIF()
ENDIF() ENDIF()
OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON) OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON)
IF (USE_MSVC_FAST_FLOATINGPOINT) IF (USE_MSVC_FAST_FLOATINGPOINT)
ADD_DEFINITIONS(/fp:fast) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast")
ENDIF() ENDIF()
ENDIF(MSVC) ENDIF(MSVC)
@@ -273,6 +273,7 @@ ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5)
OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON) OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON)
IF (BUILD_UNIT_TESTS) IF (BUILD_UNIT_TESTS)
ENABLE_TESTING()
SUBDIRS(test) SUBDIRS(test)
ENDIF() ENDIF()

View File

@@ -1,5 +1,12 @@
build: build:
project: build3/vs2010/0_Bullet3Solution.sln 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: before_build:
- echo %CD% - echo %CD%
@@ -7,3 +14,4 @@ before_build:
- echo %CD% - echo %CD%
- premake4 vs2010 - premake4 vs2010
- ps: cd .. - ps: cd ..

View File

@@ -1,3 +1,3 @@
#SUBDIRS( gtest-1.7.0 TestBullet3OpenCL) #SUBDIRS( gtest-1.7.0 TestBullet3OpenCL)
SUBDIRS( gtest-1.7.0 ) SUBDIRS( gtest-1.7.0 collision InverseDynamics)

View File

@@ -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)

View File

@@ -349,7 +349,7 @@ TEST(InvDynKinematicsDifferentiation, errorOrder) {
const idScalar expected_angular_acceleration_error_1 = const idScalar expected_angular_acceleration_error_1 =
max_angular_acceleration_error[0] * pow(kDeltaTs[1] / kDeltaTs[0], 2); 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, expected_linear_velocity_error_1,
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], 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], printf("angular acc error: %e %e %e\n", max_angular_acceleration_error[1],
expected_angular_acceleration_error_1, expected_angular_acceleration_error_1,
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) { int main(int argc, char** argv) {

View File

@@ -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)

View File

@@ -179,12 +179,12 @@ void testSphereSphereDistance(SphereSphereTestMethod method, btScalar abs_error)
ASSERT_EQ(btScalar(0), distInfo.m_distance); ASSERT_EQ(btScalar(0), distInfo.m_distance);
} }
for (int rb=1;rb<10;rb++) for (int rb=1;rb<5;rb++)
for (int z=-20;z<20;z++) 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) if (i!=z)//skip co-centric spheres for now (todo(erwincoumans) fix this)
{ {