1# Copyright (c) 2024 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14ets2panda_add_gtest(ast_builder_test 15 CPP_SOURCES ast_builder_test.cpp 16) 17 18ets2panda_add_gtest(es2panda_public_test 19 CPP_SOURCES es2panda_public_test.cpp 20) 21 22ets2panda_add_gtest(ast_verifier_short_test 23 CPP_SOURCES ast_verifier_short_test.cpp 24) 25 26ets2panda_add_gtest(ast_verifier_private_protected_public_access_correct_test 27 CPP_SOURCES ast_verifier_private_protected_public_access_correct_test.cpp 28) 29 30ets2panda_add_gtest(ast_verifier_private_access_negative_test_1_4 31 CPP_SOURCES ast_verifier_private_access_negative_test_1_4.cpp 32) 33 34ets2panda_add_gtest(ast_verifier_private_access_negative_test_5_7 35 CPP_SOURCES ast_verifier_private_access_negative_test_5_7.cpp 36) 37 38ets2panda_add_gtest(ast_verifier_protected_access_correct_test 39 CPP_SOURCES ast_verifier_protected_access_correct_test.cpp 40) 41 42ets2panda_add_gtest(ast_verifier_protected_access_negative_test_1_3 43 CPP_SOURCES ast_verifier_protected_access_negative_test_1_3.cpp 44) 45 46ets2panda_add_gtest(ast_verifier_protected_access_negative_test_4_6 47 CPP_SOURCES ast_verifier_protected_access_negative_test_4_6.cpp 48) 49 50ets2panda_add_gtest(ast_verifier_reference_typeannotation_test 51 CPP_SOURCES ast_verifier_reference_typeannotation_test.cpp 52) 53 54ets2panda_add_gtest(ast_verifier_identifier_has_variable_test 55 CPP_SOURCES ast_verifier_identifier_has_variable_test.cpp 56) 57 58ets2panda_add_gtest(ast_verifier_variable_has_enclosing_scope_test 59 CPP_SOURCES ast_verifier_variable_has_enclosing_scope_test.cpp 60) 61 62ets2panda_add_gtest(ast_verifier_variable_has_scope_test 63 CPP_SOURCES ast_verifier_variable_has_scope_test.cpp 64) 65 66ets2panda_add_gtest(ast_verifier_every_child_has_valid_parent_test 67 CPP_SOURCES ast_verifier_every_child_has_valid_parent_test.cpp 68) 69 70ets2panda_add_gtest(ast_verifier_check_infinite_loop_test 71 CPP_SOURCES ast_verifier_check_infinite_loop_test.cpp 72) 73 74ets2panda_add_gtest(ast_verifier_check_normal_loop_test 75 CPP_SOURCES ast_verifier_check_normal_loop_test.cpp 76) 77 78ets2panda_add_gtest(ast_verifier_check_abstract_call_test 79 CPP_SOURCES ast_verifier_check_abstract_call_test.cpp 80) 81 82ets2panda_add_gtest(ast_verifier_getter_setter_test 83 CPP_SOURCES ast_verifier_getter_setter_test.cpp 84) 85 86ets2panda_add_gtest(ast_verifier_getter_setter_neg_test 87 CPP_SOURCES ast_verifier_getter_setter_neg_test.cpp 88) 89 90ets2panda_add_gtest(ast_verifier_check_scope_declaration_test 91 CPP_SOURCES ast_verifier_check_scope_declaration_test.cpp 92) 93 94panda_add_library(e2p_test_plugin SHARED e2p_test_plugin.c) 95panda_target_include_directories(e2p_test_plugin 96 PRIVATE "${ES2PANDA_PATH}" 97 PRIVATE ${OUTPUT_DIR} 98) 99panda_target_link_libraries(e2p_test_plugin es2panda-public) 100 101 102panda_add_library(e2p_test_plugin_dump_json SHARED e2p_test_plugin_dump_json.c) 103panda_target_include_directories(e2p_test_plugin_dump_json 104 PRIVATE "${ES2PANDA_PATH}" 105 PRIVATE ${OUTPUT_DIR} 106) 107panda_target_link_libraries(e2p_test_plugin_dump_json es2panda-public) 108 109 110panda_add_library(e2p_test_plugin_ets_src SHARED e2p_test_plugin_ets_src.c) 111panda_target_include_directories(e2p_test_plugin_ets_src 112 PRIVATE "${ES2PANDA_PATH}" 113 PRIVATE ${OUTPUT_DIR} 114) 115panda_target_link_libraries(e2p_test_plugin_ets_src es2panda-public) 116 117 118panda_add_library(e2p_test_plugin_is SHARED e2p_test_plugin_is.c) 119panda_target_include_directories(e2p_test_plugin_is 120 PRIVATE "${ES2PANDA_PATH}" 121 PRIVATE ${OUTPUT_DIR} 122) 123panda_target_link_libraries(e2p_test_plugin_is es2panda-public) 124 125 126add_custom_target(es2panda-plugin-test 127 COMMENT "Test es2panda plugin functionality" 128 129 COMMAND ${CMAKE_COMMAND} -E env 130 LD_LIBRARY_PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${PANDA_RUN_PREFIX} $<TARGET_FILE:es2panda> --plugins=e2p_test_plugin 131 --extension=sts "${CMAKE_CURRENT_SOURCE_DIR}/t.sts" > "${CMAKE_CURRENT_BINARY_DIR}/plugin_test.out" 132 COMMAND ${CMAKE_COMMAND} -E compare_files 133 "${CMAKE_CURRENT_BINARY_DIR}/plugin_test.out" "${CMAKE_CURRENT_SOURCE_DIR}/plugin_test-expected.txt" 134 135 COMMAND ${CMAKE_COMMAND} -E env 136 LD_LIBRARY_PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${PANDA_RUN_PREFIX} $<TARGET_FILE:es2panda> --plugins=e2p_test_plugin_dump_json 137 "${CMAKE_CURRENT_SOURCE_DIR}/t.sts" > "${CMAKE_CURRENT_BINARY_DIR}/e2p_test_plugin_dump_json.out" 138 COMMAND ${CMAKE_COMMAND} -E compare_files 139 "${CMAKE_CURRENT_BINARY_DIR}/e2p_test_plugin_dump_json.out" "${CMAKE_CURRENT_SOURCE_DIR}/e2p_test_plugin_dump_json-expected.txt" 140 141 COMMAND ${CMAKE_COMMAND} -E env 142 LD_LIBRARY_PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${PANDA_RUN_PREFIX} $<TARGET_FILE:es2panda> --plugins=e2p_test_plugin_ets_src 143 "${CMAKE_CURRENT_SOURCE_DIR}/t.sts" > "${CMAKE_CURRENT_BINARY_DIR}/e2p_test_plugin_ets_src.out" 144 COMMAND ${CMAKE_COMMAND} -E compare_files 145 "${CMAKE_CURRENT_BINARY_DIR}/e2p_test_plugin_ets_src.out" "${CMAKE_CURRENT_SOURCE_DIR}/e2p_test_plugin_ets_src-expected.txt" 146 147 COMMAND ${CMAKE_COMMAND} -E env 148 LD_LIBRARY_PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${PANDA_RUN_PREFIX} $<TARGET_FILE:es2panda> --plugins=e2p_test_plugin_is 149 "${CMAKE_CURRENT_SOURCE_DIR}/t.sts" > "${CMAKE_CURRENT_BINARY_DIR}/e2p_test_plugin_is.out" 150 COMMAND ${CMAKE_COMMAND} -E compare_files 151 "${CMAKE_CURRENT_BINARY_DIR}/e2p_test_plugin_is.out" "${CMAKE_CURRENT_SOURCE_DIR}/e2p_test_plugin_is-expected.txt" 152) 153 154 155add_dependencies(es2panda-plugin-test es2panda e2p_test_plugin e2p_test_plugin_dump_json e2p_test_plugin_ets_src e2p_test_plugin_is) 156add_dependencies(es2panda_tests es2panda-plugin-test) 157