1# Copyright (c) PLUMgrid, Inc. 2# Licensed under the Apache License, Version 2.0 (the "License") 3 4include_directories(${PROJECT_SOURCE_DIR}/src/cc) 5include_directories(${PROJECT_SOURCE_DIR}/src/cc/api) 6include_directories(${PROJECT_SOURCE_DIR}/src/cc/libbpf/include/uapi) 7include_directories(${PROJECT_SOURCE_DIR}/tests/python/include) 8 9add_executable(test_static test_static.c) 10if(NOT CMAKE_USE_LIBBPF_PACKAGE) 11 target_link_libraries(test_static bcc-static) 12else() 13 target_link_libraries(test_static bcc-shared) 14endif() 15 16add_test(NAME c_test_static COMMAND ${TEST_WRAPPER} c_test_static sudo ${CMAKE_CURRENT_BINARY_DIR}/test_static) 17 18set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-result -fPIC") 19set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-result -fPIC") 20 21if(ENABLE_USDT) 22set(TEST_LIBBCC_SOURCES 23 test_libbcc.cc 24 test_c_api.cc 25 test_array_table.cc 26 test_bpf_table.cc 27 test_cg_storage.cc 28 test_hash_table.cc 29 test_map_in_map.cc 30 test_perf_event.cc 31 test_pinned_table.cc 32 test_prog_table.cc 33 test_queuestack_table.cc 34 test_shared_table.cc 35 test_sk_storage.cc 36 test_sock_table.cc 37 test_usdt_args.cc 38 test_usdt_probes.cc 39 utils.cc 40 test_parse_tracepoint.cc) 41 42file(COPY dummy_proc_map.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) 43add_library(usdt_test_lib SHARED usdt_test_lib.cc) 44 45if(NOT CMAKE_USE_LIBBPF_PACKAGE) 46 add_executable(test_libbcc ${TEST_LIBBCC_SOURCES}) 47 add_dependencies(test_libbcc bcc-shared) 48 49 target_link_libraries(test_libbcc ${PROJECT_BINARY_DIR}/src/cc/libbcc.so dl usdt_test_lib) 50 set_target_properties(test_libbcc PROPERTIES INSTALL_RPATH ${PROJECT_BINARY_DIR}/src/cc) 51 target_compile_definitions(test_libbcc PRIVATE -DLIBBCC_NAME=\"libbcc.so\") 52 53 add_test(NAME test_libbcc COMMAND ${TEST_WRAPPER} c_test_all sudo ${CMAKE_CURRENT_BINARY_DIR}/test_libbcc) 54endif() 55 56if(LIBBPF_FOUND) 57 add_executable(test_libbcc_no_libbpf ${TEST_LIBBCC_SOURCES}) 58 add_dependencies(test_libbcc_no_libbpf bcc-shared) 59 60 target_link_libraries(test_libbcc_no_libbpf ${PROJECT_BINARY_DIR}/src/cc/libbcc.so dl usdt_test_lib ${LIBBPF_LIBRARIES}) 61 set_target_properties(test_libbcc_no_libbpf PROPERTIES INSTALL_RPATH ${PROJECT_BINARY_DIR}/src/cc) 62 target_compile_definitions(test_libbcc_no_libbpf PRIVATE -DLIBBCC_NAME=\"libbcc.so\") 63 64 add_test(NAME test_libbcc_no_libbpf COMMAND ${TEST_WRAPPER} c_test_all_no_libbpf sudo ${CMAKE_CURRENT_BINARY_DIR}/test_libbcc_no_libbpf) 65endif() 66 67endif(ENABLE_USDT) 68