1 # Copyright (C) 2012 Modelon AB
\r
3 # This program is free software: you can redistribute it and/or modify
\r
4 # it under the terms of the BSD style license.
\r
6 # # This program is distributed in the hope that it will be useful,
\r
7 # but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
8 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
9 # FMILIB_License.txt file for more details.
\r
11 # You should have received a copy of the FMILIB_License.txt file
\r
12 # along with this program. If not, contact Modelon AB <http://www.modelon.com>.
\r
14 include_directories(${RTTESTDIR}/FMI1)
\r
16 add_executable (fmi1_capi_cs_test ${RTTESTDIR}/FMI1/fmi1_capi_cs_test.c )
\r
17 target_link_libraries (fmi1_capi_cs_test ${FMICAPI_LIBRARIES})
\r
19 add_executable (fmi1_capi_me_test ${RTTESTDIR}/FMI1/fmi1_capi_me_test.c )
\r
20 target_link_libraries (fmi1_capi_me_test ${FMICAPI_LIBRARIES})
\r
22 #Defines for the test FMUs
\r
23 set(FMU_DUMMY_ME_MODEL_IDENTIFIER BouncingBall) #This must be the same as in the xml-file
\r
24 set(FMU_DUMMY_CS_MODEL_IDENTIFIER BouncingBall) #This must be the same as in the xml-file
\r
25 set(FMU_DUMMY_MF_MODEL_IDENTIFIER BouncingBall_malformed) #This must be the same as in the xml-file
\r
27 set(FMU_DUMMY_FOLDER ${RTTESTDIR}/FMI1/fmu_dummy)
\r
29 set(FMU_DUMMY_ME_SOURCE
\r
30 ${FMU_DUMMY_FOLDER}/fmu1_model_me.c
\r
32 set(FMU_DUMMY_CS_SOURCE
\r
33 ${FMU_DUMMY_FOLDER}/fmu1_model_cs.c
\r
35 set(FMU_DUMMY_HEADERS
\r
36 ${FMU_DUMMY_FOLDER}/fmu1_model.h
\r
37 ${FMU_DUMMY_FOLDER}/fmu1_model_defines.h
\r
40 add_library(fmu1_dll_me SHARED ${FMU_DUMMY_ME_SOURCE} ${FMU_DUMMY_HEADERS})
\r
41 add_library(fmu1_dll_cs SHARED ${FMU_DUMMY_CS_SOURCE} ${FMU_DUMMY_HEADERS})
\r
43 set(XML_ME_PATH ${FMU_DUMMY_FOLDER}/modelDescription_me.xml)
\r
44 set(XML_CS_PATH ${FMU_DUMMY_FOLDER}/modelDescription_cs.xml)
\r
45 set(XML_CS_TC_PATH ${FMU_DUMMY_FOLDER}/modelDescription_cs_tc.xml)
\r
46 set(XML_MF_PATH ${FMU_DUMMY_FOLDER}/modelDescription_malformed.xml)
\r
48 set(SHARED_LIBRARY_ME_PATH ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}fmu1_dll_me${CMAKE_SHARED_LIBRARY_SUFFIX})
\r
49 set(SHARED_LIBRARY_CS_PATH ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}fmu1_dll_cs${CMAKE_SHARED_LIBRARY_SUFFIX})
\r
51 #Create FMU 1.0 ME/CS Model and generate library path to be used in test config
\r
53 to_native_c_path("\"${SHARED_LIBRARY_ME_PATH}\"" DLL_OUTPUT_PATH_ME_DEFINE)
\r
54 to_native_c_path("\"${SHARED_LIBRARY_CS_PATH}\"" DLL_OUTPUT_PATH_CS_DEFINE)
\r
56 to_native_c_path("\"${CMAKE_CURRENT_BINARY_DIR}/\" CMAKE_INTDIR \"/${CMAKE_SHARED_LIBRARY_PREFIX}fmu1_dll_me${CMAKE_SHARED_LIBRARY_SUFFIX}\""
\r
58 to_native_c_path("\"${CMAKE_CURRENT_BINARY_DIR}/\" CMAKE_INTDIR \"/${CMAKE_SHARED_LIBRARY_PREFIX}fmu1_dll_cs${CMAKE_SHARED_LIBRARY_SUFFIX}\""
\r
61 #function(compress_fmu OUTPUT_FOLDER MODEL_IDENTIFIER FILE_NAME_CS_ME_EXT TARGET_NAME XML_PATH SHARED_LIBRARY_PATH)
\r
62 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU_DUMMY_MF_MODEL_IDENTIFIER}" "mf" "fmu1_dll_me" "${XML_MF_PATH}" "${SHARED_LIBRARY_ME_PATH}")
\r
63 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU_DUMMY_ME_MODEL_IDENTIFIER}" "me" "fmu1_dll_me" "${XML_ME_PATH}" "${SHARED_LIBRARY_ME_PATH}")
\r
64 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU_DUMMY_CS_MODEL_IDENTIFIER}" "cs" "fmu1_dll_cs" "${XML_CS_PATH}" "${SHARED_LIBRARY_CS_PATH}")
\r
65 compress_fmu("${TEST_OUTPUT_FOLDER}" "${FMU_DUMMY_CS_MODEL_IDENTIFIER}" "cs_tc" "fmu1_dll_cs" "${XML_CS_TC_PATH}" "${SHARED_LIBRARY_CS_PATH}")
\r
67 add_executable (fmi1_xml_parsing_test ${RTTESTDIR}/FMI1/fmi1_xml_parsing_test.c)
\r
68 target_link_libraries (fmi1_xml_parsing_test ${FMILIBFORTEST} )
\r
69 add_executable (fmi_import_xml_test ${RTTESTDIR}/FMI1/fmi_import_xml_test.c)
\r
70 target_link_libraries (fmi_import_xml_test ${FMILIBFORTEST} )
\r
72 add_executable (fmi_import_me_test ${RTTESTDIR}/FMI1/fmi_import_me_test.c)
\r
73 target_link_libraries (fmi_import_me_test ${FMILIBFORTEST})
\r
74 add_executable (fmi_import_cs_test ${RTTESTDIR}/FMI1/fmi_import_cs_test.c)
\r
75 target_link_libraries (fmi_import_cs_test ${FMILIBFORTEST})
\r
77 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_ME_MODEL_IDENTIFIER}_me.fmu" FMU_ME_PATH)
\r
79 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_CS_MODEL_IDENTIFIER}_cs.fmu" FMU_CS_PATH)
\r
81 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_CS_MODEL_IDENTIFIER}_cs_tc.fmu" FMU_CS_TC_PATH)
\r
83 # set(FMU_TEMPFOLDER ${TEST_OUTPUT_FOLDER}/tempfolder)
\r
84 to_native_c_path(${TEST_OUTPUT_FOLDER}/tempfolder FMU_TEMPFOLDER)
\r
86 add_test(ctest_fmi1_xml_parsing_test fmi1_xml_parsing_test ${RTTESTDIR}/FMI1/parser_test_xmls/)
\r
87 ADD_TEST(ctest_fmi_import_me_test fmi_import_me_test ${FMU_ME_PATH} ${FMU_TEMPFOLDER})
\r
88 ADD_TEST(ctest_fmi_import_cs_test fmi_import_cs_test ${FMU_CS_PATH} ${FMU_TEMPFOLDER} "modelDescription_cs.xml")
\r
89 ADD_TEST(ctest_fmi_import_cs_tc_test fmi_import_cs_test ${FMU_CS_TC_PATH} ${FMU_TEMPFOLDER} "modelDescription_cs_tc.xml")
\r
90 # the next test relies on the output from the previous one.
\r
91 ADD_TEST(ctest_fmi_import_xml_test_empty fmi_import_xml_test ${FMU_DUMMY_FOLDER})
\r
92 ADD_TEST(ctest_fmi_import_xml_test fmi_import_xml_test ${FMU_TEMPFOLDER})
\r
93 add_test(ctest_fmi_import_xml_test_mf fmi_import_xml_test ${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_MF_MODEL_IDENTIFIER}_mf)
\r
94 set_tests_properties(ctest_fmi_import_xml_test_mf PROPERTIES WILL_FAIL TRUE)
\r
96 ADD_TEST(ctest_fmi1_capi_cs_test fmi1_capi_cs_test)
\r
97 ADD_TEST(ctest_fmi1_capi_me_test fmi1_capi_me_test)
\r
100 add_executable (fmi1_logger_test ${RTTESTDIR}/FMI1/fmi1_logger_test.c)
\r
101 target_link_libraries (fmi1_logger_test ${FMILIBFORTEST})
\r
103 set(logger_output_file "${TEST_OUTPUT_FOLDER}/fmi1_logger_test_output.txt")
\r
104 set(logger_reference_file "${RTTESTDIR}/FMI1/fmi1_logger_test_output.txt")
\r
106 add_test(ctest_fmi1_logger_test_run fmi1_logger_test ${FMU_ME_PATH} ${FMU_TEMPFOLDER} ${logger_output_file})
\r
107 add_test(ctest_fmi1_logger_test_check ${CMAKE_COMMAND} -E compare_files ${logger_output_file} ${logger_reference_file})
\r
109 set_target_properties(
\r
110 fmi_import_me_test
\r
111 fmi_import_cs_test
\r
112 fmi_import_xml_test
\r
116 fmi1_xml_parsing_test
\r
117 PROPERTIES FOLDER "Test/FMI1")
\r
119 SET_TESTS_PROPERTIES (
\r
120 ctest_fmi1_logger_test_check
\r
121 PROPERTIES DEPENDS ctest_fmi1_logger_test_run
\r
124 if(FMILIB_BUILD_BEFORE_TESTS)
\r
125 SET_TESTS_PROPERTIES (
\r
126 ctest_fmi_import_me_test
\r
127 ctest_fmi_import_cs_test
\r
128 ctest_fmi_import_xml_test
\r
129 ctest_fmi_import_xml_test_empty
\r
130 ctest_fmi_import_xml_test_mf
\r
131 ctest_fmi1_capi_cs_test
\r
132 ctest_fmi1_capi_me_test
\r
133 ctest_fmi1_logger_test_run
\r
134 ctest_fmi1_xml_parsing_test
\r
135 PROPERTIES DEPENDS ctest_build_all)
\r
138 SET_TESTS_PROPERTIES (
\r
139 ctest_fmi_import_xml_test
\r
140 PROPERTIES DEPENDS ctest_fmi_import_cs_test
\r