diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2011-07-22 12:33:43 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2011-07-22 12:33:43 +0000 |
commit | 769b6fe1f285539e027c02c5b5a10f88ce5b4d43 (patch) | |
tree | d06dd4410fff8d07bc3e9654560f5dbfef159c8e /ACE/tests/Cached_Allocator_Test.cpp | |
parent | cf44e6620fbe2e2b82ca8184c762198301201d9d (diff) | |
download | ATCD-769b6fe1f285539e027c02c5b5a10f88ce5b4d43.tar.gz |
ChangeLogTag:Fri
Diffstat (limited to 'ACE/tests/Cached_Allocator_Test.cpp')
-rw-r--r-- | ACE/tests/Cached_Allocator_Test.cpp | 190 |
1 files changed, 96 insertions, 94 deletions
diff --git a/ACE/tests/Cached_Allocator_Test.cpp b/ACE/tests/Cached_Allocator_Test.cpp index bda18427401..079a3413976 100644 --- a/ACE/tests/Cached_Allocator_Test.cpp +++ b/ACE/tests/Cached_Allocator_Test.cpp @@ -145,102 +145,104 @@ run_main (int argc, ACE_TCHAR *argv[]) else loops = ACE_OS::atoi (argv[1]); - chunk_size = 8; n_chunks = 2; - ACE_DEBUG ((LM_INFO, - ACE_TEXT (" (%t) Creating allocator: ") - ACE_TEXT ("%B chunks, %B 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 %B but reported %B\n"), - n_chunks, depth)); - requested_size = chunk_size; - ACE_DEBUG ((LM_INFO, - ACE_TEXT (" (%t) Allocating chunk 1: %B 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 %B but reported %B\n"), - n_chunks - 1, depth)); - - requested_size = chunk_size + 1; - ACE_DEBUG ((LM_INFO, - ACE_TEXT (" (%t) Allocating chunk 2: %B 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: %B 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 but reported %B\n"), - depth)); - requested_size = chunk_size; - ACE_DEBUG ((LM_INFO, - ACE_TEXT (" (%t) Allocating chunk 4: %B 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: %C\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: %C\n"), ptr1)); - - ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Writing to chunk 3: %C\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: %C\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: %B 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); + for (chunk_size = 1; chunk_size <= 9; ++chunk_size) // 9 is strlen(str1 or str2) + 1 + { + ACE_DEBUG ((LM_INFO, + ACE_TEXT (" (%t) Creating allocator: ") + ACE_TEXT ("%B chunks, %B 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 %B but reported %B\n"), + n_chunks, depth)); + requested_size = chunk_size; + ACE_DEBUG ((LM_INFO, + ACE_TEXT (" (%t) Allocating chunk 1: %B 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 %B but reported %B\n"), + n_chunks - 1, depth)); + + requested_size = chunk_size + 1; + ACE_DEBUG ((LM_INFO, + ACE_TEXT (" (%t) Allocating chunk 2: %B 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: %B 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 but reported %B\n"), + depth)); + requested_size = chunk_size; + ACE_DEBUG ((LM_INFO, + ACE_TEXT (" (%t) Allocating chunk 4: %B 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: %C\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: %C\n"), ptr1)); + + ACE_DEBUG ((LM_INFO, ACE_TEXT (" (%t) Writing to chunk 3: %C\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: %C\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: %B 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); |