# Copyright Catch2 Authors # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE.txt or copy at # https://www.boost.org/LICENSE_1_0.txt) # SPDX-License-Identifier: BSL-1.0 # define the sources of the self test # Please keep these ordered alphabetically self_test_sources = files( 'SelfTest/helpers/parse_test_spec.cpp', 'SelfTest/IntrospectiveTests/Algorithms.tests.cpp', 'SelfTest/IntrospectiveTests/Details.tests.cpp', 'SelfTest/IntrospectiveTests/FloatingPoint.tests.cpp', 'SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp', 'SelfTest/IntrospectiveTests/Integer.tests.cpp', 'SelfTest/IntrospectiveTests/InternalBenchmark.tests.cpp', 'SelfTest/IntrospectiveTests/Parse.tests.cpp', 'SelfTest/IntrospectiveTests/PartTracker.tests.cpp', 'SelfTest/IntrospectiveTests/RandomNumberGeneration.tests.cpp', 'SelfTest/IntrospectiveTests/String.tests.cpp', 'SelfTest/IntrospectiveTests/StringManip.tests.cpp', 'SelfTest/IntrospectiveTests/Tag.tests.cpp', 'SelfTest/IntrospectiveTests/TestCaseInfoHasher.tests.cpp', 'SelfTest/IntrospectiveTests/TestSpec.tests.cpp', 'SelfTest/IntrospectiveTests/TestSpecParser.tests.cpp', 'SelfTest/IntrospectiveTests/ToString.tests.cpp', 'SelfTest/IntrospectiveTests/Traits.tests.cpp', 'SelfTest/IntrospectiveTests/UniquePtr.tests.cpp', 'SelfTest/TestRegistrations.cpp', 'SelfTest/TimingTests/Sleep.tests.cpp', 'SelfTest/UsageTests/Approx.tests.cpp', 'SelfTest/UsageTests/BDD.tests.cpp', 'SelfTest/UsageTests/Benchmark.tests.cpp', 'SelfTest/UsageTests/Class.tests.cpp', 'SelfTest/UsageTests/Compilation.tests.cpp', 'SelfTest/UsageTests/Condition.tests.cpp', 'SelfTest/UsageTests/Decomposition.tests.cpp', 'SelfTest/UsageTests/EnumToString.tests.cpp', 'SelfTest/UsageTests/Exception.tests.cpp', 'SelfTest/UsageTests/Generators.tests.cpp', 'SelfTest/UsageTests/Matchers.tests.cpp', 'SelfTest/UsageTests/MatchersConstexpr.tests.cpp', 'SelfTest/UsageTests/MatchersRanges.tests.cpp', 'SelfTest/UsageTests/Message.tests.cpp', 'SelfTest/UsageTests/Misc.tests.cpp', 'SelfTest/UsageTests/ToStringByte.tests.cpp', 'SelfTest/UsageTests/ToStringChrono.tests.cpp', 'SelfTest/UsageTests/ToStringGeneral.tests.cpp', 'SelfTest/UsageTests/ToStringOptional.tests.cpp', 'SelfTest/UsageTests/ToStringPair.tests.cpp', 'SelfTest/UsageTests/ToStringTuple.tests.cpp', 'SelfTest/UsageTests/ToStringVariant.tests.cpp', 'SelfTest/UsageTests/ToStringVector.tests.cpp', 'SelfTest/UsageTests/ToStringWhich.tests.cpp', 'SelfTest/UsageTests/Tricky.tests.cpp', 'SelfTest/UsageTests/VariadicMacros.tests.cpp', ) # This isn't as good as the CMake tests, but it proves that we've # actually put something in the library files. self_test = executable( 'SelfTest', self_test_sources, include_directories: ['../src', './SelfTest'], link_with: [catch3_with_main, catch3], ) test('SelfTest', self_test, args: ['--no-history']) # The Progmasoft tests need C++20; SelfTest keeps the C++ mode it has upstream. progmasoft_property_tests = executable( 'ProgmasoftPropertyTests', [ 'Progmasoft/Generators.tests.cpp', 'Progmasoft/Property.tests.cpp', 'Progmasoft/ForAll.tests.cpp', 'Progmasoft/Results.tests.cpp', 'Progmasoft/Runner.tests.cpp', 'Progmasoft/RunnerUnits.tests.cpp', 'Progmasoft/RunnerPlanner.tests.cpp', 'Progmasoft/RunnerOptions.tests.cpp', 'Progmasoft/RunnerConfig.tests.cpp', 'Progmasoft/RunnerAnalysis.tests.cpp', 'Progmasoft/RunnerOutput.tests.cpp', 'Progmasoft/Snapshot.tests.cpp', 'Progmasoft/Stateful.tests.cpp', 'Progmasoft/Strategy.tests.cpp', ], include_directories: '../src', dependencies: [catch3_with_main_dep], override_options: ['cpp_std=c++17'], ) # Tests that misbehave on purpose, for the runner's integration tests. runner_fixture = executable( 'RunnerFixture', 'Progmasoft/RunnerFixture.cpp', include_directories: '../src', dependencies: [catch3_with_main_dep], override_options: ['cpp_std=c++17'], ) test( 'Progmasoft_PropertyTests', progmasoft_property_tests, args: ['--no-history'], env: {'CATCH3_RUNNER_FIXTURE': runner_fixture.full_path()}, depends: runner_fixture, timeout: 300, )