
# Copyright (C) 2008-2018 Lorenzo Caminiti
# Distributed under the Boost Software License, Version 1.0 (see accompanying
# file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt).
# See: http://www.boost.org/doc/libs/release/libs/contract/doc/html/index.html

require-b2 5.0.1 ;
import-search /boost/config/checks ;
import ../build/boost_contract_build ;
import config : requires ;

test-suite features :
    [ boost_contract_build.subdir-run features : introduction_comments ]
    [ boost_contract_build.subdir-run-cxx11 features : introduction ]
    [ boost_contract_build.subdir-run-cxx11 features : introduction_public ]

    [ boost_contract_build.subdir-run-cxx11 features : non_member ]
    [ boost_contract_build.subdir-run-cxx11 features : lambda ]
    [ boost_contract_build.subdir-run-cxx11 features : loop ]
    [ boost_contract_build.subdir-run-cxx11 features : code_block ]
    [ boost_contract_build.subdir-run-cxx11 features : public ]
    [ boost_contract_build.subdir-run-cxx11 features : base_types ]
    [ boost_contract_build.subdir-run-cxx11 features : static_public ]
    [ boost_contract_build.subdir-run-cxx11 features : private_protected ]
    [ boost_contract_build.subdir-run-cxx11 features :
            private_protected_virtual ]
    [ boost_contract_build.subdir-run-cxx11 features :
            private_protected_virtual_multi ]
    [ boost_contract_build.subdir-run-cxx11 features : check ]

    [ boost_contract_build.subdir-run-cxx11 features : friend ]
    [ boost_contract_build.subdir-run-cxx11 features : friend_invariant ]
    [ boost_contract_build.subdir-run-cxx11 features : old ]
    [ boost_contract_build.subdir-run-cxx11 features : optional_result ]
    [ boost_contract_build.subdir-run-cxx11 features : optional_result_virtual ]
    [ boost_contract_build.subdir-run-cxx11 features : pure_virtual_public ]
    [ boost_contract_build.subdir-run-cxx11 features : overload ]
    [ boost_contract_build.subdir-run-cxx11 features : named_override ]
    [ boost_contract_build.subdir-run-cxx11 features : move ]
    [ boost_contract_build.subdir-run-cxx11 features : union ]
    [ boost_contract_build.subdir-run features : volatile ]

    [ boost_contract_build.subdir-run-cxx11 features : old_if_copyable ]
    [ boost_contract_build.subdir-run-cxx11 features : if_constexpr :
            [ requires cxx17_if_constexpr ] ]
    [ boost_contract_build.subdir-run-cxx11 features : condition_if ]
    [ boost_contract_build.subdir-run-cxx11 features : call_if_cxx14 :
            [ requires cxx14_generic_lambdas ] ]
    [ boost_contract_build.subdir-run-cxx11 features : access ]
    [ boost_contract_build.subdir-run-cxx11 features : separate_body ]
    [ boost_contract_build.subdir-run-cxx11 features : throw_on_failure ]
    [ boost_contract_build.subdir-run-cxx11 features : ifdef ]
    [ boost_contract_build.subdir-run-cxx11 features : assertion_level ]
    [ boost_contract_build.subdir-run-cxx11 features : ifdef_macro ]
    [ boost_contract_build.subdir-run-cxx11 features : base_types_no_macro ]
    [ boost_contract_build.subdir-run-cxx11 features : old_no_macro ]
    # Still needs C++11 for OLDOF variadic macros.
    [ boost_contract_build.subdir-run-cxx11 features : no_lambdas ]
    [ boost_contract_build.subdir-run-cxx11 features : no_lambdas_local_func :
        <library>/boost/local_function//boost_local_function ]
;

test-suite n1962 :
    [ boost_contract_build.subdir-run-cxx11 n1962 : vector ]
    [ boost_contract_build.subdir-run-cxx11 n1962 : sqrt ]
    [ boost_contract_build.subdir-run-cxx11 n1962 : circle ]
    [ boost_contract_build.subdir-run-cxx11 n1962 : equal ]
    [ boost_contract_build.subdir-run-cxx11 n1962 : factorial ]
    [ boost_contract_build.subdir-run-cxx11 n1962 : sum ]
;

test-suite meyer97 :
    [ boost_contract_build.subdir-run-cxx11 meyer97 : stack4_main ]
    [ boost_contract_build.subdir-run-cxx11 meyer97 : stack3 ]
;

test-suite mitchell02 :
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : stack ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : simple_queue ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : dictionary ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : customer_manager ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : name_list ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : courier ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : observer_main ]
    [ boost_contract_build.subdir-run-cxx11 mitchell02 : counter_main ]
;

test-suite cline90 :
    [ boost_contract_build.subdir-run-cxx11 cline90 : stack ]
    [ boost_contract_build.subdir-run-cxx11 cline90 : vector_main ]
    [ boost_contract_build.subdir-run-cxx11 cline90 : vstack ]
    [ boost_contract_build.subdir-run-cxx11 cline90 : calendar ]
;

