summaryrefslogtreecommitdiff
path: root/tests/Cached_Allocator_Test.cpp
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-03-05 17:14:45 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-03-05 17:14:45 +0000
commit58033491c6d0bac82315c1fdb1ec9b39be58093f (patch)
treec69c3aa67ec66758066e959bd0d533ea336ec236 /tests/Cached_Allocator_Test.cpp
parent2efc882384a34f61311a24fc641d1b5fd5776356 (diff)
downloadATCD-TAO-1_5.tar.gz
This commit was manufactured by cvs2svn to create tag 'TAO-1_5'.TAO-1_5
Diffstat (limited to 'tests/Cached_Allocator_Test.cpp')
-rw-r--r--tests/Cached_Allocator_Test.cpp295
1 files changed, 0 insertions, 295 deletions
diff --git a/tests/Cached_Allocator_Test.cpp b/tests/Cached_Allocator_Test.cpp
deleted file mode 100644
index 78cab3e70e4..00000000000
--- a/tests/Cached_Allocator_Test.cpp
+++ /dev/null
@@ -1,295 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cached_Allocator_Test.cpp
-//
-// = DESCRIPTION
-// Simple test of ACE_Dynamic_Cached_Allocator and ACE_Cached_Allocator.
-//
-// = AUTHOR
-// Jaroslaw Nozderko <jareknz@polbox.com>
-//
-// ============================================================================
-
-#include "test_config.h"
-#include "ace/OS_NS_string.h"
-#include "ace/Malloc_T.h"
-#include "ace/High_Res_Timer.h"
-
-ACE_RCSID(tests, Cached_Allocator_Test, "$Id$")
-
-#include "ace/Synch_Traits.h"
-#include "ace/Null_Mutex.h"
-
-typedef ACE_Dynamic_Cached_Allocator<ACE_SYNCH_NULL_MUTEX> DYNAMIC_ALLOCATOR;
-
-static int
-speed_test (ACE_UINT32 loops)
-{
-#ifndef ACE_LACKS_FLOATING_POINT
- double tt = 0.0,
- ut = 0.0,
- utus = 0.0,
- speed = 0.0;
-#endif /* ACE_LACKS_FLOATING_POINT */
-
- ACE_Time_Value tc;
- void *ptr = 0;
- ACE_UINT32 i = loops;
- size_t n_chunks = 10;
- size_t chunk_size = 8;
-
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT (" (%t) ACE_Dynamic_Cached_Allocator ")
- ACE_TEXT ("speed test...\n")));
-
- DYNAMIC_ALLOCATOR allocator (n_chunks, chunk_size);
-
- ACE_High_Res_Timer timer;
- timer.reset ();
-
- timer.start ();
-
- while (i--)
- {
- ptr = allocator.malloc (chunk_size);
- allocator.free (ptr);
- }
-
- timer.stop ();
-
- timer.elapsed_time (tc);
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Iterations : %d\n"), loops));
-#ifdef ACE_LACKS_FLOATING_POINT
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Total time : %d s, %d us\n"),
- tc.sec (), tc.usec ()));
-#elif !defined ACE_LACKS_FLOATING_POINT
- tt = tc.sec () + tc.usec ()*1.0e-6;
- ut = tt/loops;
- utus = ut*1.0e6;
- speed = loops/tt;
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Total time : %.6g [s]\n"), tt));
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Unit time : %.6g [us]\n"), utus));
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Speed : %.6g [1/s]\n"), speed));
-
-#endif /* !defined ACE_LACKS_FLOATING_POINT */
-
- return 0;
-}
-
-typedef char MEMBLOCK[8];
-typedef ACE_Cached_Allocator<MEMBLOCK, ACE_SYNCH_NULL_MUTEX> STATIC_ALLOCATOR;
-
-static int
-stdspeed_test (ACE_UINT32 loops)
-{
-
-#ifndef ACE_LACKS_FLOATING_POINT
- double tt = 0.0,
- ut = 0.0,
- utus = 0.0,
- speed = 0.0;
-#endif /* ACE_LACKS_FLOATING_POINT */
-
- ACE_Time_Value tc;
- void *ptr = 0;
- ACE_UINT32 i = loops;
- size_t n_chunks = 10,
- chunk_size = 8;
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) ACE_Cached_Allocator ")
- ACE_TEXT ("speed test...\n")));
-
- STATIC_ALLOCATOR allocator (n_chunks);
-
- ACE_High_Res_Timer timer;
- timer.reset ();
-
- timer.start ();
- while (i--)
- {
- ptr = allocator.malloc (chunk_size);
- allocator.free (ptr);
- }
- timer.stop ();
-
- timer.elapsed_time (tc);
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Iterations : %d\n"), loops));
-#ifdef ACE_LACKS_FLOATING_POINT
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Total time : %d s, %d us\n"),
- tc.sec (), tc.usec ()));
-#elif !defined ACE_LACKS_FLOATING_POINT
- tt = tc.sec () + tc.usec ()*1.0e-6;
- ut = tt/loops;
- utus = ut*1.0e6;
- speed = loops/tt;
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Total time : %.6g [s]\n"), tt));
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Unit time : %.6g [us]\n"), utus));
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Speed : %.6g [1/s]\n"), speed));
-
-#endif /* !defined ACE_LACKS_FLOATING_POINT */
-
- return 0;
-}
-
-int
-run_main (int argc, ACE_TCHAR *argv[])
-{
- ACE_START_TEST (ACE_TEXT ("Cached_Allocator_Test"));
-
- size_t chunk_size = 0;
- size_t n_chunks = 0;
- size_t requested_size = 0;
- size_t depth = 0;
- char *ptr1 = 0;
- char *ptr2 = 0;
- char *ptr3 = 0;
- char *ptr4 = 0;
- ACE_UINT32 loops = 0;
-
- const char *str1 = "12345678";
- const char *str3 = "ABCDEFGH";
-
- if (argc < 2)
- loops = 10000000;
- else
- loops = ACE_OS::atoi (argv[1]);
-
- chunk_size = 8;
- n_chunks = 2;
-
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT (" (%t) Creating allocator: ")
- ACE_TEXT ("%d chunks, %d bytes each\n"),
- n_chunks,
- chunk_size));
-
- DYNAMIC_ALLOCATOR allocator (n_chunks, chunk_size);
-
- if ((depth = allocator.pool_depth ()) != n_chunks)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Expected pool depth ") ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_TEXT (" but reported ") ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_TEXT ("\n"),
- n_chunks, depth));
- requested_size = chunk_size;
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT (" (%t) Allocating chunk 1: %d bytes, should succeed...\n"),
- requested_size));
-
- ptr1 = (char *) allocator.malloc (requested_size);
- if (!ptr1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT (" (%t) Failed, exiting.\n")), -1);
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) OK, succeeded.\n")));
- if ((depth = allocator.pool_depth ()) != (n_chunks - 1))
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Expected pool depth ") ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_TEXT (" but reported ") ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_TEXT ("\n"),
- n_chunks - 1, depth));
-
- requested_size = chunk_size + 1;
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT (" (%t) Allocating chunk 2: %d bytes, too big, should fail...\n"),
- requested_size));
-
- ptr2 = (char *) allocator.malloc (requested_size);
- if (!ptr2)
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) OK, failed.\n")));
- else
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT (" (%t) Something is wrong...\n")), -1);
-
- requested_size = chunk_size - 1;
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT (" (%t) Allocating chunk 3: %d bytes, ")
- ACE_TEXT ("should succeed...\n"),
- requested_size));
- ptr3 = (char *) allocator.malloc (requested_size);
- if (!ptr3)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT (" (%t) Failed, exiting.\n")), -1);
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) OK, succeeded.\n")));
-
- // One chunk too far...
- if ((depth = allocator.pool_depth ()) != 0)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("Expected pool depth 0")
- ACE_TEXT (" but reported ") ACE_SIZE_T_FORMAT_SPECIFIER
- ACE_TEXT ("\n"),
- depth));
- requested_size = chunk_size;
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT (" (%t) Allocating chunk 4: %d bytes, no free chunks,")
- ACE_TEXT (" should fail...\n"),
- requested_size));
-
- ptr4 = (char *) allocator.malloc (requested_size);
- if (!ptr4)
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) OK, failed.\n")));
- else
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT (" (%t) Something is wrong\n")), -1);
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Writing to chunk 1: %s\n"), str1));
- ACE_OS::memcpy (ptr1, str1, chunk_size);
- ptr1[chunk_size - 1] = '\0';
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Reading from chunk 1: %s\n"), ptr1));
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Writing to chunk 3: %s\n"), str3));
- ACE_OS::memcpy (ptr3, str3, chunk_size);
- ptr3[chunk_size - 1] = '\0';
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Reading from chunk 3: %s\n"), ptr3));
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Deallocating chunk 1\n")));
- allocator.free (ptr1);
-
- requested_size = chunk_size;
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Allocating chunk: %d bytes, ")
- ACE_TEXT ("should succeed...\n"),
- requested_size));
- ptr1 = (char *) allocator.malloc (requested_size);
- if (!ptr1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT (" (%t) Failed, exiting.\n")), -1);
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) OK, succeeded.\n")));
-
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Deallocating chunk 1\n")));
- allocator.free (ptr1);
- ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Deallocating chunk 3\n")));
- allocator.free (ptr3);
-
- speed_test (loops);
- stdspeed_test (loops);
-
- ACE_END_TEST;
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Free_List<ACE_Cached_Mem_Pool_Node<MEMBLOCK> >;
-template class ACE_Free_List<ACE_Cached_Mem_Pool_Node<char> >;
-template class ACE_Dynamic_Cached_Allocator<ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Cached_Allocator<MEMBLOCK, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<char>, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Cached_Mem_Pool_Node<char>;
-template class ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<MEMBLOCK>, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Cached_Mem_Pool_Node<MEMBLOCK>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Free_List<ACE_Cached_Mem_Pool_Node<MEMBLOCK> >
-#pragma instantiate ACE_Free_List<ACE_Cached_Mem_Pool_Node<char> >
-#pragma instantiate ACE_Dynamic_Cached_Allocator<ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Cached_Allocator<MEMBLOCK, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<char>, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Cached_Mem_Pool_Node<char>
-#pragma instantiate ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<MEMBLOCK>, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Cached_Mem_Pool_Node<MEMBLOCK>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */