0ac381dcf3
[SVN r44371]
62 lines
1.7 KiB
C++
62 lines
1.7 KiB
C++
/*=============================================================================
|
|
Copyright (C) 2003 Martin Wille
|
|
http://spirit.sourceforge.net/
|
|
|
|
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)
|
|
=============================================================================*/
|
|
|
|
// Nota bene: the actual locking is _not_ tested here!
|
|
|
|
#include <iostream>
|
|
#include <boost/config.hpp>
|
|
|
|
void banner()
|
|
{
|
|
std::cout << "/////////////////////////////////////////////////////////\n";
|
|
std::cout << "\n";
|
|
std::cout << " scoped_lock test\n";
|
|
std::cout << "\n";
|
|
std::cout << "/////////////////////////////////////////////////////////\n";
|
|
std::cout << "\n";
|
|
}
|
|
|
|
#if defined(DONT_HAVE_BOOST) || !defined(BOOST_HAS_THREADS) || defined(BOOST_DISABLE_THREADS)
|
|
// if boost libraries are not available we have to skip the tests
|
|
int
|
|
main()
|
|
{
|
|
banner();
|
|
std::cout << "Test skipped (Boost libaries not available)\n";
|
|
return 0;
|
|
}
|
|
#else
|
|
|
|
#include <boost/thread/mutex.hpp>
|
|
#include <boost/spirit/include/classic_core.hpp>
|
|
#include <boost/spirit/include/classic_scoped_lock.hpp>
|
|
#include <boost/detail/lightweight_test.hpp>
|
|
|
|
int
|
|
main()
|
|
{
|
|
banner();
|
|
|
|
using BOOST_SPIRIT_CLASSIC_NS::rule;
|
|
using BOOST_SPIRIT_CLASSIC_NS::scoped_lock_d;
|
|
using BOOST_SPIRIT_CLASSIC_NS::parse_info;
|
|
using BOOST_SPIRIT_CLASSIC_NS::parse;
|
|
using boost::mutex;
|
|
|
|
mutex m;
|
|
rule<> r = scoped_lock_d(m)['x'];
|
|
parse_info<> pi = parse("x", r);
|
|
BOOST_TEST(pi.hit);
|
|
BOOST_TEST(pi.full);
|
|
|
|
return boost::report_errors();
|
|
}
|
|
|
|
#endif // defined(DONT_HAVE_BOOST)
|