r19339: Merge my 4.0-unittest branch. This adds an API for more fine-grained
[abartlet/samba.git/.git] / source4 / torture / local / idtree.c
index 1d317dbce3f188ed58dc3d3247c02a9aab641ea7..dd8618d0db72a6a0999ec79b82ba7d535f49d290 100644 (file)
@@ -23,8 +23,7 @@
 #include "includes.h"
 #include "torture/torture.h"
 
-static BOOL torture_local_idtree_simple(struct torture_context *test, 
-                                                                const void *_data) 
+static bool torture_local_idtree_simple(struct torture_context *tctx)
 {
        struct idr_context *idr;
        int i;
@@ -32,11 +31,12 @@ static BOOL torture_local_idtree_simple(struct torture_context *test,
        int *present;
        extern int torture_numops;
        int n = torture_numops;
+       TALLOC_CTX *mem_ctx = tctx;
 
-       idr = idr_init(test);
+       idr = idr_init(mem_ctx);
 
-       ids = talloc_zero_array(test, int, n);
-       present = talloc_zero_array(test, int, n);
+       ids = talloc_zero_array(mem_ctx, int, n);
+       present = talloc_zero_array(mem_ctx, int, n);
 
        for (i=0;i<n;i++) {
                ids[i] = -1;
@@ -47,28 +47,32 @@ static BOOL torture_local_idtree_simple(struct torture_context *test,
                void *p = idr_find(idr, ids[ii]);
                if (present[ii]) {
                        if (p != &ids[ii]) {
-                               torture_fail(test, "wrong ptr at %d - %p should be %p", 
-                                      ii, p, &ids[ii]);
+                               torture_fail(tctx, talloc_asprintf(tctx, 
+                                               "wrong ptr at %d - %p should be %p", 
+                                      ii, p, &ids[ii]));
                        }
                        if (random() % 7 == 0) {
                                if (idr_remove(idr, ids[ii]) != 0) {
-                                       torture_fail(test, "remove failed at %d (id=%d)", 
-                                              i, ids[ii]);
+                                       torture_fail(tctx, talloc_asprintf(tctx,
+                                               "remove failed at %d (id=%d)", 
+                                              i, ids[ii]));
                                }
                                present[ii] = 0;
                                ids[ii] = -1;
                        }
                } else {
                        if (p != NULL) {
-                               torture_fail(test, "non-present at %d gave %p (would be %d)", 
+                               torture_fail(tctx, talloc_asprintf(tctx,
+                                       "non-present at %d gave %p (would be %d)", 
                                       ii, p, 
-                                      (int)(((char *)p) - (char *)(&ids[0])) / sizeof(int));
+                                      (int)(((char *)p) - (char *)(&ids[0])) / sizeof(int)));
                        }
                        if (random() % 5) {
                                ids[ii] = idr_get_new(idr, &ids[ii], n);
                                if (ids[ii] < 0) {
-                                       torture_fail(test, "alloc failure at %d (ret=%d)", 
-                                              ii, ids[ii]);
+                                       torture_fail(tctx, talloc_asprintf(tctx,
+                                               "alloc failure at %d (ret=%d)", 
+                                              ii, ids[ii]));
                                } else {
                                        present[ii] = 1;
                                }
@@ -76,26 +80,25 @@ static BOOL torture_local_idtree_simple(struct torture_context *test,
                }
        }
 
-       torture_comment(test, "done %d random ops", i);
+       torture_comment(tctx, "done %d random ops\n", i);
 
        for (i=0;i<n;i++) {
                if (present[i]) {
                        if (idr_remove(idr, ids[i]) != 0) {
-                               torture_fail(test, "delete failed on cleanup at %d (id=%d)", 
-                                      i, ids[i]);
+                               torture_fail(tctx, talloc_asprintf(tctx,
+                                               "delete failed on cleanup at %d (id=%d)", 
+                                      i, ids[i]));
                        }
                }
        }
 
-       torture_comment(test, "cleaned up");
-
-       return True;
+       torture_comment(tctx, "cleaned up\n");
+       return true;
 }
 
 struct torture_suite *torture_local_idtree(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(mem_ctx, "LOCAL-IDTREE");
-       torture_suite_add_simple_tcase(suite, "idtree", torture_local_idtree_simple,
-                                                                  NULL);
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "IDTREE");
+       torture_suite_add_simple_test(suite, "idtree", torture_local_idtree_simple);
        return suite;
 }