#  Boost string_algo library test suite Jamfile  ----------------------------
#
#  Copyright Pavol Droba 2002-2003. Use, modification and
#  distribution is subject to 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)
#
#  See http://www.boost.org for updates, documentation, and revision history.

import testing ;

test-suite algorithm/string
    : [ run 
            trim_test.cpp
          : :
            :
            : trim
        ]
      [ run 
            conv_test.cpp
          : :
            :
            : conv
        ]
      [ run 
            predicate_test.cpp
          : :
            :
            : predicate
        ]
      [ run 
            find_test.cpp
          : :
            :
            : find
        ]
      [ run
            split_test.cpp
          : :
            :
            : split
        ]
      [ run
            join_test.cpp
          : :
            :
            : join
        ]
      [ run 
            replace_test.cpp
          : :
            :
            : replace
        ]
      [ run 
            regex_test.cpp
            ../../../regex/build//boost_regex
          : :
            :   
            : regex
        ]
      [ run 
            find_format_test.cpp
          : :
            :   
            : find_format
        ]
    ;

