Revision: 146
http://c-mpi.svn.sourceforge.net/c-mpi/?rev=146&view=rev
Author: jmwozniak
Date: 2010-05-22 21:40:52 +0000 (Sat, 22 May 2010)
Log Message:
-----------
More thorough dpkm_list test
Modified Paths:
--------------
test/adts/test-dpkm_list.c
Modified: test/adts/test-dpkm_list.c
===================================================================
--- test/adts/test-dpkm_list.c 2010-05-22 21:40:38 UTC (rev 145)
+++ test/adts/test-dpkm_list.c 2010-05-22 21:40:52 UTC (rev 146)
@@ -26,6 +26,34 @@
}
}
+void extra_key_data(struct dpkm_list_item* item)
+{
+ if (item)
+ {
+ note_s("extra: ", item->key);
+ printdata("data: ", item->data, strlen(item->data));
+ printf("\n");
+ free(item->key);
+ free(item->data);
+ free(item);
+ }
+}
+
+void* makedata(int n)
+{
+ char* result = malloc(n*sizeof(char));
+ for (int i = 0; i < n; i++)
+ result[i] = 'X';
+ return (void*) result;
+}
+
+char* makekey(int i)
+{
+ char* result = malloc(16);
+ sprintf(result, "%i", i);
+ return result;
+}
+
int
main(int argc, char* argv[])
{
@@ -113,33 +141,31 @@
item = dpkm_list_poll(L2);
extra_data(item);
+ for (int i = 0; i < 30; i++)
+ {
+ int j = i % 10;
+ if (rand() % 2)
+ {
+ dpkm_list_printdata(L2);
+ char* key = makekey(j);
+ void* data = makedata(j);
+ note_s("adding: ", key);
+ item = dpkm_list_add(L2, key, data, j);
+ extra_key_data(item);
+ }
+ }
+ dpkm_list_printdata(L2);
+ note_i("size: ", L2->size);
+
+ while (item = dpkm_list_poll(L2))
+ extra_key_data(item);
+
+ note_i("size: ", L2->size);
assert(L2->size == 0);
dpkm_list_free(L2);
-
- /*
-
- dpkm_list_printf("%i", L);
- dpkm_list_pop(L);
- dpkm_list_printf("%i", L);
- dpkm_list_add(L, &seven);
- dpkm_list_add(L, &six);
- dpkm_list_printf("%i", L);
- */
-
- // dpkm_list_clobber(L);
- // dpkm_list_clear(L);
- // printf("size(L): %i \n", L->size);
-
- // dpkm_list_clear(K);
- // printf("size(K): %i \n", K->size);
-
- // dpkm_list_printf("%i", L);
-
DMALLOC_COMPLETE;
MPI_Finalize();
return 0;
}
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|