# Boost.Wave: A Standard compliant C++ preprocessor library
#
# Boost Wave Library Test Jamfile
#
# http://www.boost.org/
#
# Copyright (c) 2001-2005 Hartmut Kaiser. 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)

subproject libs/wave/test/build ;

# bring in the rules for testing
import testing ;

# Make tests run by default.
DEPENDS all : test ;

#
# These are the sources to compile for the testwave application
#
TESTWAVE_SOURCES = testwave testwave_app    ;

#
# This is the directory where the test files reside
#
TESTWAVE_DIR = $(BOOST_ROOT)/libs/wave/test/testwave/testfiles
    ;

#
# This are the arguments for the testwave executable
#
TESTWAVE_ARGUMENTS = 
        -d9                              # use -d4 for verbose results 
        -S$(TESTWAVE_DIR) 
        -S$(BOOST_ROOT) -I$(BOOST_ROOT)
    ;

#
# These are the names of the different unit tests to run
#
TESTWAVE_FILES = test.cfg
    ;

#
# this template defines the options common to all wave lexer tests:
#
template wave-lexer-test 
    : 
        <lib>../../build/boost_wave    # sources
    : 
        <include>$(BOOST_ROOT) 
        <sysinclude>$(BOOST_ROOT)
        <vc-7_1><*><rtti>off           # workaround for compiler bug
        std::locale-support
    : 
        <runtime-link>static
        <threading>single
        debug                          # build variants
    ;

#
# this template defines the options common to all wave tests:
#
template wave-test 
    : 
        <lib>../../build/boost_wave    # sources
        <lib>../../../program_options/build/boost_program_options
        <lib>../../../filesystem/build/boost_filesystem
    : 
        <include>$(BOOST_ROOT) 
        <sysinclude>$(BOOST_ROOT)
        <vc-7_1><*><rtti>off           # workaround for compiler bug
        std::locale-support
    : 
        <runtime-link>static
        <threading>single
        debug                          # build variants
    ;

#
# Wave test suite
#
test-suite wave
    :
        # test the wave preprocessing component
        [   
            run
            # sources
                <template>wave-test 
                ../testwave/$(TESTWAVE_SOURCES).cpp
            :
            # arguments
                $(TESTWAVE_ARGUMENTS) 
                --config-file=$(TESTWAVE_DIR)/$(TESTWAVE_FILES)
            :
            # input files
            :
            # requirements
            :
            # name
                testwave
        ]
        # test the different wave lexing components 
        [   
            run
            # sources
                <template>wave-lexer-test 
                ../testlexers/test_slex_lexer.cpp
            :
            # arguments
            :
            # input files
            :
            # requirements
            :
            # name
                test_slex_lexer
        ]
        [   
            run
            # sources
                <template>wave-lexer-test 
                ../testlexers/test_re2c_lexer.cpp
            :
            # arguments
            :
            # input files
            :
            # requirements
            :
            # name
                test_re2c_lexer
        ]
    ;

