mirror of
https://github.com/boostorg/regex.git
synced 2025-07-29 12:07:28 +02:00
Merge fixes from Trunk - mainly warning suppression.
[SVN r65720]
This commit is contained in:
@ -19,6 +19,14 @@
|
||||
|
||||
#ifndef BOOST_REGEX_REGRESS_TEST_HPP
|
||||
#define BOOST_REGEX_REGRESS_TEST_HPP
|
||||
|
||||
#include <boost/regex.hpp>
|
||||
|
||||
#ifdef BOOST_INTEL
|
||||
// disable Intel's "remarks":
|
||||
#pragma warning(disable:1418 981 383 1419 7)
|
||||
#endif
|
||||
|
||||
#include <typeinfo>
|
||||
#include "test_not_regex.hpp"
|
||||
#include "test_regex_search.hpp"
|
||||
@ -28,6 +36,9 @@
|
||||
#include "test_icu.hpp"
|
||||
#include "test_locale.hpp"
|
||||
|
||||
#ifdef TEST_THREADS
|
||||
#include <boost/thread/once.hpp>
|
||||
#endif
|
||||
|
||||
//
|
||||
// define test entry proc, this forwards on to the appropriate
|
||||
@ -54,6 +65,16 @@ void test(const wchar_t&, const test_regex_search_tag&);
|
||||
void test(const wchar_t&, const test_invalid_regex_tag&);
|
||||
#endif
|
||||
|
||||
template <class Regex>
|
||||
struct call_once_func
|
||||
{
|
||||
Regex* pregex;
|
||||
void operator()()const
|
||||
{
|
||||
return test_empty(*pregex);
|
||||
}
|
||||
};
|
||||
|
||||
template <class charT, class tagT>
|
||||
void do_test(const charT& c, const tagT& tag)
|
||||
{
|
||||
@ -65,12 +86,18 @@ void do_test(const charT& c, const tagT& tag)
|
||||
test_info<charT>::set_typename(typeid(boost::basic_regex<charT, boost::cpp_regex_traits<charT> >).name());
|
||||
#endif
|
||||
boost::basic_regex<charT, boost::cpp_regex_traits<charT> > e1;
|
||||
#ifndef TEST_THREADS
|
||||
static bool done_empty_test = false;
|
||||
if(done_empty_test == false)
|
||||
{
|
||||
test_empty(e1);
|
||||
done_empty_test = true;
|
||||
}
|
||||
#else
|
||||
boost::once_flag f = BOOST_ONCE_INIT;
|
||||
call_once_func<boost::basic_regex<charT, boost::cpp_regex_traits<charT> > > proc = { &e1 };
|
||||
boost::call_once(f, proc);
|
||||
#endif
|
||||
if(test_locale::cpp_locale_state() == test_locale::test_with_locale)
|
||||
e1.imbue(test_locale::cpp_locale());
|
||||
if(test_locale::cpp_locale_state() != test_locale::no_test)
|
||||
|
@ -342,13 +342,13 @@ void test_icu(const wchar_t&, const test_regex_search_tag& )
|
||||
{
|
||||
BOOST_REGEX_TEST_ERROR("Expression did not compile when it should have done: " << e.what(), UChar32);
|
||||
}
|
||||
catch(const std::runtime_error& r)
|
||||
catch(const std::runtime_error& e)
|
||||
{
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << r.what(), UChar32);
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << e.what(), UChar32);
|
||||
}
|
||||
catch(const std::exception& r)
|
||||
catch(const std::exception& e)
|
||||
{
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << r.what(), UChar32);
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << e.what(), UChar32);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
@ -418,15 +418,15 @@ void test_icu(const wchar_t&, const test_invalid_regex_tag&)
|
||||
{
|
||||
have_catch = true;
|
||||
}
|
||||
catch(const std::runtime_error& r)
|
||||
catch(const std::runtime_error& e)
|
||||
{
|
||||
have_catch = true;
|
||||
BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::runtime_error instead: " << r.what(), wchar_t);
|
||||
BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::runtime_error instead: " << e.what(), wchar_t);
|
||||
}
|
||||
catch(const std::exception& r)
|
||||
catch(const std::exception& e)
|
||||
{
|
||||
have_catch = true;
|
||||
BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::exception instead: " << r.what(), wchar_t);
|
||||
BOOST_REGEX_TEST_ERROR("Expected a bad_expression exception, but a std::exception instead: " << e.what(), wchar_t);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
@ -624,13 +624,13 @@ void test_icu(const wchar_t&, const test_regex_replace_tag&)
|
||||
{
|
||||
BOOST_REGEX_TEST_ERROR("Expression did not compile when it should have done: " << e.what(), UChar32);
|
||||
}
|
||||
catch(const std::runtime_error& r)
|
||||
catch(const std::runtime_error& e)
|
||||
{
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << r.what(), UChar32);
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::runtime_error: " << e.what(), UChar32);
|
||||
}
|
||||
catch(const std::exception& r)
|
||||
catch(const std::exception& e)
|
||||
{
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << r.what(), UChar32);
|
||||
BOOST_REGEX_TEST_ERROR("Received an unexpected std::exception: " << e.what(), UChar32);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
|
@ -476,5 +476,9 @@ void test_pocessive_repeats()
|
||||
TEST_REGEX_SEARCH("x{1,5}+\\w", perl, "xxxxxa", match_default, make_array(0, 6, -2, -2));
|
||||
TEST_REGEX_SEARCH("x{1,4}+\\w", perl, "xxxxxa", match_default, make_array(0, 5, -2, -2));
|
||||
TEST_REGEX_SEARCH("x{1,3}+\\w", perl, "xxxxxa", match_default, make_array(0, 4, -2, 4, 6, -2, -2));
|
||||
TEST_INVALID_REGEX("\\d+++", perl);
|
||||
TEST_INVALID_REGEX("\\d*++", perl);
|
||||
TEST_INVALID_REGEX("\\d?++", perl);
|
||||
TEST_INVALID_REGEX("\\d{1,2}++", perl);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user