Add CMake options to exclude examples and tests from build

PiperOrigin-RevId: 258136393
Change-Id: Ifb2d7a24f93cd1d2782b4e4d6ac2c34a0d1c2bff
This commit is contained in:
Christian Blichmann 2019-07-15 04:42:39 -07:00 committed by Copybara-Service
parent 99ac7fa60d
commit 6d33c1f908
9 changed files with 536 additions and 501 deletions

View File

@ -25,10 +25,13 @@ project(sandboxed_api C CXX ASM)
# SAPI-wide setting for the language level
set(SAPI_CXX_STANDARD 11)
# Sapi CMake modules, order matters
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(SapiOptions)
include(SapiDeps)
include(SapiUtil) # Needs to come after SapiDeps
include(SapiUtil)
include(SapiBuildDefs)
include(GoogleTest)
# Make Bazel-style includes work

View File

@ -33,16 +33,18 @@ if(_sapi_saved_CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD "${_sapi_saved_CMAKE_CXX_STANDARD}")
endif()
# Build Googletest directly, as recommended upstream
find_path(googletest_src_dir
googletest/include/gtest/gtest.h
HINTS ${GOOGLETEST_ROOT_DIR}
PATHS ${PROJECT_BINARY_DIR}/Dependencies/Source/googletest
)
set(gtest_force_shared_crt ON CACHE BOOL "")
add_subdirectory(${googletest_src_dir}
${PROJECT_BINARY_DIR}/Dependencies/Build/googletest
EXCLUDE_FROM_ALL)
if(SAPI_ENABLE_TESTS)
# Build Googletest directly, as recommended upstream
find_path(googletest_src_dir
googletest/include/gtest/gtest.h
HINTS ${GOOGLETEST_ROOT_DIR}
PATHS ${PROJECT_BINARY_DIR}/Dependencies/Source/googletest
)
set(gtest_force_shared_crt ON CACHE BOOL "")
add_subdirectory(${googletest_src_dir}
${PROJECT_BINARY_DIR}/Dependencies/Build/googletest
EXCLUDE_FROM_ALL)
endif()
# Prefer to use static libraries
set(_sapi_saved_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
@ -56,7 +58,9 @@ find_package(gflags REQUIRED)
find_package(glog REQUIRED)
find_package(Libcap REQUIRED)
find_package(Libffi REQUIRED)
find_package(ZLIB REQUIRED)
if(SAPI_ENABLE_EXAMPLES)
find_package(ZLIB REQUIRED)
endif()
find_package(Protobuf REQUIRED)
if(CMAKE_VERSION VERSION_LESS "3.12")

16
cmake/SapiOptions.cmake Normal file
View File

@ -0,0 +1,16 @@
# Copyright 2019 Google LLC. All Rights Reserved.
#
# Licensed 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.
option(SAPI_ENABLE_EXAMPLES "Build example code" ON)
option(SAPI_ENABLE_TESTS "Build unit tests" ON)

View File

@ -29,21 +29,23 @@ sapi_cc_embed_data(NAME filewrapper_embedded
SOURCES testdata/filewrapper_embedded.bin
)
# sandboxed_api/bazel:filewrapper_test
add_executable(filewrapper_test
filewrapper_test.cc
)
configure_file(testdata/filewrapper_embedded.bin
testdata/filewrapper_embedded.bin COPYONLY)
target_link_libraries(filewrapper_test PRIVATE
absl::strings
filewrapper_embedded
sandbox2::file_helpers
sandbox2::fileops
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(filewrapper_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
if(SAPI_ENABLE_TESTS)
# sandboxed_api/bazel:filewrapper_test
add_executable(filewrapper_test
filewrapper_test.cc
)
configure_file(testdata/filewrapper_embedded.bin
testdata/filewrapper_embedded.bin COPYONLY)
target_link_libraries(filewrapper_test PRIVATE
absl::strings
filewrapper_embedded
sandbox2::file_helpers
sandbox2::fileops
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(filewrapper_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
endif()

View File

@ -12,5 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
add_subdirectory(stringop)
add_subdirectory(sum)
if(SAPI_ENABLE_EXAMPLES)
add_subdirectory(stringop)
add_subdirectory(sum)
endif()

View File

@ -13,7 +13,6 @@
# limitations under the License.
add_subdirectory(examples)
add_subdirectory(testcases)
add_subdirectory(unwind)
add_subdirectory(util)
@ -61,17 +60,6 @@ target_link_libraries(sandbox2_syscall
PUBLIC glog::glog
)
# sandboxed_api/sandbox2:syscall_test
add_executable(syscall_test
syscall_test.cc
)
target_link_libraries(syscall_test PRIVATE
absl::strings
sandbox2::syscall
sapi::test_main
)
gtest_discover_tests(syscall_test)
# sandboxed_api/sandbox2:result
add_library(sandbox2_result STATIC
result.cc
@ -419,27 +407,6 @@ target_link_libraries(sandbox2_mounts PRIVATE
sapi::statusor
)
# sandboxed_api/sandbox2:mounts_test
add_executable(mounts_test
mounts_test.cc
)
add_dependencies(mounts_test
sandbox2::testcase_minimal_dynamic
)
target_link_libraries(mounts_test PRIVATE
absl::strings
sandbox2::file_base
sandbox2::mounts
sandbox2::temp_file
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(mounts_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:namespace
add_library(sandbox2_namespace STATIC
namespace.cc
@ -461,29 +428,6 @@ target_link_libraries(sandbox2_namespace PRIVATE
sapi::raw_logging
)
# sandboxed_api/sandbox2:namespace_test
add_executable(namespace_test
namespace_test.cc
)
add_dependencies(mounts_test
sandbox2::testcase_hostname
sandbox2::testcase_namespace
)
target_link_libraries(namespace_test PRIVATE
absl::memory
absl::strings
sandbox2::comms
sandbox2::namespace
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(namespace_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:forkingclient
add_library(sandbox2_forkingclient STATIC
forkingclient.cc
@ -539,26 +483,6 @@ target_link_libraries(sandbox2_buffer PRIVATE
sapi::statusor
)
# sandboxed_api/sandbox2:buffer_test
add_executable(buffer_test
buffer_test.cc
)
add_dependencies(buffer_test
sandbox2::testcase_buffer
)
target_link_libraries(buffer_test PRIVATE
absl::memory
sandbox2::buffer
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(buffer_test PROPERTIES
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:forkserver_proto
protobuf_generate_cpp(_sandbox2_forkserver_pb_h _sandbox2_forkserver_pb_cc
forkserver.proto
@ -610,250 +534,6 @@ target_link_libraries(sandbox2_comms PRIVATE
sapi::statusor
)
# sandboxed_api/sandbox2:comms_test_proto
protobuf_generate_cpp(_sandbox2_comms_test_pb_h _sandbox2_comms_test_pb_cc
comms_test.proto
)
add_library(sandbox2_comms_test_proto STATIC
${_sandbox2_comms_test_pb_cc}
${_sandbox2_comms_test_pb_h}
)
add_library(sandbox2::comms_test_proto ALIAS sandbox2_comms_test_proto)
target_link_libraries(sandbox2_comms_test_proto PRIVATE
protobuf::libprotobuf
sapi::base
)
# sandboxed_api/sandbox2:comms_test
add_executable(comms_test
comms_test.cc
)
target_link_libraries(comms_test PRIVATE
absl::fixed_array
absl::strings
glog::glog
protobuf::libprotobuf
sandbox2::comms
sandbox2::comms_test_proto
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(comms_test)
# sandboxed_api/sandbox2:forkserver_test
add_executable(forkserver_test
forkserver_test.cc
global_forkclient.h
)
add_dependencies(forkserver_test
sandbox2::testcase_minimal
)
target_link_libraries(forkserver_test PRIVATE
absl::strings
glog::glog
sandbox2::comms
sandbox2::forkserver
sandbox2::forkserver_proto
sandbox2::sandbox2
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(forkserver_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:limits_test
add_executable(limits_test
limits_test.cc
)
add_dependencies(limits_test
sandbox2::testcase_limits
sandbox2::testcase_minimal
)
target_link_libraries(limits_test PRIVATE
absl::memory
sandbox2::bpf_helper
sandbox2::limits
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(limits_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:notify_test
add_executable(notify_test
notify_test.cc
)
add_dependencies(notify_test
sandbox2::testcase_personality
sandbox2::testcase_pidcomms
)
target_link_libraries(notify_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::comms
sandbox2::regs
sandbox2::sandbox2
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(notify_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:policy_test
add_executable(policy_test
policy_test.cc
)
add_dependencies(policy_test
sandbox2::testcase_add_policy_on_syscalls
sandbox2::testcase_malloc_system
sandbox2::testcase_minimal
sandbox2::testcase_minimal_dynamic
sandbox2::testcase_policy
)
target_link_libraries(policy_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::limits
sandbox2::regs
sandbox2::sandbox2
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(policy_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:sandbox2_test
add_executable(sandbox2_test
sandbox2_test.cc
)
add_dependencies(sandbox2_test
sandbox2::testcase_abort
sandbox2::testcase_minimal
sandbox2::testcase_sleep
sandbox2::testcase_tsync
)
target_link_libraries(sandbox2_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(sandbox2_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:sanitizer_test
add_executable(sanitizer_test
sanitizer_test.cc
)
add_dependencies(sanitizer_test
sandbox2::testcase_sanitizer
)
target_link_libraries(sanitizer_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::client
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sandbox2::util
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(sanitizer_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:util_test
add_executable(util_test
util_test.cc
)
target_link_libraries(util_test PRIVATE
sandbox2::file_base
sandbox2::testing
sandbox2::util
sapi::test_main
)
gtest_discover_tests(util_test)
# sandboxed_api/sandbox2:stack_trace_test
add_executable(stack_trace_test
stack_trace_test.cc
)
add_dependencies(stack_trace_test
sandbox2::testcase_symbolize
)
target_link_libraries(stack_trace_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::fileops
sandbox2::global_forkserver
sandbox2::sandbox2
sandbox2::temp_file
sandbox2::testing
sandbox2::util
sapi::flags
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(stack_trace_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:ipc_test
add_executable(ipc_test
ipc_test.cc
)
add_dependencies(ipc_test
sandbox2::testcase_ipc
)
target_link_libraries(ipc_test PRIVATE
absl::memory
sandbox2::bpf_helper
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sapi::flags
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(ipc_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:testing
add_library(sandbox2_testing STATIC
testing.cc
testing.h
)
add_library(sandbox2::testing ALIAS sandbox2_testing)
target_link_libraries(sandbox2_testing PRIVATE
absl::strings
sandbox2::file_base
sapi::base
)
# sandboxed_api/sandbox2:violation_proto
protobuf_generate_cpp(_sandbox2_violation_pb_cc _sandbox2_violation_pb_h
violation.proto
@ -869,26 +549,349 @@ target_link_libraries(sandbox2_violation_proto PRIVATE
sapi::base
)
# sandboxed_api/sandbox2:policybuilder_test
add_executable(policybuilder_test
policybuilder_test.cc
)
add_dependencies(policybuilder_test
sandbox2::testcase_print_fds
)
target_link_libraries(policybuilder_test PRIVATE
absl::memory
absl::strings
glog::glog
sandbox2::bpf_helper
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sapi::flags
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(policybuilder_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
if(SAPI_ENABLE_TESTS)
add_subdirectory(testcases)
# sandboxed_api/sandbox2:syscall_test
add_executable(syscall_test
syscall_test.cc
)
target_link_libraries(syscall_test PRIVATE
absl::strings
sandbox2::syscall
sapi::test_main
)
gtest_discover_tests(syscall_test)
# sandboxed_api/sandbox2:mounts_test
add_executable(mounts_test
mounts_test.cc
)
add_dependencies(mounts_test
sandbox2::testcase_minimal_dynamic
)
target_link_libraries(mounts_test PRIVATE
absl::strings
sandbox2::file_base
sandbox2::mounts
sandbox2::temp_file
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(mounts_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:namespace_test
add_executable(namespace_test
namespace_test.cc
)
add_dependencies(mounts_test
sandbox2::testcase_hostname
sandbox2::testcase_namespace
)
target_link_libraries(namespace_test PRIVATE
absl::memory
absl::strings
sandbox2::comms
sandbox2::namespace
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(namespace_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:buffer_test
add_executable(buffer_test
buffer_test.cc
)
add_dependencies(buffer_test
sandbox2::testcase_buffer
)
target_link_libraries(buffer_test PRIVATE
absl::memory
sandbox2::buffer
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(buffer_test PROPERTIES
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:comms_test_proto
protobuf_generate_cpp(_sandbox2_comms_test_pb_h _sandbox2_comms_test_pb_cc
comms_test.proto
)
add_library(sandbox2_comms_test_proto STATIC
${_sandbox2_comms_test_pb_cc}
${_sandbox2_comms_test_pb_h}
)
add_library(sandbox2::comms_test_proto ALIAS sandbox2_comms_test_proto)
target_link_libraries(sandbox2_comms_test_proto PRIVATE
protobuf::libprotobuf
sapi::base
)
# sandboxed_api/sandbox2:comms_test
add_executable(comms_test
comms_test.cc
)
target_link_libraries(comms_test PRIVATE
absl::fixed_array
absl::strings
glog::glog
protobuf::libprotobuf
sandbox2::comms
sandbox2::comms_test_proto
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(comms_test)
# sandboxed_api/sandbox2:forkserver_test
add_executable(forkserver_test
forkserver_test.cc
global_forkclient.h
)
add_dependencies(forkserver_test
sandbox2::testcase_minimal
)
target_link_libraries(forkserver_test PRIVATE
absl::strings
glog::glog
sandbox2::comms
sandbox2::forkserver
sandbox2::forkserver_proto
sandbox2::sandbox2
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(forkserver_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:limits_test
add_executable(limits_test
limits_test.cc
)
add_dependencies(limits_test
sandbox2::testcase_limits
sandbox2::testcase_minimal
)
target_link_libraries(limits_test PRIVATE
absl::memory
sandbox2::bpf_helper
sandbox2::limits
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(limits_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:notify_test
add_executable(notify_test
notify_test.cc
)
add_dependencies(notify_test
sandbox2::testcase_personality
sandbox2::testcase_pidcomms
)
target_link_libraries(notify_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::comms
sandbox2::regs
sandbox2::sandbox2
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(notify_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:policy_test
add_executable(policy_test
policy_test.cc
)
add_dependencies(policy_test
sandbox2::testcase_add_policy_on_syscalls
sandbox2::testcase_malloc_system
sandbox2::testcase_minimal
sandbox2::testcase_minimal_dynamic
sandbox2::testcase_policy
)
target_link_libraries(policy_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::limits
sandbox2::regs
sandbox2::sandbox2
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(policy_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:sandbox2_test
add_executable(sandbox2_test
sandbox2_test.cc
)
add_dependencies(sandbox2_test
sandbox2::testcase_abort
sandbox2::testcase_minimal
sandbox2::testcase_sleep
sandbox2::testcase_tsync
)
target_link_libraries(sandbox2_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::sandbox2
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(sandbox2_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:sanitizer_test
add_executable(sanitizer_test
sanitizer_test.cc
)
add_dependencies(sanitizer_test
sandbox2::testcase_sanitizer
)
target_link_libraries(sanitizer_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::client
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sandbox2::util
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(sanitizer_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:util_test
add_executable(util_test
util_test.cc
)
target_link_libraries(util_test PRIVATE
sandbox2::file_base
sandbox2::testing
sandbox2::util
sapi::test_main
)
gtest_discover_tests(util_test)
# sandboxed_api/sandbox2:stack_trace_test
add_executable(stack_trace_test
stack_trace_test.cc
)
add_dependencies(stack_trace_test
sandbox2::testcase_symbolize
)
target_link_libraries(stack_trace_test PRIVATE
absl::memory
absl::strings
sandbox2::bpf_helper
sandbox2::fileops
sandbox2::global_forkserver
sandbox2::sandbox2
sandbox2::temp_file
sandbox2::testing
sandbox2::util
sapi::flags
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(stack_trace_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:ipc_test
add_executable(ipc_test
ipc_test.cc
)
add_dependencies(ipc_test
sandbox2::testcase_ipc
)
target_link_libraries(ipc_test PRIVATE
absl::memory
sandbox2::bpf_helper
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sapi::flags
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(ipc_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2:testing
add_library(sandbox2_testing STATIC
testing.cc
testing.h
)
add_library(sandbox2::testing ALIAS sandbox2_testing)
target_link_libraries(sandbox2_testing PRIVATE
absl::strings
sandbox2::file_base
sapi::base
)
# sandboxed_api/sandbox2:policybuilder_test
add_executable(policybuilder_test
policybuilder_test.cc
)
add_dependencies(policybuilder_test
sandbox2::testcase_print_fds
)
target_link_libraries(policybuilder_test PRIVATE
absl::memory
absl::strings
glog::glog
sandbox2::bpf_helper
sandbox2::comms
sandbox2::sandbox2
sandbox2::testing
sapi::flags
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(policybuilder_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
endif()

View File

@ -12,8 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
add_subdirectory(crc4)
add_subdirectory(custom_fork)
add_subdirectory(static)
add_subdirectory(tool)
add_subdirectory(zlib)
if(SAPI_ENABLE_EXAMPLES)
add_subdirectory(crc4)
add_subdirectory(custom_fork)
add_subdirectory(static)
add_subdirectory(tool)
add_subdirectory(zlib)
endif()

View File

@ -34,18 +34,6 @@ target_link_libraries(sandbox2_util_file_helpers PRIVATE
sapi::status
)
# sandboxed_api/sandbox2/util:file_helpers_test
add_executable(file_helpers_test
file_helpers_test.cc
)
target_link_libraries(file_helpers_test PRIVATE
absl::strings
sandbox2::file_helpers
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(file_helpers_test)
# sandboxed_api/sandbox2/util:fileops
add_library(sandbox2_util_fileops STATIC
fileops.cc
@ -58,23 +46,6 @@ target_link_libraries(sandbox2_util_fileops PRIVATE
sapi::base
)
# sandboxed_api/sandbox2/util:fileops_test
add_executable(fileops_test
fileops_test.cc
)
target_link_libraries(fileops_test PRIVATE
absl::strings
sandbox2::file_helpers
sandbox2::fileops
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(fileops_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2/util:file_base
add_library(sandbox2_util_file_base STATIC
path.cc
@ -86,17 +57,6 @@ target_link_libraries(sandbox2_util_file_base PRIVATE
sapi::base
)
# sandboxed_api/sandbox2/util:file_base_test
add_executable(file_base_test
path_test.cc
)
target_link_libraries(file_base_test PRIVATE
absl::strings
sandbox2::file_base
sapi::test_main
)
gtest_discover_tests(file_base_test)
# sandboxed_api/sandbox2/util:strerror
add_library(sandbox2_util_strerror STATIC
strerror.cc
@ -108,17 +68,6 @@ target_link_libraries(sandbox2_util_strerror PRIVATE
sapi::base
)
# sandboxed_api/sandbox2/util:strerror
add_executable(strerror_test
strerror_test.cc
)
target_link_libraries(strerror_test PRIVATE
absl::strings
sandbox2::strerror
sapi::test_main
)
gtest_discover_tests(strerror_test)
# sandboxed_api/sandbox2/util:minielf
add_library(sandbox2_util_minielf STATIC
minielf.cc
@ -134,26 +83,6 @@ target_link_libraries(sandbox2_util_minielf PRIVATE
sapi::statusor
)
# sandboxed_api/sandbox2/util:minielf_test
add_executable(minielf_test
minielf_test.cc
)
configure_file(testdata/hello_world
testdata/hello_world COPYONLY)
configure_file(testdata/chrome_grte_header
testdata/chrome_grte_header COPYONLY)
target_link_libraries(minielf_test PRIVATE
absl::strings
sandbox2::maps_parser
sandbox2::minielf
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(minielf_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2/util:temp_file
add_library(sandbox2_util_temp_file STATIC
temp_file.cc
@ -169,20 +98,6 @@ target_link_libraries(sandbox2_util_temp_file PRIVATE
sapi::statusor
)
# sandboxed_api/sandbox2/util:temp_file_test
add_executable(temp_file_test
temp_file_test.cc
)
target_link_libraries(temp_file_test PRIVATE
sandbox2::file_base
sandbox2::fileops
sandbox2::temp_file
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(temp_file_test)
# sandboxed_api/sandbox2/util:maps_parser
add_library(sandbox2_util_maps_parser STATIC
maps_parser.cc
@ -196,17 +111,6 @@ target_link_libraries(sandbox2_util_maps_parser PRIVATE
sapi::statusor
)
# sandboxed_api/sandbox2/util:maps_parser_test
add_executable(maps_parser_test
maps_parser_test.cc
)
target_link_libraries(maps_parser_test PRIVATE
sandbox2::maps_parser
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(maps_parser_test)
# sandboxed_api/sandbox2/util:runfiles
add_library(sandbox2_util_runfiles STATIC
runfiles.h
@ -221,3 +125,101 @@ target_link_libraries(sandbox2_util_runfiles PRIVATE
sapi::flags
sapi::raw_logging
)
if(SAPI_ENABLE_TESTS)
# sandboxed_api/sandbox2/util:file_helpers_test
add_executable(file_helpers_test
file_helpers_test.cc
)
target_link_libraries(file_helpers_test PRIVATE
absl::strings
sandbox2::file_helpers
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(file_helpers_test)
# sandboxed_api/sandbox2/util:fileops_test
add_executable(fileops_test
fileops_test.cc
)
target_link_libraries(fileops_test PRIVATE
absl::strings
sandbox2::file_helpers
sandbox2::fileops
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(fileops_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2/util:file_base_test
add_executable(file_base_test
path_test.cc
)
target_link_libraries(file_base_test PRIVATE
absl::strings
sandbox2::file_base
sapi::test_main
)
gtest_discover_tests(file_base_test)
# sandboxed_api/sandbox2/util:strerror
add_executable(strerror_test
strerror_test.cc
)
target_link_libraries(strerror_test PRIVATE
absl::strings
sandbox2::strerror
sapi::test_main
)
gtest_discover_tests(strerror_test)
# sandboxed_api/sandbox2/util:minielf_test
add_executable(minielf_test
minielf_test.cc
)
configure_file(testdata/hello_world
testdata/hello_world COPYONLY)
configure_file(testdata/chrome_grte_header
testdata/chrome_grte_header COPYONLY)
target_link_libraries(minielf_test PRIVATE
absl::strings
sandbox2::maps_parser
sandbox2::minielf
sandbox2::testing
sapi::test_main
)
gtest_discover_tests(minielf_test PROPERTIES
ENVIRONMENT "TEST_TMPDIR=/tmp"
ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}"
)
# sandboxed_api/sandbox2/util:temp_file_test
add_executable(temp_file_test
temp_file_test.cc
)
target_link_libraries(temp_file_test PRIVATE
sandbox2::file_base
sandbox2::fileops
sandbox2::temp_file
sandbox2::testing
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(temp_file_test)
# sandboxed_api/sandbox2/util:maps_parser_test
add_executable(maps_parser_test
maps_parser_test.cc
)
target_link_libraries(maps_parser_test PRIVATE
sandbox2::maps_parser
sapi::status_matchers
sapi::test_main
)
gtest_discover_tests(maps_parser_test)
endif()

View File

@ -56,31 +56,6 @@ target_link_libraries(sapi_util_statusor PRIVATE
sapi::status
)
# sandboxed_api/util:status_matchers
add_library(sapi_util_status_matchers STATIC
status_matchers.h
)
add_library(sapi::status_matchers ALIAS sapi_util_status_matchers)
target_link_libraries(sapi_util_status_matchers PRIVATE
absl::optional
gmock
gtest
sapi::base
sapi::status
sapi::statusor
)
# sandboxed_api/util:status_test
add_executable(status_test
status_test.cc
)
target_link_libraries(status_test PRIVATE
sapi::status_matchers
sapi::test_main
absl::type_traits
)
gtest_discover_tests(status_test)
# sandboxed_api/util:flag
add_library(sapi_util_flags STATIC
flag.h
@ -103,3 +78,29 @@ target_link_libraries(sapi_util_raw_logging PRIVATE
sapi::base
)
if(SAPI_ENABLE_TESTS)
# sandboxed_api/util:status_matchers
add_library(sapi_util_status_matchers STATIC
status_matchers.h
)
add_library(sapi::status_matchers ALIAS sapi_util_status_matchers)
target_link_libraries(sapi_util_status_matchers PRIVATE
absl::optional
gmock
gtest
sapi::base
sapi::status
sapi::statusor
)
# sandboxed_api/util:status_test
add_executable(status_test
status_test.cc
)
target_link_libraries(status_test PRIVATE
sapi::status_matchers
sapi::test_main
absl::type_traits
)
gtest_discover_tests(status_test)
endif()