X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ftest_session2.cpp;h=0d1aa41da1fe8753f5da86c5010e31036c3014c3;hb=586d78659d671683f33ec55f4a7d32b28e345ccd;hp=4f4623c0878e9519f847e2f923a8fa5e774f8c1e;hpb=4d5febdded4cf09681bf9491789d1c7bec9cb3a6;p=metaproxy-moved-to-github.git diff --git a/src/test_session2.cpp b/src/test_session2.cpp index 4f4623c..0d1aa41 100644 --- a/src/test_session2.cpp +++ b/src/test_session2.cpp @@ -1,4 +1,23 @@ -#include "session.hpp" +/* This file is part of Metaproxy. + Copyright (C) Index Data + +Metaproxy is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Metaproxy is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "config.hpp" +#include #include #include @@ -7,22 +26,25 @@ #include #define BOOST_AUTO_TEST_MAIN +#define BOOST_TEST_DYN_LINK #include using namespace boost::unit_test; +namespace mp = metaproxy_1; boost::mutex io_mutex; -class Worker +class Worker { public: - Worker(yp2::Session *session, int nr = 0) - : m_session(session), m_nr(nr){}; - + Worker(int nr = 0) + : m_nr(nr), m_id(0) {}; + void operator() (void) { for (int i=0; i < 100; ++i) { - m_id = m_session->id(); + mp::Session session; + m_id = session.id(); //print(); } } @@ -30,37 +52,38 @@ class Worker void print() { boost::mutex::scoped_lock scoped_lock(io_mutex); - std::cout << "Worker " << m_nr + std::cout << "Worker " << m_nr << " session.id() " << m_id << std::endl; } - - private: - yp2::Session *m_session; + + private: int m_nr; int m_id; }; -BOOST_AUTO_TEST_CASE( testsession2 ) +BOOST_AUTO_TEST_CASE( testsession2 ) { - // test session + // test session try { - yp2::Session session; - const int num_threads = 10; + const int num_threads = 100; boost::thread_group thrds; - + + for (int i=0; i < num_threads; ++i) { - Worker w(&session, i); + // Notice that each Worker has it's own session object! + Worker w(i); thrds.add_thread(new boost::thread(w)); } thrds.join_all(); - BOOST_CHECK (session.id() == 1001); - + mp::Session session; + BOOST_CHECK (session.id() == 10001); + } catch (std::exception &e) { std::cout << e.what() << "\n"; @@ -74,7 +97,9 @@ BOOST_AUTO_TEST_CASE( testsession2 ) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +