From: Amitay Isaacs Date: Wed, 20 Apr 2016 08:30:30 +0000 (+1000) Subject: ctdb-tests: Remove unused tests code X-Git-Tag: tdb-1.3.10~219 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8b6829e2aac61b7b78d3c18ac13ae02a168e580;p=thirdparty%2Fsamba.git ctdb-tests: Remove unused tests code Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/tests/src/ctdb_persistent.c b/ctdb/tests/src/ctdb_persistent.c deleted file mode 100644 index 74eefa9fe57..00000000000 --- a/ctdb/tests/src/ctdb_persistent.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - simple tool to test persistent databases - - Copyright (C) Andrew Tridgell 2006-2007 - Copyright (c) Ronnie sahlberg 2007 - - This program is free software; you can redistribute it and/or modify - 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 -#include -#include -#include - -#include "lib/util/debug.h" -#include "lib/util/time.h" - -#include "ctdb_private.h" -#include "ctdb_client.h" - -#include "common/cmdline.h" -#include "common/common.h" -#include "common/logging.h" - -static struct timeval tp1,tp2; - -static void start_timer(void) -{ - gettimeofday(&tp1,NULL); -} - -static double end_timer(void) -{ - gettimeofday(&tp2,NULL); - return (tp2.tv_sec + (tp2.tv_usec*1.0e-6)) - - (tp1.tv_sec + (tp1.tv_usec*1.0e-6)); -} - -static int timelimit = 10; - -static unsigned int pnn; - -static TDB_DATA old_data; - -static int success = true; - -static void each_second(struct tevent_context *ev, struct tevent_timer *te, - struct timeval t, void *private_data) -{ - struct ctdb_context *ctdb = talloc_get_type(private_data, struct ctdb_context); - int i; - uint32_t *old_counters; - - - printf("[%4u] Counters: ", getpid()); - old_counters = (uint32_t *)old_data.dptr; - for (i=0;i. -*/ - -#include "replace.h" -#include "system/filesys.h" -#include "system/network.h" -#include "system/time.h" - -#include -#include -#include - -#include "lib/util/debug.h" -#include "lib/util/time.h" - -#include "ctdb_private.h" -#include "ctdb_client.h" - -#include "common/cmdline.h" -#include "common/common.h" -#include "common/logging.h" - -static struct timeval tp1,tp2; - -static void start_timer(void) -{ - gettimeofday(&tp1,NULL); -} - -static double end_timer(void) -{ - gettimeofday(&tp2,NULL); - return (tp2.tv_sec + (tp2.tv_usec*1.0e-6)) - - (tp1.tv_sec + (tp1.tv_usec*1.0e-6)); -} - -static int num_records = 10; -static int delete_pct = 75; -static int base_rec; - -static void store_records(struct ctdb_context *ctdb, struct tevent_context *ev) -{ - TDB_DATA key, data; - struct ctdb_db_context *ctdb_db; - TALLOC_CTX *tmp_ctx = talloc_new(ctdb); - int ret; - struct ctdb_record_handle *h; - uint32_t i=0; - - ctdb_db = ctdb_db_handle(ctdb, "test.tdb"); - - srandom(time(NULL) ^ getpid()); - - start_timer(); - - printf("working with %d records\n", num_records); - while (1) { - unsigned r = random() % num_records; - key.dptr = (uint8_t *)&r; - key.dsize = sizeof(r); - - h = ctdb_fetch_lock(ctdb_db, tmp_ctx, key, &data); - if (h == NULL) { - printf("Failed to fetch record '%s' on node %d\n", - (const char *)key.dptr, ctdb_get_pnn(ctdb)); - talloc_free(tmp_ctx); - return; - } - - if (random() % 100 < delete_pct) { - data.dptr = NULL; - data.dsize = 0; - } else { - data.dptr = talloc_zero_size(h, data.dsize + sizeof(r)); - data.dsize += sizeof(r); - } - - ret = ctdb_record_store(h, data); - if (ret != 0) { - printf("Failed to store record\n"); - } - - if (data.dptr == NULL && data.dsize == 0) { - struct ctdb_control_schedule_for_deletion *dd; - TDB_DATA indata; - int32_t status; - - indata.dsize = offsetof(struct ctdb_control_schedule_for_deletion, key) + key.dsize; - indata.dptr = talloc_zero_array(ctdb, uint8_t, indata.dsize); - if (indata.dptr == NULL) { - printf("out of memory\n"); - exit(1); - } - dd = (struct ctdb_control_schedule_for_deletion *)(void *)indata.dptr; - dd->db_id = ctdb_db->db_id; - dd->hdr = *ctdb_header_from_record_handle(h); - dd->keylen = key.dsize; - memcpy(dd->key, key.dptr, key.dsize); - - ret = ctdb_control(ctdb, - CTDB_CURRENT_NODE, - ctdb_db->db_id, - CTDB_CONTROL_SCHEDULE_FOR_DELETION, - 0, /* flags */ - indata, - NULL, /* mem_ctx */ - NULL, /* outdata */ - &status, - NULL, /* timeout : NULL == wait forever */ - NULL); /* error message */ - - talloc_free(indata.dptr); - - if (ret != 0 || status != 0) { - DEBUG(DEBUG_ERR, (__location__ " Error sending " - "SCHEDULE_FOR_DELETION " - "control.\n")); - } - } - - talloc_free(h); - - if (i % 1000 == 0) { - printf("%7.0f recs/second %u total\r", 1000.0 / end_timer(), i); - fflush(stdout); - start_timer(); - } - i++; - } - - talloc_free(tmp_ctx); -} - -/* - main program -*/ -int main(int argc, const char *argv[]) -{ - struct ctdb_context *ctdb; - struct ctdb_db_context *ctdb_db; - - struct poptOption popt_options[] = { - POPT_AUTOHELP - POPT_CTDB_CMDLINE - { "num-records", 'r', POPT_ARG_INT, &num_records, 0, "num_records", "integer" }, - { "base-rec", 'b', POPT_ARG_INT, &base_rec, 0, "base_rec", "integer" }, - { "delete-pct", 'p', POPT_ARG_INT, &delete_pct, 0, "delete_pct", "integer" }, - POPT_TABLEEND - }; - int opt; - const char **extra_argv; - int extra_argc = 0; - poptContext pc; - struct tevent_context *ev; - - 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++; - } - - ev = tevent_context_init(NULL); - - ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); - - if (ctdb == NULL) { - printf("failed to connect to daemon\n"); - exit(1); - } - - /* attach to a specific database */ - ctdb_db = ctdb_attach(ctdb, timeval_current_ofs(2, 0), "test.tdb", - false, 0); - if (!ctdb_db) { - printf("ctdb_attach failed - %s\n", ctdb_errstr(ctdb)); - exit(1); - } - - store_records(ctdb, ev); - - return 0; -} diff --git a/ctdb/tests/src/ctdb_store.c b/ctdb/tests/src/ctdb_store.c deleted file mode 100644 index 0405e831f82..00000000000 --- a/ctdb/tests/src/ctdb_store.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - simple tool to create a lot of records on a tdb and to read them out - - Copyright (C) Andrew Tridgell 2006 - Ronnie sahlberg 2007 - - This program is free software; you can redistribute it and/or modify - 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 -#include -#include -#include - -#include "lib/util/time.h" - -#include "ctdb_private.h" -#include "ctdb_client.h" - -#include "common/cmdline.h" -#include "common/common.h" - -static int num_records = 10; -static int base_rec; - -static void store_records(struct ctdb_context *ctdb, struct tevent_context *ev) -{ - TDB_DATA key, data; - struct ctdb_db_context *ctdb_db; - TALLOC_CTX *tmp_ctx = talloc_new(ctdb); - int ret; - struct ctdb_record_handle *h; - uint32_t i; - - ctdb_db = ctdb_db_handle(ctdb, "test.tdb"); - - printf("creating %d records\n", num_records); - for (i=0;i. -*/ - -#include "replace.h" -#include "system/filesys.h" -#include "system/network.h" -#include "system/time.h" - -#include -#include -#include - -#include "lib/tdb_wrap/tdb_wrap.h" -#include "lib/util/time.h" - -#include "ctdb_private.h" - -#include "common/cmdline.h" -#include "common/common.h" - -#define MAXINDEX 64 -char indices[MAXINDEX]; - -static void vn_cb(struct ctdb_context *ctdb, uint32_t pnn, void *private_data) -{ - char *ind = private_data; - - printf("Callback for node %d\n", pnn); - if (ind[pnn] == 0) { - printf("ERROR, node %d from callback was never added\n", pnn); - exit(10); - } - ind[pnn] = 0; -} - -static void verify_nodes(struct ctdb_context *ctdb, TDB_DATA data) -{ - int i; - - printf("Verify the nodes\n"); - ctdb_trackingdb_traverse(ctdb, data, vn_cb, indices); - for(i = 0; i < MAXINDEX; i++) { - if (indices[i] != 0) { - printf("Callback for %d was never invoked\n", i); - exit(0); - } - } -} - - - -static void add_node(struct ctdb_context *ctdb, TDB_DATA *data, int pnn) -{ - printf("Add node %d\n", pnn); - if (ctdb_trackingdb_add_pnn(ctdb, data, pnn)) { - printf("Failed to add tracking db data\n"); - exit(10); - } - indices[pnn] = 1; -} - -static void trackdb_test(struct ctdb_context *ctdb) -{ - TDB_DATA data = {NULL,0}; - int i; - - printf("Add 10 nodes\n"); - srandom(time(NULL)); - for(i=0; i<10; i++) { - add_node(ctdb, &data, random()%MAXINDEX); - } - - verify_nodes(ctdb, data); - printf("OK all seems well\n"); -} - -/* - main program -*/ -int main(int argc, const char *argv[]) -{ - struct ctdb_context *ctdb; - - struct poptOption popt_options[] = { - POPT_AUTOHELP - POPT_CTDB_CMDLINE - POPT_TABLEEND - }; - int opt; - const char **extra_argv; - int extra_argc = 0; - poptContext pc; - struct tevent_context *ev; - - 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++; - } - - ev = tevent_context_init(NULL); - - ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(5, 0)); - if (ctdb == NULL) { - exit(1); - } - - trackdb_test(ctdb); - - return 0; -} diff --git a/ctdb/tests/src/ctdb_traverse.c b/ctdb/tests/src/ctdb_traverse.c deleted file mode 100644 index d69c8e043db..00000000000 --- a/ctdb/tests/src/ctdb_traverse.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - simple tool to traverse a ctdb database over and over and over - - Copyright (C) Andrew Tridgell 2006 - Ronnie sahlberg 2007 - - This program is free software; you can redistribute it and/or modify - 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 -#include -#include -#include - -#include "lib/util/time.h" - -#include "ctdb_private.h" -#include "ctdb_client.h" - -#include "common/cmdline.h" -#include "common/common.h" - -static const char *dbname = "test.tdb"; - -static int traverse_callback(TDB_DATA key, TDB_DATA data, void *private_data) -{ - uint32_t *count = private_data; - - (*count)++; - return 0; -} - -static void traverse_loop(struct ctdb_context *ctdb, - struct ctdb_db_context *ctdb_db, - struct tevent_context *ev) -{ - uint32_t count; - - printf("traversing database\n"); - count = 0; - ctdb_traverse(ctdb_db, traverse_callback, &count); - printf("traversed %d records\n", count); -} - -/* - main program -*/ -int main(int argc, const char *argv[]) -{ - struct ctdb_context *ctdb; - struct ctdb_db_context *ctdb_db; - - struct poptOption popt_options[] = { - POPT_AUTOHELP - POPT_CTDB_CMDLINE - { "database", 0, POPT_ARG_STRING, &dbname, 0, "database to traverse", "name" }, - POPT_TABLEEND - }; - int opt; - const char **extra_argv; - int extra_argc = 0; - poptContext pc; - struct tevent_context *ev; - - 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); - } - } - - /* talloc_enable_leak_report_full(); */ - - /* 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++; - } - - ev = tevent_context_init(NULL); - - ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); - if (ctdb == NULL) { - exit(1); - } - - /* attach to a specific database */ - ctdb_db = ctdb_attach(ctdb, timeval_current_ofs(2, 0), dbname, false, 0); - if (!ctdb_db) { - printf("ctdb_attach failed - %s\n", ctdb_errstr(ctdb)); - exit(1); - } - - printf("Waiting for cluster\n"); - while (1) { - uint32_t recmode=1; - ctdb_ctrl_getrecmode(ctdb, ctdb, timeval_zero(), CTDB_CURRENT_NODE, &recmode); - if (recmode == 0) break; - tevent_loop_once(ev); - } - - while (1) { - traverse_loop(ctdb, ctdb_db, ev); - } - - return 0; -} diff --git a/ctdb/wscript b/ctdb/wscript index f462be7afe7..635e0bc12ad 100755 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -684,23 +684,6 @@ def build(bld): deps='samba-util ctdb-system popt', install_path='${CTDB_TEST_LIBDIR}') - # Test binaries - ctdb_tests = [ - 'ctdb_trackingdb_test', - 'ctdb_store', - 'ctdb_traverse', - 'ctdb_randrec', - 'ctdb_persistent', - ] - - for target in ctdb_tests: - src = 'tests/src/' + target + '.c' - - bld.SAMBA_BINARY(target, - source=src, - includes='include', - deps='ctdb-client ctdb-common ctdb-util', - install_path='${CTDB_TEST_LIBDIR}') bld.SAMBA_SUBSYSTEM('ctdb-tests-common', source=bld.SUBDIR('tests/src',