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

View File

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

View File

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

View File

@@ -1,3 +1,3 @@
#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 =
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) {

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);
}
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)
{