subproject libs/python/test ;

# bring in the rules for python
SEARCH on python.jam = $(BOOST_BUILD_PATH) ;
include python.jam ;
# bring in rules for testing
SEARCH on testing.jam = $(BOOST_BUILD_PATH) ;
include testing.jam ;

local PYTHON_V1_PROPERTIES = $(PYTHON_PROPERTIES) ;
local PYTHON_PROPERTIES = $(BOOST_PYTHON_V2_PROPERTIES) ;

# Convenience rule makes declaring tests faster
rule bpl-test ( name ? : files * )
{
    files ?= $(name).py $(name).cpp ;

    local modules ;
    local py ;
    for local f in $(files)
    {
        if $(f:S) = .py
        {
            if $(py)
            {
                EXIT too many python drivers specified: "$(py)" "$(f)" ;
            }
            py = $(f) ;
        }
    }

    name ?= $(py:S=) ;

    for local f in $(files)
    {
        if $(f:S) != .py
        {
            local m = $(f:S=) ;

            if $(m) = $(py:S=)
            {
                m = $(name) ;

                if $(m) = $(py:S=)
                {
                    m = $(m)_ext ;
                }
            }
            extension $(m) : $(f) <dll>../bpl ;
            modules += $(m) ;
        }
    }

    boost-python-runtest $(name) : $(py) <pyd>$(modules) ;
}

bpl-test defaults ;

