1 # Copyright (C) 2012 Modelon AB
3 # This program is free software: you can redistribute it and/or modify
4 # it under the terms of the BSD style license.
6 # # This program is distributed in the hope that it will be useful,
7 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 # FMILIB_License.txt file for more details.
11 # You should have received a copy of the FMILIB_License.txt file
12 # along with this program. If not, contact Modelon AB <http://www.modelon.com>.
14 include_directories(${RTTESTDIR}/FMI2)
17 #Defines for the test FMUs
18 set(FMU2_DUMMY_ME_MODEL_IDENTIFIER BouncingBall2) #This must be the same as in the xml-file
19 set(FMU2_DUMMY_CS_MODEL_IDENTIFIER BouncingBall2) #This must be the same as in the xml-file
20 set(FMU2_DUMMY_MF_MODEL_IDENTIFIER BouncingBall2_malformed) #This must be the same as in the xml-file
22 set(FMU2_DUMMY_FOLDER ${RTTESTDIR}/FMI2/fmu_dummy)
23 to_native_c_path(${TEST_OUTPUT_FOLDER}/tempfolder/FMI2 FMU2_TEMPFOLDER)
25 set(FMU2_DUMMY_ME_SOURCE
26 ${FMU2_DUMMY_FOLDER}/fmu2_model_me.c
28 set(FMU2_DUMMY_CS_SOURCE
29 ${FMU2_DUMMY_FOLDER}/fmu2_model_cs.c
31 set(FMU2_DUMMY_HEADERS
32 ${FMU2_DUMMY_FOLDER}/fmu2_model.h
33 ${FMU2_DUMMY_FOLDER}/fmu2_model_defines.h
36 add_library(fmu2_dll_me SHARED ${FMU2_DUMMY_ME_SOURCE} ${FMU2_DUMMY_HEADERS})
37 add_library(fmu2_dll_cs SHARED ${FMU2_DUMMY_CS_SOURCE} ${FMU2_DUMMY_HEADERS})
39 set(XML_ME_PATH ${FMU2_DUMMY_FOLDER}/modelDescription_me.xml)
40 set(XML_CS_PATH ${FMU2_DUMMY_FOLDER}/modelDescription_cs.xml)
41 set(XML_MF_PATH ${FMU2_DUMMY_FOLDER}/modelDescription_malformed.xml)
43 set(SHARED_LIBRARY_ME_PATH ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}fmu2_dll_me${CMAKE_SHARED_LIBRARY_SUFFIX})
44 set(SHARED_LIBRARY_CS_PATH ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}fmu2_dll_cs${CMAKE_SHARED_LIBRARY_SUFFIX})
46 #Create FMU 2.0 ME/CS Model and generate library path
48 to_native_c_path("\"${SHARED_LIBRARY_ME_PATH}\"" DLL_OUTPUT_PATH_ME_DEFINE)
49 to_native_c_path("\"${SHARED_LIBRARY_CS_PATH}\"" DLL_OUTPUT_PATH_CS_DEFINE)
51 to_native_c_path("\"${CMAKE_CURRENT_BINARY_DIR}/\" CMAKE_INTDIR \"/${CMAKE_SHARED_LIBRARY_PREFIX}fmu2_dll_me${CMAKE_SHARED_LIBRARY_SUFFIX}\""
53 to_native_c_path("\"${CMAKE_CURRENT_BINARY_DIR}/\" CMAKE_INTDIR \"/${CMAKE_SHARED_LIBRARY_PREFIX}fmu2_dll_cs${CMAKE_SHARED_LIBRARY_SUFFIX}\""
56 #function(compress_fmu OUTPUT_FOLDER MODEL_IDENTIFIER FILE_NAME_CS_ME_EXT TARGET_NAME XML_PATH SHARED_LIBRARY_PATH)
57 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU2_DUMMY_ME_MODEL_IDENTIFIER}" "me" "fmu2_dll_me" "${XML_ME_PATH}" "${SHARED_LIBRARY_ME_PATH}")
58 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU2_DUMMY_CS_MODEL_IDENTIFIER}" "cs" "fmu2_dll_cs" "${XML_CS_PATH}" "${SHARED_LIBRARY_CS_PATH}")
59 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU2_DUMMY_MF_MODEL_IDENTIFIER}" "mf" "fmu2_dll_cs" "${XML_MF_PATH}" "${SHARED_LIBRARY_CS_PATH}")
61 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU2_DUMMY_ME_MODEL_IDENTIFIER}_me.fmu" FMU2_ME_PATH)
62 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU2_DUMMY_CS_MODEL_IDENTIFIER}_cs.fmu" FMU2_CS_PATH)
63 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU2_DUMMY_CS_MODEL_IDENTIFIER}_mf.fmu" FMU2_MF_PATH)
65 add_executable (fmi2_xml_parsing_test ${RTTESTDIR}/FMI2/fmi2_xml_parsing_test.c )
66 target_link_libraries (fmi2_xml_parsing_test ${FMILIBFORTEST} )
67 add_executable (fmi2_import_xml_test ${RTTESTDIR}/FMI2/fmi2_import_xml_test.cc )
68 target_link_libraries (fmi2_import_xml_test ${FMILIBFORTEST} )
69 add_executable (fmi2_import_me_test ${RTTESTDIR}/FMI2/fmi2_import_me_test.c )
70 target_link_libraries (fmi2_import_me_test ${FMILIBFORTEST} )
71 add_executable (fmi2_import_cs_test ${RTTESTDIR}/FMI2/fmi2_import_cs_test.c )
72 target_link_libraries (fmi2_import_cs_test ${FMILIBFORTEST} )
73 set_target_properties(
76 fmi2_import_me_test fmi2_import_cs_test
77 PROPERTIES FOLDER "Test/FMI2"
79 set(FAIL_NAME_CHECK 0)
80 set(PASS_NAME_CHECK 1)
83 add_test(ctest_fmi2_xml_parsing_test fmi2_xml_parsing_test ${RTTESTDIR}/FMI2/parser_test_xmls/)
84 ADD_TEST(ctest_fmi2_import_xml_test_empty fmi2_import_xml_test ${FMU2_DUMMY_FOLDER} ${EXPECT_ERROR})
85 add_test(ctest_fmi2_import_xml_test_me fmi2_import_xml_test ${TEST_OUTPUT_FOLDER}/${FMU2_DUMMY_ME_MODEL_IDENTIFIER}_me)
86 add_test(ctest_fmi2_import_xml_test_cs fmi2_import_xml_test ${TEST_OUTPUT_FOLDER}/${FMU2_DUMMY_CS_MODEL_IDENTIFIER}_cs)
87 add_test(ctest_fmi2_import_xml_test_mf fmi2_import_xml_test ${TEST_OUTPUT_FOLDER}/${FMU2_DUMMY_MF_MODEL_IDENTIFIER}_mf)
88 set_tests_properties(ctest_fmi2_import_xml_test_mf PROPERTIES WILL_FAIL TRUE)
89 add_test(ctest_fmi2_import_test_me fmi2_import_me_test ${FMU2_ME_PATH} ${FMU_TEMPFOLDER})
90 add_test(ctest_fmi2_import_test_cs fmi2_import_cs_test ${FMU2_CS_PATH} ${FMU_TEMPFOLDER})
92 if(FMILIB_BUILD_BEFORE_TESTS)
93 SET_TESTS_PROPERTIES (
94 ctest_fmi2_xml_parsing_test
95 ctest_fmi2_import_xml_test_me
96 ctest_fmi2_import_xml_test_cs
97 ctest_fmi2_import_xml_test_mf
98 ctest_fmi2_import_xml_test_empty
99 ctest_fmi2_import_test_me
100 ctest_fmi2_import_test_cs
101 PROPERTIES DEPENDS ctest_build_all)