|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r80504 - in trunk: boost/context/detail libs/context/test
From: oliver.kowalke_at_[hidden]
Date: 2012-09-12 07:36:49
Author: olli
Date: 2012-09-12 07:36:48 EDT (Wed, 12 Sep 2012)
New Revision: 80504
URL: http://svn.boost.org/trac/boost/changeset/80504
Log:
context: fixing invalid fcontext_t struct on i386; test stacksizes
Text files modified:
trunk/boost/context/detail/fcontext_i386.hpp | 7 +++----
trunk/libs/context/test/test_context.cpp | 31 +++++++++++++++++++++++--------
2 files changed, 26 insertions(+), 12 deletions(-)
Modified: trunk/boost/context/detail/fcontext_i386.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_i386.hpp (original)
+++ trunk/boost/context/detail/fcontext_i386.hpp 2012-09-12 07:36:48 EDT (Wed, 12 Sep 2012)
@@ -27,24 +27,23 @@
struct stack_t
{
- boost::uint32_t code;
void * sp;
std::size_t size;
stack_t() :
- code( 0), sp( 0), size( 0)
+ sp( 0), size( 0)
{}
};
struct fcontext_t
{
- stack_t fc_stack;
boost::uint32_t fc_greg[6];
+ stack_t fc_stack;
boost::uint32_t fc_freg[2];
fcontext_t() :
- fc_stack(),
fc_greg(),
+ fc_stack(),
fc_freg()
{}
};
Modified: trunk/libs/context/test/test_context.cpp
==============================================================================
--- trunk/libs/context/test/test_context.cpp (original)
+++ trunk/libs/context/test/test_context.cpp 2012-09-12 07:36:48 EDT (Wed, 12 Sep 2012)
@@ -76,6 +76,20 @@
ctx::jump_fcontext( fc, & fcm, 0);
}
+void test_stack()
+{
+ std::size_t def = ctx::guarded_stack_allocator::default_stacksize();
+ std::size_t min = ctx::guarded_stack_allocator::minimum_stacksize();
+ bool unbound = ctx::guarded_stack_allocator::is_stack_unbound();
+ if ( ! unbound)
+ {
+ std::size_t max = ctx::guarded_stack_allocator::maximum_stacksize();
+ BOOST_CHECK( unbound || ( max >= def) );
+ }
+
+ BOOST_CHECK( min <= def);
+}
+
void test_setup()
{
ctx::guarded_stack_allocator alloc;
@@ -205,14 +219,15 @@
boost::unit_test::test_suite * test =
BOOST_TEST_SUITE("Boost.Context: context test suite");
- test->add( BOOST_TEST_CASE( & test_setup) );
- test->add( BOOST_TEST_CASE( & test_start) );
- test->add( BOOST_TEST_CASE( & test_jump) );
- test->add( BOOST_TEST_CASE( & test_result) );
- test->add( BOOST_TEST_CASE( & test_arg) );
- test->add( BOOST_TEST_CASE( & test_transfer) );
- test->add( BOOST_TEST_CASE( & test_exception) );
- test->add( BOOST_TEST_CASE( & test_fp) );
+ test->add( BOOST_TEST_CASE( & test_stack) );
+ test->add( BOOST_TEST_CASE( & test_setup) );
+ test->add( BOOST_TEST_CASE( & test_start) );
+ test->add( BOOST_TEST_CASE( & test_jump) );
+ test->add( BOOST_TEST_CASE( & test_result) );
+ test->add( BOOST_TEST_CASE( & test_arg) );
+ test->add( BOOST_TEST_CASE( & test_transfer) );
+ test->add( BOOST_TEST_CASE( & test_exception) );
+ test->add( BOOST_TEST_CASE( & test_fp) );
return test;
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk