36 lines
1.4 KiB
CMake
36 lines
1.4 KiB
CMake
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()
|