# Copyright 2011 Daniel James.
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

import testing ;

project detail/test/container_fwd
  : requirements
        <warnings>all
        <toolset>intel:<warnings>on
        <toolset>gcc:<warnings>pedantic
        <toolset>gcc:<cxxflags>"-Wstrict-aliasing -fstrict-aliasing -Wsign-promo -Wunused-parameter -Wconversion"
        <toolset>darwin:<warnings>pedantic
        <toolset>darwin:<cxxflags>"-Wstrict-aliasing -fstrict-aliasing -Wsign-promo -Wunused-parameter -Wconversion"
        <toolset>clang:<warnings>pedantic
        <toolset>clang:<cxxflags>"-Wmismatched-tags"
        <warnings-as-errors>on
  ;

run container_no_fwd_test.cpp ;
run container_fwd_test.cpp : : : : container_fwd ;
run container_fwd_test.cpp : :
    : <define>_STLP_DEBUG <define>_GLIBCXX_DEBUG
    : container_fwd_debug ;

# The 'correctly_disable' tests fail if forward declaring standard types
# could work, but is currently not being done. Unfortunately, this if often
# the case - but we can't detect it, so the tests fail and there's not much
# we can do. There are also problems because some compilers don't support
# the debug version of their libraries. So I felt it was best to stop these
# tests from running in a normal test run..

compile-fail correctly_disable_fail.cpp
    : <warnings-as-errors>off
    : correctly_disable ;
compile-fail correctly_disable_fail.cpp
    : <warnings-as-errors>off <define>_STLP_DEBUG <define>_GLIBCXX_DEBUG
    : correctly_disable_debug ;

explicit correctly_disable ;
explicit correctly_disable_debug ;