if(WIN32) set(YANGLINT_INTERACTIVE OFF) else() set(YANGLINT_INTERACTIVE ON) endif() function(add_yanglint_test) cmake_parse_arguments(ADDTEST "" "NAME;VIA;SCRIPT" "" ${ARGN}) set(TEST_NAME yanglint_${ADDTEST_NAME}) if(${ADDTEST_VIA} STREQUAL "tclsh") set(WRAPPER ${PATH_TCLSH}) else() message(FATAL_ERROR "build: unexpected wrapper '${ADDTEST_VIA}'") endif() add_test(NAME ${TEST_NAME} COMMAND ${WRAPPER} ${CMAKE_CURRENT_SOURCE_DIR}/${ADDTEST_SCRIPT}) set_property(TEST ${TEST_NAME} APPEND PROPERTY ENVIRONMENT "TESTS_DIR=${CMAKE_CURRENT_SOURCE_DIR}") set_property(TEST ${TEST_NAME} APPEND PROPERTY ENVIRONMENT "YANG_MODULES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/modules") set_property(TEST ${TEST_NAME} APPEND PROPERTY ENVIRONMENT "YANGLINT=${PROJECT_BINARY_DIR}") endfunction(add_yanglint_test) if(ENABLE_TESTS) # tests of interactive mode using tclsh find_program(PATH_TCLSH NAMES tclsh) if(NOT PATH_TCLSH) message(WARNING "'tclsh' not found! The yanglint(1) interactive tests will not be available.") else() if(YANGLINT_INTERACTIVE) add_yanglint_test(NAME interactive VIA tclsh SCRIPT interactive/all.tcl) add_yanglint_test(NAME non-interactive VIA tclsh SCRIPT non-interactive/all.tcl) else() add_yanglint_test(NAME non-interactive VIA tclsh SCRIPT non-interactive/all.tcl) endif() endif() endif()