]> gerrit.simantics Code Review - simantics/fmil.git/blob - org.simantics.fmil.core/native/FMILibrary/Config.cmake/test_fmi1.cmake
Add FMILibrary-2.0.3 to org.simantics.fmil.core\native.
[simantics/fmil.git] / org.simantics.fmil.core / native / FMILibrary / Config.cmake / test_fmi1.cmake
1 #    Copyright (C) 2012 Modelon AB\r
2 \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
5 \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
10 \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
13 \r
14 include_directories(${RTTESTDIR}/FMI1)\r
15 \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
18 \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
21 \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
26 \r
27 set(FMU_DUMMY_FOLDER ${RTTESTDIR}/FMI1/fmu_dummy)\r
28 \r
29 set(FMU_DUMMY_ME_SOURCE\r
30   ${FMU_DUMMY_FOLDER}/fmu1_model_me.c\r
31 )\r
32 set(FMU_DUMMY_CS_SOURCE\r
33   ${FMU_DUMMY_FOLDER}/fmu1_model_cs.c\r
34 )\r
35 set(FMU_DUMMY_HEADERS\r
36   ${FMU_DUMMY_FOLDER}/fmu1_model.h\r
37   ${FMU_DUMMY_FOLDER}/fmu1_model_defines.h\r
38 )\r
39 \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
42 \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
47 \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
50 \r
51 #Create FMU 1.0 ME/CS Model and generate library path to be used in test config\r
52 \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
55 \r
56 to_native_c_path("\"${CMAKE_CURRENT_BINARY_DIR}/\" CMAKE_INTDIR \"/${CMAKE_SHARED_LIBRARY_PREFIX}fmu1_dll_me${CMAKE_SHARED_LIBRARY_SUFFIX}\""\r
57                                 FMU1_DLL_ME_PATH)\r
58 to_native_c_path("\"${CMAKE_CURRENT_BINARY_DIR}/\" CMAKE_INTDIR \"/${CMAKE_SHARED_LIBRARY_PREFIX}fmu1_dll_cs${CMAKE_SHARED_LIBRARY_SUFFIX}\""\r
59                                 FMU1_DLL_CS_PATH)\r
60 \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
66 \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
71 \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
76 \r
77 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_ME_MODEL_IDENTIFIER}_me.fmu" FMU_ME_PATH)\r
78 \r
79 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_CS_MODEL_IDENTIFIER}_cs.fmu" FMU_CS_PATH)\r
80 \r
81 to_native_c_path("${TEST_OUTPUT_FOLDER}/${FMU_DUMMY_CS_MODEL_IDENTIFIER}_cs_tc.fmu" FMU_CS_TC_PATH)\r
82 \r
83 # set(FMU_TEMPFOLDER ${TEST_OUTPUT_FOLDER}/tempfolder)\r
84 to_native_c_path(${TEST_OUTPUT_FOLDER}/tempfolder FMU_TEMPFOLDER)\r
85 \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
95 \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
98 \r
99 ##Add logger test\r
100 add_executable (fmi1_logger_test ${RTTESTDIR}/FMI1/fmi1_logger_test.c)\r
101 target_link_libraries (fmi1_logger_test  ${FMILIBFORTEST}) \r
102 \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
105 \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
108 \r
109 set_target_properties(\r
110         fmi_import_me_test \r
111         fmi_import_cs_test \r
112         fmi_import_xml_test\r
113         fmi1_capi_cs_test\r
114         fmi1_capi_me_test\r
115         fmi1_logger_test\r
116     fmi1_xml_parsing_test\r
117     PROPERTIES FOLDER "Test/FMI1")\r
118 \r
119 SET_TESTS_PROPERTIES ( \r
120         ctest_fmi1_logger_test_check    \r
121         PROPERTIES DEPENDS ctest_fmi1_logger_test_run   \r
122 )\r
123 \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
136 endif()\r
137 \r
138 SET_TESTS_PROPERTIES ( \r
139         ctest_fmi_import_xml_test       \r
140         PROPERTIES DEPENDS ctest_fmi_import_cs_test     \r
141 )\r