set(LMLTEST_TARGET_NAME library${TARGET_NAME_SEPARATOR}lmltest)

set(SRCS lmltest.cpp)
include_directories(${CAMITK_INCLUDE_DIR}/libraries)
link_directories(${CAMITK_LINK_DIRECTORIES})
add_executable(${LMLTEST_TARGET_NAME} ${SRCS})
target_link_libraries(${LMLTEST_TARGET_NAME} ${LML_DEPENDENCIES}) # both lml and lmlschema are needed
add_dependencies(${LMLTEST_TARGET_NAME} ${LML_DEPENDENCY}) # as lml depends on lmlschema, only lml needed here

# in debug mode, add postfix
if (MSVC)
    set_target_properties(${LMLTEST_TARGET_NAME} PROPERTIES DEBUG_POSTFIX ${CAMITK_DEBUG_POSTFIX})
endif()

#----------
# Testing
#----------
set(LMLTEST_BASENAME "lml-${LMLTEST_TARGET_NAME}")
# TODO compare output csv with a static output csv (that it should produce)
camitk_init_test(${LMLTEST_TARGET_NAME})
# should pass because lmltest run with no arguments shows usage and exit success
camitk_add_test(PROJECT_NAME ${LMLTEST_BASENAME} TEST_SUFFIX "-")

# should pass because invoking lmltest with a faulty arguments results in printing
# an "Argument error" message (and exit failure)
camitk_add_test(EXECUTABLE_ARGS "-error" 
                PASS_REGULAR_EXPRESSION "Argument errors: "
                PROJECT_NAME ${LMLTEST_BASENAME} TEST_SUFFIX "-")

# should pass because reading test.lml should not modify it (input == output)
if(NOT WIN32) #this test fails on windows7 VM due to missing tweek for -debug
camitk_add_test(EXECUTABLE_ARGS "-i ${CMAKE_CURRENT_SOURCE_DIR}/test.lml"
                PASS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/test.lml 
                PROJECT_NAME ${LMLTEST_BASENAME} TEST_SUFFIX "-")
endif()

