12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /*=============================================================================
- 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)
|