Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
function (setup_test_directory)
|
||||
# NOTE (aw): this function got quite complex, it could be simpler if
|
||||
# the tests would use a more consistent directory layout
|
||||
|
||||
set(options
|
||||
USE_FILESYSTEM_HIERARCHY_STANDARD
|
||||
)
|
||||
|
||||
set(one_value_args
|
||||
CONFIG
|
||||
USER_CONFIG
|
||||
)
|
||||
set(multi_value_args
|
||||
TYPE_FILES
|
||||
MODULES
|
||||
INTERFACE_FILES
|
||||
)
|
||||
|
||||
cmake_parse_arguments(arg "${options}" "${one_value_args}" "${multi_value_args}" ${ARGN})
|
||||
|
||||
if (NOT arg_UNPARSED_ARGUMENTS)
|
||||
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} requires first argument to be the name")
|
||||
endif()
|
||||
|
||||
list(GET arg_UNPARSED_ARGUMENTS 0 NAME)
|
||||
if (NOT NAME STREQUAL ARGV0)
|
||||
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} unexpected argument: ${NAME}")
|
||||
endif()
|
||||
|
||||
list(LENGTH arg_UNPARSED_ARGUMENTS UNPARSED_ARGUMENTS_COUNT)
|
||||
if (UNPARSED_ARGUMENTS_COUNT GREATER 1)
|
||||
list(GET arg_UNPARSED_ARGUMENTS 1 MODULE)
|
||||
if (NOT MODULE STREQUAL ARGV1)
|
||||
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} unexpected argument: ${MODULE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (UNPARSED_ARGUMENTS_COUNT GREATER 2)
|
||||
list(GET arg_UNPARSED_ARGUMENTS 2 INTERFACE_FILE)
|
||||
if (NOT INTERFACE_FILE STREQUAL ARGV2)
|
||||
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} unexpected argument: ${INTERFACE_FILE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (UNPARSED_ARGUMENTS_COUNT GREATER 3)
|
||||
list(GET arg_UNPARSED_ARGUMENTS 3 UNKNOWN_ARG)
|
||||
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} unknown argument: ${UNKNOWN_ARG}")
|
||||
endif()
|
||||
|
||||
set(DIR ${CMAKE_CURRENT_BINARY_DIR}/${NAME})
|
||||
file(MAKE_DIRECTORY "${DIR}")
|
||||
|
||||
set(SHARE_EVEREST_DIR ${DIR})
|
||||
if (arg_USE_FILESYSTEM_HIERARCHY_STANDARD)
|
||||
set(SHARE_EVEREST_DIR "${DIR}/share/everest")
|
||||
endif ()
|
||||
file(MAKE_DIRECTORY "${SHARE_EVEREST_DIR}")
|
||||
|
||||
file(COPY ${PROJECT_SOURCE_DIR}/schemas/migrations DESTINATION ${DIR}/share/everest/)
|
||||
|
||||
set (SCHEMAS_DIR "${SHARE_EVEREST_DIR}/schemas")
|
||||
file(MAKE_DIRECTORY "${SCHEMAS_DIR}")
|
||||
file(COPY ${PROJECT_SOURCE_DIR}/schemas/ DESTINATION ${SCHEMAS_DIR}/)
|
||||
|
||||
set (INTERFACES_DIR "${SHARE_EVEREST_DIR}/interfaces")
|
||||
file(MAKE_DIRECTORY "${INTERFACES_DIR}")
|
||||
|
||||
set (TYPES_DIR "${SHARE_EVEREST_DIR}/types")
|
||||
file(MAKE_DIRECTORY "${TYPES_DIR}")
|
||||
|
||||
|
||||
file(MAKE_DIRECTORY "${SHARE_EVEREST_DIR}/errors")
|
||||
file(MAKE_DIRECTORY "${SHARE_EVEREST_DIR}/www")
|
||||
|
||||
|
||||
set(MODULES_DIR "${DIR}/modules")
|
||||
if (arg_USE_FILESYSTEM_HIERARCHY_STANDARD)
|
||||
set(MODULES_DIR "${DIR}/libexec/everest/modules")
|
||||
endif()
|
||||
file(MAKE_DIRECTORY "${MODULES_DIR}")
|
||||
|
||||
set(CONFIG_DIR ${DIR})
|
||||
if (arg_USE_FILESYSTEM_HIERARCHY_STANDARD)
|
||||
set(CONFIG_DIR "${DIR}/etc/everest")
|
||||
endif ()
|
||||
file(MAKE_DIRECTORY "${CONFIG_DIR}")
|
||||
|
||||
if (arg_USE_FILESYSTEM_HIERARCHY_STANDARD)
|
||||
configure_file(test_logging.ini ${CONFIG_DIR}/default_logging.cfg COPYONLY)
|
||||
else ()
|
||||
configure_file(test_logging.ini ${CONFIG_DIR}/logging.ini COPYONLY)
|
||||
endif()
|
||||
|
||||
# FIXME (aw): these two need to exist anyway
|
||||
file(MAKE_DIRECTORY "${DIR}/etc/everest")
|
||||
file(MAKE_DIRECTORY "${DIR}/share/everest")
|
||||
|
||||
|
||||
# FIXME (aw): config files get special directory treatment, this
|
||||
# should be consistent too (tests need to be changed)
|
||||
if (arg_CONFIG)
|
||||
# NOTE (aw): this is for json config file compatibility, but
|
||||
# this is probably not in use anymore and should be removed
|
||||
get_filename_component(CONFIG_EXT ${arg_CONFIG} LAST_EXT)
|
||||
configure_file(test_configs/${arg_CONFIG} ${DIR}/config${CONFIG_EXT} COPYONLY)
|
||||
else ()
|
||||
configure_file(test_configs/${NAME}_config.yaml ${DIR}/config.yaml COPYONLY)
|
||||
endif()
|
||||
|
||||
if (arg_USER_CONFIG)
|
||||
configure_file(test_configs/${arg_USER_CONFIG} ${DIR}/user-config/config.yaml COPYONLY)
|
||||
endif()
|
||||
|
||||
if (MODULE)
|
||||
file(COPY test_modules/${MODULE} DESTINATION ${MODULES_DIR})
|
||||
endif()
|
||||
|
||||
if (INTERFACE_FILE)
|
||||
file(COPY test_interfaces/${INTERFACE_FILE}.yaml DESTINATION ${INTERFACES_DIR}/)
|
||||
endif()
|
||||
|
||||
if (arg_TYPE_FILES)
|
||||
foreach(TYPE_FILE ${arg_TYPE_FILES})
|
||||
file(COPY test_types/${TYPE_FILE} DESTINATION ${TYPES_DIR}/)
|
||||
endforeach()
|
||||
endif()
|
||||
if (arg_MODULES)
|
||||
foreach(MODULE ${arg_MODULES})
|
||||
file(COPY test_modules/${MODULE} DESTINATION ${MODULES_DIR})
|
||||
endforeach()
|
||||
endif()
|
||||
if (arg_INTERFACE_FILES)
|
||||
foreach(INTERFACE_FILE ${arg_INTERFACE_FILES})
|
||||
file(COPY test_interfaces/${INTERFACE_FILE}.yaml DESTINATION ${INTERFACES_DIR}/)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user