From d09633df554cac678e93a46030ed1100c65c8213 Mon Sep 17 00:00:00 2001 From: seleznevae Date: Wed, 12 Feb 2020 22:41:20 +0300 Subject: [PATCH] [A] Add package installation test --- .travis.yml | 14 ++++++++++++++ CMakeLists.txt | 2 +- tests/package_tests/1-simple_table.cpp | 16 ++++++++++++++++ tests/package_tests/CMakeLists.txt | 23 +++++++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 tests/package_tests/1-simple_table.cpp create mode 100644 tests/package_tests/CMakeLists.txt diff --git a/.travis.yml b/.travis.yml index c827e42..e6cbb00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -255,6 +255,20 @@ script: # scan-build make ; # fi + # Test package installation + - cd .. + - rm -r build/* + - cmake -H. -Bbuild -DCMAKE_C_STANDARD=99 -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX=`pwd`/install + - cmake --build build --target all + - cmake --build build -- install + - ls `pwd`/install + - cd tests/package_tests + - cmake -H. -B_build -DCMAKE_PREFIX_PATH=../../install -DCMAKE_C_STANDARD=99 -DCMAKE_CXX_STANDARD=11 + - cmake --build _build -- -j3 + - ./_build/app + - rm -rf _build + - cd ../../build + # Build for coveralls (should be the last) - | if [ "${CC}" = 'gcc' ]; then diff --git a/CMakeLists.txt b/CMakeLists.txt index 09ca662..a5ba808 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -265,7 +265,7 @@ endforeach() # Exported targets for outer applications. # ------------------------------------------------------------------------------ export( - TARGETS fort + TARGETS fort FILE ${PROJECT_NAME}-targets.cmake ) diff --git a/tests/package_tests/1-simple_table.cpp b/tests/package_tests/1-simple_table.cpp new file mode 100644 index 0000000..6cd3cd9 --- /dev/null +++ b/tests/package_tests/1-simple_table.cpp @@ -0,0 +1,16 @@ +#include + +#include "fort.hpp" + + +int main() +{ + fort::char_table table; + table << fort::header + << "N" << "Driver" << "Time" << "Avg Speed" << fort::endr + << "1" << "Ricciardo" << "1:25.945" << "47.362" << fort::endr + << "2" << "Hamilton" << "1:26.373" << "35.02" << fort::endr + << "3" << "Verstappen" << "1:26.469" << "29.78" << fort::endr; + + std::cout << table.to_string() << std::endl; +} diff --git a/tests/package_tests/CMakeLists.txt b/tests/package_tests/CMakeLists.txt new file mode 100644 index 0000000..cc9fd01 --- /dev/null +++ b/tests/package_tests/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.0) + +find_package(libfort) + +# Assert exports of libfort +if (NOT libfort_FOUND) + message(FATAL_ERROR "libfort was not found") +endif() +if (NOT TARGET libfort::fort) + message(FATAL_ERROR "TARGET libfort::fort not found") +endif() +if (NOT DEFINED libfort_LIBRARIES) + message(FATAL_ERROR "libfort_LIBRARIES are not defined") +endif() +if (NOT ${libfort_VERSION} EQUAL "0.4.0") + message(FATAL_ERROR "libfort_VERSION is incorrect") +endif() + +add_executable(app + 1-simple_table.cpp) + +target_link_libraries(app + libfort::fort)