blob: 373cb78f0759f50e47e31e5eba2580d660493f13 [file] [log] [blame]
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +09001#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
19
James E. King IIIc9ac8d22019-01-07 16:46:45 -050020# Unit tests for the compiler still require boost
21include(BoostMacros)
22REQUIRE_BOOST_HEADERS()
23set(BOOST_COMPONENTS unit_test_framework)
24REQUIRE_BOOST_LIBRARIES(BOOST_COMPONENTS)
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +090025
26if(${WITH_PLUGIN})
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +090027 # Make sure gen-cpp files can be included
28 include_directories("${CMAKE_CURRENT_BINARY_DIR}")
29
30 set(plugintest_SOURCES
31 plugin/conversion_test.cc
32 )
33 add_executable(plugintest ${plugintest_SOURCES})
James E. King III278528c2019-01-11 12:17:44 -050034 target_link_libraries(plugintest
35 thriftc
36 ${Boost_LIBRARIES}
37 )
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +090038 add_test(NAME PluginUnitTest COMMAND plugintest)
39
40 set(thrift-gen-mycpp_SOURCES
dtmuller052abc32016-07-26 11:58:28 +020041 ../src/thrift/generate/t_cpp_generator.cc
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +090042 plugin/cpp_plugin.cc
43 )
44 add_executable(thrift-gen-mycpp ${thrift-gen-mycpp_SOURCES})
James E. King III278528c2019-01-11 12:17:44 -050045 target_link_libraries(thrift-gen-mycpp thriftc)
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +090046
47 if(CMAKE_BUILD_TYPE STREQUAL "Debug")
48 set(BUILDTYPE "Debug")
49 else()
50 # RelWithDebInfo generates binaries in "Release" directory too
51 set(BUILDTYPE "Release")
52 endif()
53
54 set_directory_properties(PROPERTIES
55 ADDITIONAL_MAKE_CLEAN_FILES gen-cpp
56 ADDITIONAL_MAKE_CLEAN_FILES gen-mycpp)
57
58 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gen-cpp)
59 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gen-mycpp)
60 add_test(NAME PluginIntegrationTest
61 COMMAND ${CMAKE_COMMAND}
62 -DTHRIFT_COMPILER=${THRIFT_COMPILER}
63 -DBINDIR=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
64 -DBUILDTYPE=${BUILDTYPE}
65 -DCURDIR=${CMAKE_CURRENT_BINARY_DIR}
66 -DSRCDIR=${CMAKE_CURRENT_SOURCE_DIR}
67 -P ${CMAKE_CURRENT_SOURCE_DIR}/cpp_plugin_test.cmake)
68endif()
Mustafa Senol Cosar09c1f372018-04-04 15:25:28 +030069
nsrtvwls014f53f2018-09-28 08:11:21 -070070file(GLOB KEYWORD_SAMPLES "${CMAKE_CURRENT_SOURCE_DIR}/keyword-samples/*.thrift")
71foreach(LANG ${thrift_compiler_LANGS})
72 foreach(SAMPLE ${KEYWORD_SAMPLES})
73 get_filename_component(FILENAME ${SAMPLE} NAME_WE)
74 add_test(NAME "${LANG}_${FILENAME}"
75 COMMAND thrift-compiler --gen ${LANG} ${SAMPLE})
76 set_tests_properties("${LANG}_${FILENAME}" PROPERTIES
77 PASS_REGULAR_EXPRESSION "Cannot use reserved language keyword")
78 endforeach()
79endforeach()
80
81
James E. King III278528c2019-01-11 12:17:44 -050082find_package(PythonInterp QUIET)
83if(PYTHONINTERP_FOUND)
84 add_test(NAME StalenessCheckTest COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/compiler/staleness_check.py ${THRIFT_COMPILER})
85else()
86 message(WARNING "Skipping StalenessCheckTest as there is no python interpreter available.")
87endif()