blob: 7ac34fc8b86578086da4578d25d67e9b99f87d55 [file] [log] [blame]
# 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.
include(StoutTestsConfigure)
include(MesosTestsConfigure)
# Sources for a test helper binary.
###################################
set(TEST_HELPER_SRC
${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)
set(TEST_HELPER_SRC
${TEST_HELPER_SRC}
kill_policy_test_helper.cpp
containerizer/memory_test_helper.cpp
)
endif ()
if (LINUX)
set(TEST_HELPER_SRC
${TEST_HELPER_SRC}
containerizer/capabilities_test_helper.cpp
containerizer/setns_test_helper.cpp
)
endif ()
# Test utilities.
#################
set(MESOS_TESTS_UTILS_SRC
${MESOS_TESTS_UTILS_SRC}
active_user_test_helper.cpp
cluster.cpp
containerizer.cpp
environment.cpp
flags.cpp
http_server_test_helper.cpp
main.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)
set(MESOS_TESTS_UTILS_SRC
${MESOS_TESTS_UTILS_SRC}
kill_policy_test_helper.cpp
script.cpp
containerizer/memory_test_helper.cpp
)
endif ()
if (LINUX)
set(MESOS_TESTS_UTILS_SRC
${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_SRC}
${MESOS_TESTS_UTILS_SRC}
anonymous_tests.cpp
api_tests.cpp
attributes_tests.cpp
authentication_tests.cpp
check_tests.cpp
command_executor_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
health_check_tests.cpp
hierarchical_allocator_tests.cpp
hook_tests.cpp
http_authentication_tests.cpp
http_fault_tolerance_tests.cpp
master_maintenance_tests.cpp
master_slave_reconciliation_tests.cpp
partition_tests.cpp
paths_tests.cpp
protobuf_io_tests.cpp
rate_limiting_tests.cpp
resource_offers_tests.cpp
resource_provider_http_api_tests.cpp
resource_provider_validation_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_tests.cpp
slave_validation_tests.cpp
sorter_tests.cpp
status_update_manager_tests.cpp
uri_tests.cpp
uri_fetcher_tests.cpp
values_tests.cpp
zookeeper_url_tests.cpp
)
if (ENABLE_SSL)
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
secret_generator_tests.cpp
)
endif ()
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
common/http_tests.cpp
common/recordio_tests.cpp
common/type_utils_tests.cpp
)
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
containerizer/containerizer_tests.cpp
containerizer/docker_spec_tests.cpp
containerizer/docker_tests.cpp
)
if (NOT WIN32)
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
authorization_tests.cpp
container_logger_tests.cpp
cram_md5_authentication_tests.cpp
disk_quota_tests.cpp
dynamic_weights_tests.cpp
examples_tests.cpp
fetcher_cache_tests.cpp
hdfs_tests.cpp
log_tests.cpp
logging_tests.cpp
master_allocator_tests.cpp
master_authorization_tests.cpp
master_contender_detector_tests.cpp
master_quota_tests.cpp
master_tests.cpp
master_validation_tests.cpp
metrics_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
slave_authorization_tests.cpp
slave_recovery_tests.cpp
state_tests.cpp
teardown_tests.cpp
upgrade_tests.cpp
)
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
common/command_utils_tests.cpp
)
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
containerizer/appc_spec_tests.cpp
containerizer/composing_containerizer_tests.cpp
containerizer/cpu_isolator_tests.cpp
containerizer/docker_containerizer_tests.cpp
containerizer/environment_secret_isolator_tests.cpp
containerizer/io_switchboard_tests.cpp
containerizer/isolator_tests.cpp
containerizer/memory_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)
set(MESOS_TESTS_SRC
${MESOS_TESTS_SRC}
ldcache_tests.cpp
ldd_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_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_image_isolator_tests.cpp
containerizer/volume_secret_isolator_tests.cpp
)
endif ()
# INCLUDE DIRECTIVES (generates, e.g., -I/path/to/thing on Linux).
##################################################################
include_directories(SYSTEM ${MESOS_3RDPARTY_TESTS_INCLUDE_DIRS})
include_directories(${MESOS_TESTS_INCLUDE_DIRS})
# LINKING LIBRARIES (might generate, e.g., -L/path/to/thing on Linux).
######################################################################
link_directories(${MESOS_TESTS_LIB_DIRS})
# THE TEST AND HELPER EXECUTABLEs (generates, e.g., stout-tests, etc., on Linux).
#################################$###############################################
add_executable(${MESOS_TESTS_TARGET} EXCLUDE_FROM_ALL ${MESOS_TESTS_SRC})
add_executable(${TEST_HELPER_TARGET} EXCLUDE_FROM_ALL ${TEST_HELPER_SRC})
# ADD LINKER FLAGS (generates, e.g., -lglog on Linux).
######################################################
target_link_libraries(${MESOS_TESTS_TARGET} ${MESOS_TESTS_LIBS})
target_link_libraries(${TEST_HELPER_TARGET} ${MESOS_TESTS_LIBS})
# ADD BINARY DEPENDENCIES (tells CMake what to compile/build first).
####################################################################
add_dependencies(
${MESOS_TESTS_TARGET}
${MESOS_TESTS_DEPENDENCIES}
${TEST_HELPER_TARGET}
)
if (NOT WIN32)
# The tests require all the test modules.
# NOTE: Modules are not supported on Windows.
add_dependencies(
${MESOS_TESTS_TARGET}
${TEST_ALLOCATOR}
${TEST_ANONYMOUS}
${TEST_AUTHENTICATION}
${TEST_AUTHORIZER}
${TEST_CONTAINER_LOGGER}
${TEST_EXAMPLEMODULE}
${TEST_HOOK}
${TEST_HTTPAUTHENTICATOR}
${TEST_ISOLATOR}
${TEST_MASTER_CONTENDER}
${TEST_MASTER_DETECTOR}
${TEST_QOS_CONTROLLER}
${TEST_RESOURCE_ESTIMATOR}
)
# The tests require all the example frameworks and executors.
# TODO(josephw): The scheduler driver is current not built on Windows.
add_dependencies(
${MESOS_TESTS_TARGET}
${BALLOON_EXECUTOR}
${BALLOON_FRAMEWORK}
${DISK_FULL_FRAMEWORK}
${DOCKER_NO_EXECUTOR_FRAMEWORK}
${DYNAMIC_RESERVATION_FRAMEWORK}
${LOAD_GENERATOR_FRAMEWORK}
${LONG_LIVED_EXECUTOR}
${LONG_LIVED_FRAMEWORK}
${NO_EXECUTOR_FRAMEWORK}
${PERSISTENT_VOLUME_FRAMEWORK}
${TEST_EXECUTOR}
${TEST_FRAMEWORK}
${TEST_HTTP_EXECUTOR}
${TEST_HTTP_FRAMEWORK}
)
endif ()
add_dependencies(${TEST_HELPER_TARGET} ${MESOS_TESTS_DEPENDENCIES})
# ADD TEST TARGET (runs when you do, e.g., `make check`).
#########################################################
add_test(NAME MesosTests COMMAND ${MESOS_TESTS_TARGET})