From: Amitay Isaacs Date: Wed, 20 Apr 2016 05:56:13 +0000 (+1000) Subject: ctdb-tests: Convert rb_test into a unit test X-Git-Tag: tdb-1.3.10~222 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e98f7c264bc01b5e35c28b3b81728b4b01a04521;p=thirdparty%2Fsamba.git ctdb-tests: Convert rb_test into a unit test Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/tests/cunit/rb_test_001.sh b/ctdb/tests/cunit/rb_test_001.sh new file mode 100755 index 00000000000..25d3ceb8ed0 --- /dev/null +++ b/ctdb/tests/cunit/rb_test_001.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +output="\ +testing trbt_insertarray32_callback +traverse data:3 +traverse data:2 +traverse data:1 + +deleting key4 +traverse data:3 +traverse data:2 +traverse data:1 + +deleting key2 +traverse data:3 +traverse data:1 + +deleting key3 +traverse data:3 + +deleting key1 + +run random insert and delete for 60 seconds + +deleting all entries" + +ok "$output" + +unit_test rb_test diff --git a/ctdb/tests/src/rb_test.c b/ctdb/tests/src/rb_test.c index 1f94fd13216..e5c3de6c390 100644 --- a/ctdb/tests/src/rb_test.c +++ b/ctdb/tests/src/rb_test.c @@ -7,32 +7,26 @@ it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include "replace.h" -#include "system/filesys.h" -#include "system/network.h" #include "system/time.h" -#include #include -#include +#include #include "lib/util/dlinklist.h" +#include "lib/util/debug.h" -#include "ctdb_private.h" - -#include "common/rb_tree.h" -#include "common/cmdline.h" -#include "common/common.h" +#include "common/rb_tree.c" static struct timeval tp1,tp2; @@ -111,16 +105,7 @@ static int count_traverse_abort(void *p, void *d) */ int main(int argc, const char *argv[]) { - struct poptOption popt_options[] = { - POPT_AUTOHELP - POPT_CTDB_CMDLINE - { "num-records", 'r', POPT_ARG_INT, &num_records, 0, "num_records", "integer" }, - POPT_TABLEEND - }; - int opt, traverse_count; - const char **extra_argv; - int extra_argc = 0; - poptContext pc; + int traverse_count; int i,j,k; trbt_tree_t *tree; uint32_t *data; @@ -133,30 +118,19 @@ int main(int argc, const char *argv[]) uint32_t **u32array; uint32_t checksum; - pc = poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST); - - while ((opt = poptGetNextOpt(pc)) != -1) { - switch (opt) { - default: - fprintf(stderr, "Invalid option %s: %s\n", - poptBadOption(pc, 0), poptStrerror(opt)); - exit(1); - } - } - - /* setup the remaining options for the main program to use */ - extra_argv = poptGetArgs(pc); - if (extra_argv) { - extra_argv++; - while (extra_argv[extra_argc]) extra_argc++; - } - - printf("testing trbt_insert32_callback for %d records\n", num_records); + /* testing trbt_insert32_callback for num_records */ memctx = talloc_new(NULL); + assert(memctx != NULL); + u32array = talloc_array(memctx, uint32_t *, num_records); + assert(u32array != NULL); + tree = trbt_create(memctx, 0); + assert(tree != NULL); + for (i=0; i 0); traverse_count = 0; trbt_traversearray32(tree, 3, count_traverse_abort, &traverse_count); - printf("\n"); - printf("number of entries in aborted traverse %d\n", traverse_count); - if (traverse_count != 1) { - printf("Failed to abort the traverse. Should have been aborted after 1 element but did iterate over %d elements\n", traverse_count); - exit(10); - } + assert(traverse_count == 1); + printf("\ndeleting all entries\n"); for(i=0;i<10;i++){ for(j=0;j<10;j++){ @@ -347,8 +328,8 @@ int main(int argc, const char *argv[]) } } trbt_traversearray32(tree, 3, random_traverse, NULL); - printf("\n"); - talloc_report_full(tree, stdout); + + assert(talloc_total_size(memctx) == 16); return 0; } diff --git a/ctdb/wscript b/ctdb/wscript index 0bb9630ebfc..d577d8e3dd8 100755 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -669,6 +669,11 @@ def build(bld): deps='samba-util', install_path='${CTDB_TEST_LIBDIR}') + bld.SAMBA_BINARY('rb_test', + source='tests/src/rb_test.c', + deps='samba-util talloc', + install_path='${CTDB_TEST_LIBDIR}') + bld.SAMBA_BINARY('ctdb_packet_parse', source='tests/src/ctdb_packet_parse.c', deps='talloc tevent tdb ctdb-protocol', @@ -676,7 +681,6 @@ def build(bld): # Test binaries ctdb_tests = [ - 'rb_test', 'ctdb_trackingdb_test', 'ctdb_store', 'ctdb_traverse',