Skip to content

Commit

Permalink
Add integration test for python_modular
Browse files Browse the repository at this point in the history
  • Loading branch information
vigsterkr committed Aug 1, 2013
1 parent 9da75b5 commit 6ab1015
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 25 deletions.
15 changes: 13 additions & 2 deletions CMakeLists.txt
Expand Up @@ -495,9 +495,20 @@ IF (SVMLight)
ENDIF()

################# TESTING ###################
#TODO: finish!!!
OPTION(BUILD_DASHBOARD_REPORTS "Set to ON to activate reporting of Shogun builds" OFF)
IF(BUILD_DASHBOARD_REPORTS)
include(CTest)
ENDIF()

OPTION(ENABLE_TESTING "Enable testing" OFF)
IF(ENABLE_TESTING)
enable_testing()
IF(NOT BUILD_DASHBOARD_REPORTS)
enable_testing()
ENDIF()

# add integration tests
add_subdirectory(tests/integration)

# Find GTEST and GMOCK frameworks
SET(GOOGLE_MOCK_SOURCE_DIR "" CACHE PATH "Path to the GMock source")
Expand All @@ -515,7 +526,7 @@ SET(LINKFLAGS "${POSTLINKFLAGS}")

add_subdirectory(src/shogun)

IF(BUILD_EXAMPLES)
IF(BUILD_EXAMPLES OR ENABLE_TESTING)
add_subdirectory(examples)
ENDIF()

Expand Down
12 changes: 12 additions & 0 deletions cmake/PythonEnvironment.cmake
@@ -0,0 +1,12 @@
MACRO(GET_PYTHON_ENV)
LIST(APPEND PYTHON_ENV_VARS GDB="gdb -x ${CMAKE_SOURCE_DIR}/src/.gdb --args")
LIST(APPEND PYTHON_ENV_VARS PYTHON=${PYTHON_EXECUTABLE})
LIST(APPEND PYTHON_ENV_VARS PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${PYTHON_PACKAGES_PATH})
if(WIN32)
LIST(APPEND PYTHON_ENV_VARS PATH=${CMAKE_INSTALL_PREFIX}/lib;$ENV{PATH})
elseif(APPLE)
LIST(APPEND PYTHON_ENV_VARS DYLD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:$ENV{DYLD_LIBRARY_PATH})
else()
LIST(APPEND PYTHON_ENV_VARS LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:$ENV{LD_LIBRARY_PATH})
endif()
ENDMACRO()
14 changes: 3 additions & 11 deletions examples/undocumented/python_modular/CMakeLists.txt
@@ -1,13 +1,5 @@
LIST(APPEND ENV_VARS GDB="gdb -x ${CMAKE_SOURCE_DIR}/src/.gdb --args")
LIST(APPEND ENV_VARS PYTHON=${PYTHON_EXECUTABLE})
LIST(APPEND ENV_VARS PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${PYTHON_PACKAGES_PATH})
if(WIN32)
LIST(APPEND ENV_VARS PATH=${CMAKE_INSTALL_PREFIX}/lib;$ENV{PATH})
elseif(APPLE)
LIST(APPEND ENV_VARS DYLD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:$ENV{DYLD_LIBRARY_PATH})
else()
LIST(APPEND ENV_VARS LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:$ENV{LD_LIBRARY_PATH})
endif()
INCLUDE(PythonEnvironment)
GET_PYTHON_ENV()

FILE(GLOB PYTHON_EXAMPLES *.py)
FOREACH(EXAMPLE ${PYTHON_EXAMPLES})
Expand All @@ -16,6 +8,6 @@ FOREACH(EXAMPLE ${PYTHON_EXAMPLES})
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE} ${EXAMPLE})
set_property(TEST python_modular-${EXAMPLE_NAME} PROPERTY
ENVIRONMENT "${ENV_VARS}")
ENVIRONMENT "${PYTHON_ENV_VARS}")

