Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix dynar test: cpt should be signed.
[simgrid.git] / src / xbt / dynar.c
index f4f1cdd..d9433a2 100644 (file)
@@ -743,7 +743,7 @@ XBT_INLINE int xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
        {
                void *data1 = xbt_dynar_get_as(d1, i, void *);
                void *data2 = xbt_dynar_get_as(d2, i, void *);
-               if(!compar(data1,data2)) return 1;
+               if(compar(data1,data2)) return 1;
        }
        return 0;
 }
@@ -914,7 +914,8 @@ XBT_TEST_UNIT("int", test_dynar_int, "Dynars of integers")
 XBT_TEST_UNIT("insert",test_dynar_insert,"Using the xbt_dynar_insert and xbt_dynar_remove functions")
 {
   xbt_dynar_t d = xbt_dynar_new(sizeof(int), NULL);
-  int cursor,cpt;
+  unsigned int cursor;
+  int cpt;
 
   xbt_test_add1("==== Insert %d int, traverse them, remove them",NB_ELEM);
   /* Populate_ints [doxygen cruft] */
@@ -932,6 +933,14 @@ XBT_TEST_UNIT("insert",test_dynar_insert,"Using the xbt_dynar_insert and xbt_dyn
   }
   /* end_of_traversal */
 
+  /* Re-fill with the same values using set_as (and re-verify) */
+  for (cpt = 0; cpt < NB_ELEM; cpt++)
+    xbt_dynar_set_as(d, cpt, int, cpt);
+  xbt_dynar_foreach(d, cursor, cpt)
+    xbt_test_assert2(cursor == cpt,
+                     "The retrieved value is not the same than the injected one (%d!=%d)",
+                     cursor, cpt);
+
   for (cpt = 0; cpt < NB_ELEM; cpt++) {
     int val;
     xbt_dynar_remove_at(d,0,&val);
@@ -940,7 +949,7 @@ XBT_TEST_UNIT("insert",test_dynar_insert,"Using the xbt_dynar_insert and xbt_dyn
                      cursor, cpt);
   }
   xbt_test_assert1(xbt_dynar_length(d) == 0,
-                   "There is still %d elements in the dynar after removing everything",
+                   "There is still %lu elements in the dynar after removing everything",
                    xbt_dynar_length(d));
   xbt_dynar_free(&d);
 
@@ -968,7 +977,7 @@ XBT_TEST_UNIT("insert",test_dynar_insert,"Using the xbt_dynar_insert and xbt_dyn
                      cursor, cpt);
   }
   xbt_test_assert1(xbt_dynar_length(d) == 0,
-                   "There is still %d elements in the dynar after removing everything",
+                   "There is still %lu elements in the dynar after removing everything",
                    xbt_dynar_length(d));
   xbt_dynar_free(&d);
 }