#Test no log message:
# add_definitions(-DCAMITK_DISABLE_LOG)
camitk_application(NO_GUI
)


#----------
# Testing
#----------
camitk_init_test(${APPLICATION_TARGET_NAME})
# should pass because testlogger run with no arguments shows usage and exit success
camitk_add_test(PROJECT_NAME ${APPLICATION_TARGET_NAME} 
                TEST_SUFFIX "-"
)

# should pass because invoking testlogger with wrong number of argument should show usage and exit success
camitk_add_test(EXECUTABLE_ARGS "-onlyOneArg" 
                PROJECT_NAME ${APPLICATION_TARGET_NAME}
                TEST_SUFFIX "-"
)

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

# should pass because invoking testlogger with an inexistent and impossible to create directory 
# results in printing an "Argument error" message (and exit failure)
if(WIN32)
    set(BAD_DIRECTORY "C:/NUL/test")    # NUL works a bit like /dev/null see https://docs.microsoft.com/en-us/previous-versions/windows/embedded/aa939249(v=winembedded.5)
else()
    set(BAD_DIRECTORY "/dev/null/test") # works on VM, docker and host
endif()
camitk_add_test(EXECUTABLE_ARGS "-d ${BAD_DIRECTORY}" 
                PASS_REGULAR_EXPRESSION "Argument errors: "
                PROJECT_NAME ${APPLICATION_TARGET_NAME} TEST_SUFFIX "-")

if(WIN32) # this test fails on windows7 VM due to missing tweek for -debug
    set(LOG_OUTPUT_FILE log-default-win.log)
else()
    set(LOG_OUTPUT_FILE log-default-linux.log)
endif()
    
# Last test should have the same output as log-default-*.log depending on the OS
camitk_add_test(EXECUTABLE_ARGS "-d ${CMAKE_CURRENT_BINARY_DIR}/testlogger"
                PASS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LOG_OUTPUT_FILE}
                PROJECT_NAME ${APPLICATION_TARGET_NAME} 
                TEST_SUFFIX "-"
)
