summaryrefslogtreecommitdiff
path: root/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp')
-rw-r--r--performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp225
1 files changed, 0 insertions, 225 deletions
diff --git a/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp b/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp
deleted file mode 100644
index be6e1eaf72f..00000000000
--- a/performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-#include "ace/Service_Repository.h"
-#include "ace/Synch.h"
-#include "ace/Get_Opt.h"
-#include "ace/Thread_Manager.h"
-#include "Baseline_Test.h"
-
-#if !defined (__ACE_INLINE__)
-#include "Baseline_Test.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(Synch_Benchmarks, Baseline_Test, "$Id$")
-
-Baseline_Test_Options baseline_options;
-// Static Baseline Options holds the test configuration information
-// and the test statistics.
-
-Baseline_Test_Base::Baseline_Test_Base (void)
- : Benchmark_Base (Benchmark_Base::BASELINE),
- yield_method_ (Baseline_Test_Options::USE_SLEEP_ZERO),
- iteration_ (DEFAULT_ITERATIONS),
- what_(TEST_LOCK)
-{
-}
-
-int
-Baseline_Test_Base::init (int argc, char *argv[])
-{
- return this->parse_args (argc, argv);
-}
-
-int
-Baseline_Test_Base::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt getopt (argc, argv, "i:ylrw", 0);
- int c;
-
- while ((c = getopt ()) != -1)
- switch (c)
- {
- case 'i': // Total iterations
- {
- int tmp = ACE_OS::atoi (getopt.optarg);
- if (tmp <= 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%d is not a valid value for iteration\n",
- tmp), -1);
- else
- this->iteration_ = ACE_static_cast (size_t, tmp);
- }
- break;
-
- case 'y': // Use thr_yield.
- this->yield_method_ = Baseline_Test_Options::USE_THR_YIELD;
- break;
-
- case 'l':
- this->what_ = TEST_LOCK;
- break;
-
- case 'r':
- this->what_ = TEST_READLOCK;
- break;
-
- case 'w':
- this->what_ = TEST_WRITELOCK;
- break;
-
- default:
- ACE_ERROR ((LM_ERROR, "Invalid argument %c used\n", c));
- break;
- }
- return 0;
-}
-
-void
-Baseline_Test_Base::yield (void)
-{
- if (this->yield_method_ == Baseline_Test_Options::USE_SLEEP_ZERO)
- ACE_OS::sleep (0);
- else
- ACE_OS::thr_yield ();
-}
-
-Baseline_Test_Options::Baseline_Test_Options (void)
- : test_try_lock_ (0),
- verbose_ (0),
- current_yield_method_ (0),
- current_iteration_ (0),
- total_iteration_ (DEFAULT_ITERATIONS)
-{
-}
-
-int
-Baseline_Test_Options::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt getopt (argc, argv, "tv", 0);
- int c;
-
- while ((c = getopt ()) != -1)
- switch (c)
- {
- case 't':
- this->test_try_lock_ = 1;
- break;
-
- case 'v':
- this->verbose_ = 1;
- break;
-
- default:
- ACE_ERROR ((LM_ERROR, "Invalid arguemnt %c used.\n", c));
- break;
- }
- return 0;
-}
-
-int
-Baseline_Test_Options::reset_params (size_t iteration,
- int yield)
-{
- this->current_iteration_ = 0;
- this->timer.reset ();
-
- this->current_yield_method_ = yield;
- this->total_iteration_ = iteration;
- return 0;
-}
-
-void
-Baseline_Test_Options::print_result (void)
-{
- ACE_Time_Value tv;
- ACE_hrtime_t nsec;
-
- this->timer.elapsed_time_incr (tv);
- this->timer.elapsed_time_incr (nsec);
- ACE_DEBUG ((LM_DEBUG,
- "Total Time: %d sec %d usec for a "
- "total of %d iterations\n"
- "Average time: %d nanoseconds.\n",
- tv.sec (), tv.usec (),
- this->current_iteration_,
- (int) (nsec / this->current_iteration_)));
-}
-
-Baseline_Test::Baseline_Test (void)
- : current_test_ (0),
- get_lock_ (2),
- let_go_lock_ (2)
-{
-}
-
-// Initialize and run the benchmarks tests.
-
-int
-Baseline_Test::init (int argc, char **argv)
-{
- return baseline_options.parse_args (argc, argv);
-}
-
-int
-Baseline_Test::pre_run_test (Benchmark_Base *bb)
-{
- this->current_test_ = (Baseline_Test_Base *) bb;
- baseline_options.reset_params (this->current_test_->iteration (),
- this->current_test_->yield_method ());
- if (baseline_options.test_try_lock ())
- {
- ACE_Thread_Manager::instance ()->spawn
- (ACE_THR_FUNC (Baseline_Test::hold_lock),
- (void *) this);
-
- this->get_lock_.wait ();
- // Wait until the lock is held by the spawning thread.
- }
-
- return 0;
-}
-
-int
-Baseline_Test::run_test (void)
-{
- if (baseline_options.test_try_lock ())
- return this->current_test_->test_try_lock ();
- else
- return this->current_test_->test_acquire_release ();
-}
-
-int
-Baseline_Test::post_run_test (void)
-{
- if (baseline_options.test_try_lock ())
- {
- // Release the lock we hold.
- this->let_go_lock_.wait ();
-
- ACE_Thread_Manager::instance ()->wait ();
- }
-
- baseline_options.print_result ();
-
- return 0;
-}
-
-int
-Baseline_Test::valid_test_object (Benchmark_Base *bb)
-{
- return (bb->benchmark_type () == Benchmark_Base::BASELINE);
-}
-
-void *
-Baseline_Test::hold_lock (void *arg)
-{
- Baseline_Test *this_test = (Baseline_Test *) arg;
- this_test->current_test_->acquire ();
- this_test->get_lock_.wait ();
-
- this_test->let_go_lock_.wait ();
- return 0;
-}
-
-ACE_SVC_FACTORY_DEFINE (Baseline_Test)