diff options
Diffstat (limited to '.conan/test_package')
| -rw-r--r-- | .conan/test_package/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | .conan/test_package/conanfile.py | 40 | ||||
| -rw-r--r-- | .conan/test_package/test_package.cpp | 13 |
3 files changed, 61 insertions, 0 deletions
diff --git a/.conan/test_package/CMakeLists.txt b/.conan/test_package/CMakeLists.txt new file mode 100644 index 0000000..f067457 --- /dev/null +++ b/.conan/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.16) +project(PackageTest CXX) + +find_package(Catch2 CONFIG REQUIRED) + +add_executable(test_package test_package.cpp) +target_link_libraries(test_package Catch2::Catch2WithMain) +target_compile_features(test_package PRIVATE cxx_std_14) diff --git a/.conan/test_package/conanfile.py b/.conan/test_package/conanfile.py new file mode 100644 index 0000000..dc03876 --- /dev/null +++ b/.conan/test_package/conanfile.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +from conan import ConanFile +from conan.tools.cmake import CMake, cmake_layout +from conan.tools.build import can_run +from conan.tools.files import save, load +import os + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def generate(self): + save(self, os.path.join(self.build_folder, "package_folder"), + self.dependencies[self.tested_reference_str].package_folder) + save(self, os.path.join(self.build_folder, "license"), + self.dependencies[self.tested_reference_str].license) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + cmd = os.path.join(self.cpp.build.bindir, "test_package") + self.run(cmd, env="conanrun") + + package_folder = load(self, os.path.join(self.build_folder, "package_folder")) + license = load(self, os.path.join(self.build_folder, "license")) + assert os.path.isfile(os.path.join(package_folder, "licenses", "LICENSE.txt")) + assert license == 'BSL-1.0' diff --git a/.conan/test_package/test_package.cpp b/.conan/test_package/test_package.cpp new file mode 100644 index 0000000..3c08090 --- /dev/null +++ b/.conan/test_package/test_package.cpp @@ -0,0 +1,13 @@ +#include <catch2/catch_test_macros.hpp> + +int Factorial( int number ) { + return number <= 1 ? 1 : Factorial( number - 1 ) * number; +} + +TEST_CASE( "Factorial Tests", "[single-file]" ) { + REQUIRE( Factorial(0) == 1 ); + REQUIRE( Factorial(1) == 1 ); + REQUIRE( Factorial(2) == 2 ); + REQUIRE( Factorial(3) == 6 ); + REQUIRE( Factorial(10) == 3628800 ); +}
\ No newline at end of file |
