| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # Sources for a test helper binary. |
| ################################### |
| set(TEST_HELPER_SRC |
| active_user_test_helper.cpp |
| flags.cpp |
| http_server_test_helper.cpp |
| resources_utils.cpp |
| test_helper_main.cpp |
| utils.cpp) |
| |
| if (NOT WIN32) |
| list(APPEND TEST_HELPER_SRC |
| kill_policy_test_helper.cpp |
| containerizer/memory_test_helper.cpp) |
| endif () |
| |
| if (LINUX) |
| list(APPEND TEST_HELPER_SRC |
| containerizer/capabilities_test_helper.cpp |
| containerizer/setns_test_helper.cpp) |
| endif () |
| |
| |
| # Test utilities. |
| ################# |
| set(MESOS_TESTS_UTILS_SRC |
| active_user_test_helper.cpp |
| allocator.cpp |
| cluster.cpp |
| containerizer.cpp |
| environment.cpp |
| flags.cpp |
| http_server_test_helper.cpp |
| main.cpp |
| master/mock_master_api_subscriber.cpp |
| mesos.cpp |
| mock_docker.cpp |
| mock_fetcher.cpp |
| mock_registrar.cpp |
| mock_slave.cpp |
| module.cpp |
| resources_utils.cpp |
| utils.cpp |
| containerizer/launcher.cpp) |
| |
| if (NOT WIN32) |
| list(APPEND MESOS_TESTS_UTILS_SRC |
| kill_policy_test_helper.cpp |
| mock_csi_plugin.cpp |
| script.cpp |
| containerizer/memory_test_helper.cpp) |
| endif () |
| |
| if (LINUX) |
| list(APPEND MESOS_TESTS_UTILS_SRC |
| containerizer/capabilities_test_helper.cpp |
| containerizer/setns_test_helper.cpp) |
| endif () |
| |
| |
| # All the test sources. |
| ####################### |
| set(MESOS_TESTS_SRC |
| ${MESOS_TESTS_UTILS_SRC} |
| agent_container_api_tests.cpp |
| agent_operation_feedback_tests.cpp |
| anonymous_tests.cpp |
| api_tests.cpp |
| attributes_tests.cpp |
| authentication_tests.cpp |
| authorization_tests.cpp |
| check_tests.cpp |
| command_executor_tests.cpp |
| common_validation_tests.cpp |
| consumption_metrics_tests.cpp |
| container_daemon_tests.cpp |
| cram_md5_authentication_tests.cpp |
| credentials_tests.cpp |
| default_executor_tests.cpp |
| exception_tests.cpp |
| executor_http_api_tests.cpp |
| fault_tolerance_tests.cpp |
| fetcher_tests.cpp |
| files_tests.cpp |
| gc_tests.cpp |
| hdfs_tests.cpp |
| health_check_tests.cpp |
| hierarchical_allocator_benchmarks.cpp |
| hierarchical_allocator_tests.cpp |
| hook_tests.cpp |
| http_authentication_tests.cpp |
| http_fault_tolerance_tests.cpp |
| logging_tests.cpp |
| master_draining_tests.cpp |
| master_load_tests.cpp |
| master_maintenance_tests.cpp |
| master_slave_reconciliation_tests.cpp |
| master/update_framework_tests.cpp |
| metrics_tests.cpp |
| operation_reconciliation_tests.cpp |
| operation_status_update_manager_tests.cpp |
| partition_tests.cpp |
| paths_tests.cpp |
| protobuf_io_tests.cpp |
| rate_limiting_tests.cpp |
| resource_offers_tests.cpp |
| resource_provider_manager_tests.cpp |
| resource_provider_validation_tests.cpp |
| resource_quantities_tests.cpp |
| resources_tests.cpp |
| role_tests.cpp |
| scheduler_driver_tests.cpp |
| scheduler_event_call_tests.cpp |
| scheduler_http_api_tests.cpp |
| scheduler_tests.cpp |
| slave_authorization_tests.cpp |
| slave_compatibility_tests.cpp |
| slave_tests.cpp |
| slave_recovery_tests.cpp |
| slave_validation_tests.cpp |
| sorter_tests.cpp |
| task_status_update_manager_tests.cpp |
| uri_tests.cpp |
| uri_fetcher_tests.cpp |
| values_tests.cpp |
| zookeeper_url_tests.cpp) |
| |
| if (HAS_JAVA) |
| list(APPEND MESOS_TESTS_SRC |
| group_tests.cpp |
| registrar_zookeeper_tests.cpp |
| zookeeper.cpp |
| zookeeper_test_server.cpp |
| zookeeper_tests.cpp) |
| endif () |
| |
| if (ENABLE_SSL) |
| list(APPEND MESOS_TESTS_SRC |
| secret_generator_tests.cpp) |
| endif () |
| |
| list(APPEND MESOS_TESTS_SRC |
| common/future_tracker_tests.cpp |
| common/http_tests.cpp |
| common/http_tests.pb.cc |
| common/recordio_tests.cpp |
| common/type_utils_tests.cpp) |
| |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/containerizer_tests.cpp |
| containerizer/cpu_isolator_tests.cpp |
| containerizer/docker_containerizer_tests.cpp |
| containerizer/docker_tests.cpp |
| containerizer/memory_isolator_tests.cpp) |
| |
| if (NOT WIN32) |
| list(APPEND MESOS_TESTS_SRC |
| container_logger_tests.cpp |
| csi_client_tests.cpp |
| csi_utils_tests.cpp |
| disk_profile_adaptor_tests.cpp |
| disk_quota_tests.cpp |
| dynamic_weights_tests.cpp |
| examples_tests.cpp |
| fetcher_cache_tests.cpp |
| log_tests.cpp |
| master_allocator_tests.cpp |
| master_authorization_tests.cpp |
| master_benchmarks.cpp |
| master_contender_detector_tests.cpp |
| master_quota_tests.cpp |
| master_tests.cpp |
| master_validation_tests.cpp |
| module_tests.cpp |
| oversubscription_tests.cpp |
| persistent_volume_endpoints_tests.cpp |
| persistent_volume_tests.cpp |
| protobuf_utils_tests.cpp |
| reconciliation_tests.cpp |
| registrar_tests.cpp |
| reservation_endpoints_tests.cpp |
| reservation_tests.cpp |
| state_tests.cpp |
| teardown_tests.cpp |
| upgrade_tests.cpp |
| volume_gid_manager_tests.cpp) |
| |
| list(APPEND MESOS_TESTS_SRC |
| common/command_utils_tests.cpp) |
| |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/appc_spec_tests.cpp |
| containerizer/composing_containerizer_tests.cpp |
| containerizer/docker_spec_tests.cpp |
| containerizer/environment_secret_isolator_tests.cpp |
| containerizer/io_switchboard_tests.cpp |
| containerizer/isolator_tests.cpp |
| containerizer/mesos_containerizer_paths_tests.cpp |
| containerizer/mesos_containerizer_tests.cpp |
| containerizer/oci_spec_tests.cpp |
| containerizer/posix_rlimits_isolator_tests.cpp |
| containerizer/provisioner_appc_tests.cpp |
| containerizer/provisioner_backend_tests.cpp |
| containerizer/provisioner_docker_tests.cpp |
| containerizer/provisioner_paths_tests.cpp |
| containerizer/volume_sandbox_path_isolator_tests.cpp) |
| endif () |
| |
| if (LINUX) |
| list(APPEND MESOS_TESTS_SRC |
| agent_resource_provider_config_api_tests.cpp |
| ldcache_tests.cpp |
| ldd_tests.cpp |
| storage_local_resource_provider_tests.cpp |
| containerizer/capabilities_tests.cpp |
| containerizer/cgroups_isolator_tests.cpp |
| containerizer/cgroups_tests.cpp |
| containerizer/cni_isolator_tests.cpp |
| containerizer/docker_volume_isolator_tests.cpp |
| containerizer/fs_tests.cpp |
| containerizer/linux_capabilities_isolator_tests.cpp |
| containerizer/linux_nnp_isolator_tests.cpp |
| containerizer/linux_devices_isolator_tests.cpp |
| containerizer/linux_filesystem_isolator_tests.cpp |
| containerizer/memory_pressure_tests.cpp |
| containerizer/nested_mesos_containerizer_tests.cpp |
| containerizer/ns_tests.cpp |
| containerizer/nvidia_gpu_isolator_tests.cpp |
| containerizer/perf_tests.cpp |
| containerizer/rootfs.cpp |
| containerizer/runtime_isolator_tests.cpp |
| containerizer/sched_tests.cpp |
| containerizer/volume_host_path_isolator_tests.cpp |
| containerizer/volume_image_isolator_tests.cpp |
| containerizer/volume_secret_isolator_tests.cpp) |
| |
| if (ENABLE_XFS_DISK_ISOLATOR) |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/xfs_quota_tests.cpp) |
| endif() |
| |
| if (ENABLE_SECCOMP_ISOLATOR) |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/linux_seccomp_parser_tests.cpp |
| containerizer/linux_seccomp_isolator_tests.cpp) |
| endif() |
| |
| if (ENABLE_LAUNCHER_SEALING) |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/linux_memfd_tests.cpp) |
| endif() |
| |
| if (ENABLE_LINUX_ROUTING) |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/routing_tests.cpp) |
| endif () |
| |
| if (ENABLE_NETWORK_PORTS_ISOLATOR) |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/ports_isolator_tests.cpp) |
| endif() |
| |
| if (ENABLE_PORT_MAPPING_ISOLATOR) |
| list(APPEND MESOS_TESTS_SRC |
| containerizer/port_mapping_tests.cpp) |
| endif() |
| endif () |
| |
| |
| # THE TEST AND HELPER EXECUTABLES. |
| ################################## |
| add_library(mesos-tests-interface INTERFACE) |
| target_link_libraries( |
| mesos-tests-interface INTERFACE |
| mesos |
| googletest) |
| |
| if (NOT WIN32) |
| target_link_libraries( |
| mesos-tests-interface INTERFACE |
| load_qos_controller |
| fixed_resource_estimator |
| logrotate_container_logger |
| uri_disk_profile_adaptor) |
| endif () |
| |
| target_compile_definitions( |
| mesos-tests-interface INTERFACE |
| SOURCE_DIR="${CMAKE_SOURCE_DIR}" |
| BUILD_DIR="${CMAKE_BINARY_DIR}" |
| PKGLIBEXECDIR="${PKG_LIBEXEC_INSTALL_DIR}" |
| TESTLIBEXECDIR="${TEST_LIB_EXEC_DIR}" |
| PKGMODULEDIR="${PKG_MODULE_DIR}" |
| SBINDIR="${S_BIN_DIR}") |
| |
| add_executable(mesos-tests EXCLUDE_FROM_ALL ${MESOS_TESTS_SRC}) |
| target_link_libraries(mesos-tests PRIVATE mesos-tests-interface) |
| |
| target_compile_definitions( |
| mesos-tests PRIVATE |
| $<$<BOOL:${HAS_JAVA}>:MESOS_HAS_JAVA>) |
| |
| # Helper to run tests that require a subprocess. |
| add_executable(test-helper EXCLUDE_FROM_ALL ${TEST_HELPER_SRC}) |
| target_link_libraries(test-helper PRIVATE mesos-tests-interface) |
| |
| # The tests require these binaries. |
| add_dependencies(mesos-tests test-helper mesos-agent) |
| |
| if (NOT WIN32) |
| # The tests require these binaries. |
| # NOTE: These binaries do not yet build on Windows. |
| add_dependencies( |
| mesos-tests |
| mesos-execute |
| mesos-local |
| mesos-log |
| mesos-logrotate-logger |
| mesos-master |
| mesos-resolve) |
| |
| # The tests require all the test modules. These are not directly linked but |
| # instead loaded at runtime, hence the manual dependency here. |
| # NOTE: Modules are not supported on Windows. |
| add_dependencies( |
| mesos-tests |
| testallocator |
| testanonymous |
| testauthentication |
| testauthorizer |
| testcontainer_logger |
| examplemodule |
| testhook |
| testhttpauthenticator |
| testisolator |
| testmastercontender |
| testmasterdetector |
| testqos_controller |
| testresource_estimator) |
| |
| # The tests require all the example frameworks and executors. |
| # TODO(josephw): The scheduler driver is currently not built on Windows. |
| add_dependencies( |
| mesos-tests |
| balloon-executor |
| balloon-framework |
| disk-full-framework |
| docker-no-executor-framework |
| dynamic-reservation-framework |
| inverse-offer-framework |
| load-generator-framework |
| long-lived-executor |
| long-lived-framework |
| operation-feedback-framework |
| no-executor-framework |
| persistent-volume-framework |
| test-executor |
| test-framework |
| test-csi-user-framework |
| test-http-executor |
| test-http-framework) |
| |
| # SLRP-related tests are Linux only and require the test CSI plugin binary. |
| if (LINUX) |
| add_dependencies( |
| mesos-tests |
| test-csi-plugin) |
| endif () |
| |
| if (NOT ENABLE_NEW_CLI) |
| add_dependencies(mesos-tests |
| mesos-cli) |
| else () |
| add_dependencies(mesos-tests |
| cli) |
| endif () |
| endif () |
| |
| |
| # ADD TEST TARGET (runs when you do, e.g., `make check`). |
| ######################################################### |
| add_test(NAME MesosTests COMMAND ${TEST_DRIVER} "${CMAKE_BINARY_DIR}/src/mesos-tests") |
| set_property(TEST MesosTests PROPERTY ENVIRONMENT |
| "MESOS_GTEST_RUNNER_FLAGS=--sequential=*ROOT_* $ENV{MESOS_GTEST_RUNNER_FLAGS}") |