diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3cd335d2fb..63c0576f21 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -26,6 +26,7 @@ add_subdirectory(utils) add_subdirectory(bench) add_subdirectory(bench_internal) add_subdirectory(compilation) +add_subdirectory(integration) add_subdirectory(spectests) add_subdirectory(unittests) add_subdirectory(smoketests) diff --git a/test/integration/CMakeLists.txt b/test/integration/CMakeLists.txt new file mode 100644 index 0000000000..1e43a59d86 --- /dev/null +++ b/test/integration/CMakeLists.txt @@ -0,0 +1,5 @@ +# Fizzy: A fast WebAssembly interpreter +# Copyright 2020 The Fizzy Authors. +# SPDX-License-Identifier: Apache-2.0 + +add_subdirectory(cmake_package) diff --git a/test/integration/cmake_package/CMakeLists.txt b/test/integration/cmake_package/CMakeLists.txt new file mode 100644 index 0000000000..71cb2f3795 --- /dev/null +++ b/test/integration/cmake_package/CMakeLists.txt @@ -0,0 +1,38 @@ +# Fizzy: A fast WebAssembly interpreter +# Copyright 2020 The Fizzy Authors. +# SPDX-License-Identifier: Apache-2.0 + +set(INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/install) +set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/build) +set(USE_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/use) + +file(MAKE_DIRECTORY ${BUILD_DIR} ${USE_BUILD_DIR}) + +set(PREFIX ${PROJECT_NAME}/cmake_packge) + +add_test( + NAME ${PREFIX}/configure + COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} ${PROJECT_SOURCE_DIR} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} + WORKING_DIRECTORY ${BUILD_DIR} +) + +add_test( + NAME ${PREFIX}/install + COMMAND ${CMAKE_COMMAND} --build ${BUILD_DIR} --target install +) +set_tests_properties(${PREFIX}/install PROPERTIES DEPENDS ${PREFIX}/configure) + + +add_test( + NAME ${PREFIX}/use/configure + COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} ${CMAKE_CURRENT_SOURCE_DIR}/use_fizzy -DCMAKE_PREFIX_PATH=${INSTALL_DIR} + WORKING_DIRECTORY ${USE_BUILD_DIR} +) +set_tests_properties(${PREFIX}/use/configure PROPERTIES DEPENDS ${PREFIX}/install) + +add_test( + NAME ${PREFIX}/use/build + COMMAND ${CMAKE_COMMAND} --build ${USE_BUILD_DIR} +) +set_tests_properties(${PREFIX}/use/build PROPERTIES DEPENDS ${PREFIX}/use/configure) + diff --git a/test/integration/cmake_package/use_fizzy/CMakeLists.txt b/test/integration/cmake_package/use_fizzy/CMakeLists.txt new file mode 100644 index 0000000000..a9cf926d26 --- /dev/null +++ b/test/integration/cmake_package/use_fizzy/CMakeLists.txt @@ -0,0 +1,11 @@ +# Fizzy: A fast WebAssembly interpreter +# Copyright 2020 The Fizzy Authors. +# SPDX-License-Identifier: Apache-2.0 + +# This example shows how to use the fizzy library from the fizzy CMake package. +cmake_minimum_required(VERSION 3.15) +project(use_fizzy LANGUAGES CXX) +find_package(fizzy CONFIG REQUIRED) + +add_executable(use_fizzy use_fizzy.cpp) +target_link_libraries(use_fizzy PRIVATE fizzy::fizzy) diff --git a/test/integration/cmake_package/use_fizzy/use_fizzy.cpp b/test/integration/cmake_package/use_fizzy/use_fizzy.cpp new file mode 100644 index 0000000000..8fbf9fcb74 --- /dev/null +++ b/test/integration/cmake_package/use_fizzy/use_fizzy.cpp @@ -0,0 +1,10 @@ +// Fizzy: A fast WebAssembly interpreter +// Copyright 2020 The Fizzy Authors. +// SPDX-License-Identifier: Apache-2.0 + +#include + +int main() +{ + return fizzy_validate(nullptr, 0) ? 0 : 1; +}