ENDFOREACH()
22 changes: 22 additions & 0 deletions tests/integration/CMakeLists.txt
@@ -0,0 +1,22 @@
# Generate the list of integration tests
FILE(GLOB_RECURSE INTEGRATION_TESTS data/*.m)
FILE(READ blacklist INTEGRATION_BLACKLIST)
STRING(REGEX REPLACE ";" "\\\\;" INTEGRATION_BLACKLIST "${INTEGRATION_BLACKLIST}")
STRING(REGEX REPLACE "\n" ";" INTEGRATION_BLACKLIST "${INTEGRATION_BLACKLIST}")

unset(_tmp)
FOREACH(IB ${INTEGRATION_BLACKLIST})
list(APPEND _tmp ${CMAKE_CURRENT_SOURCE_DIR}/data/${IB})
ENDFOREACH()
set(INTEGRATION_BLACKLIST ${_tmp})

LIST(REMOVE_ITEM INTEGRATION_TESTS ${INTEGRATION_BLACKLIST})
unset(INTEGRATION_BLACKLIST)

IF (PythonModular)
add_subdirectory(python_modular)
ENDIF()



unset(INTEGRATION_TESTS)
24 changes: 12 additions & 12 deletions tests/integration/blacklist
@@ -1,12 +1,12 @@
../data/distribution/HMM_1en10_60_4_1_0_6_3_False_CUBE.m
../data/classifier/SVMSGD_0017_1en05_1_True.m
../data/classifier/SVMSGD_023_1en05_1_True.m
../data/classifier/SVMSGD_15_1en05_1_True.m
../data/classifier/SVMSGD_30_1en05_16_True.m
../data/classifier/SVMSGD_30_1en05_1_True.m
../data/classifier/SubGradientSVM_0017_1en05_1_05_False.m
../data/classifier/SubGradientSVM_15_1en05_1_05_False.m
../data/classifier/SubGradientSVM_023_1en05_1_05_False.m
../data/classifier/SubGradientSVM_30_1en05_1_05_False.m
../data/kernel/Poly_1_0_10_3_6_01_False_False_CUBE_1_FK.m
../data/kernel/Poly_1_0_10_3_6_01_False_False_CUBE_1_TOP.m
distribution/HMM_1en10_60_4_1_0_6_3_False_CUBE.m
classifier/SVMSGD_0017_1en05_1_True.m
classifier/SVMSGD_023_1en05_1_True.m
classifier/SVMSGD_15_1en05_1_True.m
classifier/SVMSGD_30_1en05_16_True.m
classifier/SVMSGD_30_1en05_1_True.m
classifier/SubGradientSVM_0017_1en05_1_05_False.m
classifier/SubGradientSVM_15_1en05_1_05_False.m
classifier/SubGradientSVM_023_1en05_1_05_False.m
classifier/SubGradientSVM_30_1en05_1_05_False.m
kernel/Poly_1_0_10_3_6_01_False_False_CUBE_1_FK.m
kernel/Poly_1_0_10_3_6_01_False_False_CUBE_1_TOP.m
17 changes: 17 additions & 0 deletions tests/integration/python_modular/CMakeLists.txt
@@ -0,0 +1,17 @@
INCLUDE(PythonEnvironment)
GET_PYTHON_ENV()

FOREACH(TEST_SRC ${INTEGRATION_TESTS})
STRING(REGEX REPLACE ".*/(.*).m" "\\1" TEST_NAME ${TEST_SRC})
add_test(NAME integration-python_modular-${TEST_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE} test_one.py ${TEST_SRC})
set_property(TEST integration-python_modular-${TEST_NAME} PROPERTY
ENVIRONMENT "${PYTHON_ENV_VARS}")
ENDFOREACH()

add_test(NAME integration-python_modular-tester
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE} tester.py)
set_property(TEST integration-python_modular-tester PROPERTY
ENVIRONMENT "${PYTHON_ENV_VARS}")

0 comments on commit 6ab1015

Please sign in to comment.