summaryrefslogtreecommitdiff
path: root/tests/Cache_Map_Manager_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Cache_Map_Manager_Test.cpp')
-rw-r--r--tests/Cache_Map_Manager_Test.cpp509
1 files changed, 0 insertions, 509 deletions
diff --git a/tests/Cache_Map_Manager_Test.cpp b/tests/Cache_Map_Manager_Test.cpp
deleted file mode 100644
index 8cf39463d14..00000000000
--- a/tests/Cache_Map_Manager_Test.cpp
+++ /dev/null
@@ -1,509 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Cache_Map_Manager_Test.cpp
-//
-// = DESCRIPTION
-// This is a test of the <ACE_Cache_Map_Manager> and
-// <ACE_Hash_Cache_Map_Manager> that illustrates how to use the
-// forward and reverse iterators, as well as the purging and
-// caching features.
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-//
-// ============================================================================
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "test_config.h"
-#include "ace/Hash_Cache_Map_Manager_T.h"
-#include "ace/Map_Manager.h"
-#include "ace/Caching_Strategies_T.h"
-#include "ace/Functor.h"
-#include "ace/Pair_T.h"
-#include "ace/Synch.h"
-#include "ace/Get_Opt.h"
-
-#if defined(__BORLANDC__) && __BORLANDC__ >= 0x0530
-USELIB("..\ace\aced.lib");
-//---------------------------------------------------------------------------
-#endif /* defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 */
-
-typedef size_t KEY;
-typedef size_t VALUE;
-typedef int ATTR;
-typedef ACE_Pair<VALUE, ATTR> CACHE_VALUE;
-typedef ACE_Hash<KEY> HASH_KEY;
-typedef ACE_Equal_To<KEY> COMPARE_KEYS;
-
-typedef ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>
- HASH_MAP_MANAGER;
-
-typedef ACE_Hash_Map_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>
- HASH_MAP_MANAGER_ITERATOR;
-
-typedef ACE_Map_Manager<KEY, CACHE_VALUE, ACE_Null_Mutex>
- MAP_MANAGER;
-
-typedef ACE_Map_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>
- MAP_MANAGER_ITERATOR;
-
-typedef ACE_Map_Reverse_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>
- MAP_MANAGER_REVERSE_ITERATOR;
-
-typedef ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER_ITERATOR, ATTR>
- HASH_MAP_CACHING_UTILITY;
-
-typedef ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, MAP_MANAGER, MAP_MANAGER_ITERATOR, ATTR>
- MAP_CACHING_UTILITY;
-
-typedef ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, HASH_MAP_MANAGER, ATTR, HASH_MAP_CACHING_UTILITY>
- HASH_MAP_LRU;
-
-typedef ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, MAP_MANAGER, ATTR, MAP_CACHING_UTILITY>
- MAP_LRU;
-
-typedef ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, HASH_MAP_LRU, ATTR>
- HASH_MAP_CACHE;
-
-typedef ACE_Cache_Map_Manager<KEY, VALUE, MAP_MANAGER, MAP_MANAGER_ITERATOR, MAP_MANAGER_REVERSE_ITERATOR, MAP_LRU, ATTR>
- MAP_CACHE;
-
-static size_t iterations = ACE_MAX_ITERATIONS;
-static size_t no_of_lookups = iterations / 2;
-static int randomize_lookups = 1;
-static int purge_percent = 10;
-
-static void
-run_iterator_cache (MAP_CACHE &cache)
-{
- size_t iterations = cache.current_size ();
- size_t counter = 0;
- MAP_CACHE::iterator end = cache.end ();
-
- for (MAP_CACHE::iterator iter = cache.begin ();
- iter != end;
- ++iter)
- {
- // Debugging info.
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("(%d|%d)"),
- (*iter).first (),
- (*iter).second ()));
-
- ACE_ASSERT ((*iter).first () == (*iter).second ());
- ++counter;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("\n")));
-
- ACE_UNUSED_ARG (iterations);
- ACE_ASSERT (counter == iterations);
-}
-
-static void
-run_iterator_hash_cache (HASH_MAP_CACHE &cache)
-{
- size_t iterations = cache.current_size ();
- size_t counter = 0;
- HASH_MAP_CACHE::iterator end = cache.end ();
-
- for (HASH_MAP_CACHE::iterator iter = cache.begin ();
- iter != end;
- ++iter)
- {
- // Debugging info.
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("(%d|%d)"),
- (*iter).first (),
- (*iter).second ()));
-
- ACE_ASSERT ((*iter).first () == (*iter).second ());
- ++counter;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("\n")));
-
- ACE_UNUSED_ARG (iterations);
- ACE_ASSERT (counter == iterations);
-}
-
-static void
-run_reverse_iterator_cache (MAP_CACHE &cache)
-{
- size_t counter = cache.current_size ();
- MAP_CACHE::reverse_iterator rend = cache.rend ();
-
- for (MAP_CACHE::reverse_iterator iter = cache.rbegin ();
- iter != rend;
- ++iter)
- {
- ACE_ASSERT ((*iter).first () == (*iter).second ());
-
- // Debugging info.
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("(%d|%d)"),
- (*iter).first (),
- (*iter).second ()));
- --counter;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("\n")));
- ACE_ASSERT (counter == 0);
-}
-
-static void
-run_reverse_iterator_hash_cache (HASH_MAP_CACHE &cache)
-{
- size_t counter = cache.current_size ();
- HASH_MAP_CACHE::reverse_iterator rend = cache.rend ();
-
- for (HASH_MAP_CACHE::reverse_iterator iter = cache.rbegin ();
- iter != rend;
- ++iter)
- {
- ACE_ASSERT ((*iter).first () == (*iter).second ());
-
- // Debugging info.
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("(%d|%d)"),
- (*iter).first (),
- (*iter).second ()));
- --counter;
- }
-
- ACE_DEBUG ((LM_DEBUG,
- ASYS_TEXT ("\n")));
- ACE_ASSERT (counter == 0);
-}
-
-static void
-find_test_cache (MAP_CACHE &cache)
-{
- ACE_DEBUG ((LM_DEBUG, "find\n"));
-
- size_t total_entries = cache.current_size ();
-
- for (size_t i = 0; i < no_of_lookups; ++i)
- {
- KEY key = i;
- if (randomize_lookups != 0)
- key = ACE_OS::rand () % total_entries;
-
- VALUE j;
- int result = cache.find (key, j);
-
- ACE_ASSERT (result != -1);
- ACE_ASSERT (j == key);
-
- ACE_DEBUG ((LM_DEBUG,
- "%d ",
- j));
- }
-
- ACE_DEBUG ((LM_DEBUG, "\n"));
-}
-
-static void
-find_test_hash_cache (HASH_MAP_CACHE &cache)
-{
- ACE_DEBUG ((LM_DEBUG, "find\n"));
-
- size_t total_entries = cache.current_size ();
-
- for (size_t i = 0; i < no_of_lookups; ++i)
- {
- KEY key = i;
- if (randomize_lookups != 0)
- key = ACE_OS::rand () % total_entries;
-
- VALUE j;
- int result = cache.find (key, j);
-
- ACE_ASSERT (result != -1);
- ACE_ASSERT (j == key);
-
- ACE_DEBUG ((LM_DEBUG,
- "%d ",
- j));
- }
-
- ACE_DEBUG ((LM_DEBUG, "\n"));
-}
-
-static void
-purge_test_cache (MAP_CACHE &cache)
-{
- // Get the number of entries in the container.
- size_t current_map_size = cache.current_size ();
-
- // Find the number of entries which will get purged.
- size_t entries_to_remove = size_t ((double (purge_percent) / 100 * current_map_size) + 0.5);
-
- // Tell the caching strategy how much to purge.
- cache.caching_strategy ().purge_percent (purge_percent);
-
- // Purge from cache.
- int result = cache.purge ();
- ACE_ASSERT (result != -1);
-
- size_t resultant_size = current_map_size - entries_to_remove;
- ACE_UNUSED_ARG (resultant_size);
-
- // Make sure the purge took out the appropriate number of entries.
- ACE_ASSERT (cache.current_size () == resultant_size);
-}
-
-static void
-purge_test_hash_cache (HASH_MAP_CACHE &cache)
-{
-
-
- // Get the number of entries in the container.
- size_t current_map_size = cache.current_size ();
-
- // Find the number of entries which will get purged.
- size_t entries_to_remove = size_t ((double (purge_percent) / 100 * current_map_size) + 0.5);
-
- // Tell the caching strategy how much to purge.
- cache.caching_strategy ().purge_percent (purge_percent);
-
- // Purge from cache.
- int result = cache.purge ();
- ACE_ASSERT (result != -1);
-
- size_t resultant_size = current_map_size - entries_to_remove;
- ACE_UNUSED_ARG (resultant_size);
-
- // Make sure the purge took out the appropriate number of entries.
- ACE_ASSERT (cache.current_size () == resultant_size);
-}
-
-static void
-functionality_test_cache (void)
-{
- MAP_CACHE cache;
- KEY i = 0;
- VALUE j = 0;
-
- // Add it to the map now.
- size_t counter = 0;
- for (;
- i < iterations;
- ++i, ++j)
- {
- int result = cache.bind (i, j);
- ACE_ASSERT (result != -1);
- ACE_DEBUG ((LM_DEBUG, "keys[%d]=%d value=[%d]=%d\n",
- i, i, j, j));
- ++counter;
- ACE_ASSERT (cache.current_size () == counter);
- }
-
- run_iterator_cache (cache);
- run_reverse_iterator_cache (cache);
-
- find_test_cache (cache);
-
- ACE_DEBUG ((LM_DEBUG,
- "Number of entries in cache before purging : %d\n",
- cache.current_size ()));
- purge_test_cache (cache);
- ACE_DEBUG ((LM_DEBUG,
- "Number of entries in cache after purging : %d\n",
- cache.current_size ()));
-
- run_iterator_cache (cache);
- run_reverse_iterator_cache (cache);
-}
-
-static void
-functionality_test_hash_cache (void)
-{
- HASH_MAP_CACHE cache;
- KEY i = 0;
- VALUE j = 0;
-
- // Add it to the map now.
- size_t counter = 0;
- for (;
- i < iterations;
- ++i, ++j)
- {
- int result = cache.bind (i, j);
- ACE_ASSERT (result != -1);
- ACE_DEBUG ((LM_DEBUG,
- "keys[%d]=%d value=[%d]=%d\n",
- i, i, j, j));
- ++counter;
- ACE_ASSERT (cache.current_size () == counter);
- }
-
- run_iterator_hash_cache (cache);
- run_reverse_iterator_hash_cache (cache);
-
- find_test_hash_cache (cache);
-
- ACE_DEBUG ((LM_DEBUG,
- "Number of entries in cache before purging : %d\n",
- cache.current_size ()));
- purge_test_hash_cache (cache);
- ACE_DEBUG ((LM_DEBUG,
- "Number of entries in cache after purging : %d\n",
- cache.current_size ()));
-
- run_iterator_hash_cache (cache);
- run_reverse_iterator_hash_cache (cache);
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "r:i:f:p:");
-
- int c;
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'i':
- iterations = atoi (get_opt.optarg);
- break;
- case 'f':
- no_of_lookups = atoi (get_opt.optarg);
- break;
- case 'r':
- randomize_lookups = atoi (get_opt.optarg);
- break;
- case 'p':
- purge_percent = atoi (get_opt.optarg);
- break;
- case '?':
- case 'h':
- default:
- ACE_ERROR ((LM_ERROR,
- "usage: %s "
- "[-r (randomize lookups)] "
- "[-i (iterations)] "
- "[-p (purge percent)] "
- "[-f (number of lookups)] \n",
- argv[0]));
- return -1;
- }
-
- return 0;
-}
-
-int
-main (int argc, ASYS_TCHAR *argv[])
-{
- int result = parse_args (argc, argv);
- if (result != 0)
- return result;
-
- ACE_START_TEST (ASYS_TEXT ("Cache_Map_Manager_Test"));
- ACE_LOG_MSG->clr_flags (ACE_Log_Msg::VERBOSE_LITE);
-
- ACE_OS::srand (ACE_static_cast (size_t, ACE_OS::time (0)));
-
- functionality_test_cache ();
- functionality_test_hash_cache ();
-
- ACE_LOG_MSG->set_flags (ACE_Log_Msg::VERBOSE_LITE);
- ACE_END_TEST;
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Pair<VALUE, ATTR>;
-template class ACE_Reference_Pair<KEY, VALUE>;
-template class ACE_Equal_To<KEY>;
-
-template class ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Entry<KEY, CACHE_VALUE>;
-
-template class ACE_Map_Manager<KEY, CACHE_VALUE, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<KEY, CACHE_VALUE, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>;
-template class ACE_Map_Entry<KEY, CACHE_VALUE>;
-
-template class ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, ATTR>;
-template class ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, MAP_MANAGER, MAP_MANAGER::iterator, ATTR>;
-
-template class ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, HASH_MAP_MANAGER, ATTR, HASH_MAP_CACHING_UTILITY>;
-template class ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, MAP_MANAGER, ATTR, MAP_CACHING_UTILITY>;
-
-template class ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER>;
-template class ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER>;
-
-template class ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER>;
-template class ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER>;
-
-template class ACE_Cache_Map_Manager<KEY, VALUE, MAP_MANAGER, MAP_MANAGER::iterator, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR>;
-template class ACE_Cache_Map_Iterator<KEY, VALUE, MAP_MANAGER::iterator, MAP_LRU, ATTR>;
-template class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR>;
-
-template class ACE_Cache_Map_Manager<KEY, VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, HASH_MAP_MANAGER::reverse_iterator, HASH_MAP_LRU, ATTR>;
-template class ACE_Cache_Map_Iterator<KEY, VALUE, HASH_MAP_MANAGER::iterator, HASH_MAP_LRU, ATTR>;
-template class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, HASH_MAP_MANAGER::reverse_iterator, HASH_MAP_LRU, ATTR>;
-template class ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, HASH_MAP_LRU, ATTR>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Pair<VALUE, ATTR>
-#pragma instantiate ACE_Reference_Pair<KEY, VALUE>
-#pragma instantiate ACE_Equal_To<KEY>
-
-#pragma instantiate ACE_Hash_Map_Manager_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<KEY, CACHE_VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Entry<KEY, CACHE_VALUE>
-
-#pragma instantiate ACE_Map_Manager<KEY, CACHE_VALUE, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<KEY, CACHE_VALUE, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<KEY, CACHE_VALUE, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Entry<KEY, CACHE_VALUE>
-
-#pragma instantiate ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, ATTR>
-#pragma instantiate ACE_Pair_Caching_Utility<KEY, CACHE_VALUE, MAP_MANAGER, MAP_MANAGER::iterator, ATTR>
-
-#pragma instantiate ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, HASH_MAP_MANAGER, ATTR, HASH_MAP_CACHING_UTILITY>
-#pragma instantiate ACE_LRU_Caching_Strategy<KEY, CACHE_VALUE, MAP_MANAGER, ATTR, MAP_CACHING_UTILITY>
-
-#pragma instantiate ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER>
-#pragma instantiate ACE_Default_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER>
-
-#pragma instantiate ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, HASH_MAP_MANAGER>
-#pragma instantiate ACE_Cleanup_Strategy<KEY, ACE_Pair<KEY, ATTR>, MAP_MANAGER>
-
-#pragma instantiate ACE_Cache_Map_Manager<KEY, VALUE, MAP_MANAGER, MAP_MANAGER::iterator, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR>
-#pragma instantiate ACE_Cache_Map_Iterator<KEY, VALUE, MAP_MANAGER::iterator, MAP_LRU, ATTR>
-#pragma instantiate ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, MAP_MANAGER::reverse_iterator, MAP_LRU, ATTR>
-
-#pragma instantiate ACE_Cache_Map_Manager<KEY, VALUE, HASH_MAP_MANAGER, HASH_MAP_MANAGER::iterator, HASH_MAP_MANAGER::reverse_iterator, HASH_MAP_LRU, ATTR>
-#pragma instantiate ACE_Cache_Map_Iterator<KEY, VALUE, HASH_MAP_MANAGER::iterator, HASH_MAP_LRU, ATTR>
-#pragma instantiate ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, HASH_MAP_MANAGER::reverse_iterator, HASH_MAP_LRU, ATTR>
-#pragma instantiate ACE_Hash_Cache_Map_Manager<KEY, VALUE, ACE_Hash<KEY>, ACE_Equal_To<KEY>, HASH_MAP_LRU, ATTR>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */