diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-09-06 14:26:57 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-09-06 15:22:26 +1000 |
commit | 52f0dedc1a63c75f87adc0f70f10aae2b2bfaf72 (patch) | |
tree | a0ad48863e88a0fa757459f82c4ed6249f4e78b3 /source4/torture/dns | |
parent | 0d99175f2afb4badd61ba903f3752a0207b049a3 (diff) | |
download | samba-52f0dedc1a63c75f87adc0f70f10aae2b2bfaf72.tar.gz samba-52f0dedc1a63c75f87adc0f70f10aae2b2bfaf72.tar.bz2 samba-52f0dedc1a63c75f87adc0f70f10aae2b2bfaf72.zip |
selftest: Add tests for the dlz_bind9 module
This will help ensure that we do not break the fundemental loading etc.
From here, it should be easy to extend this to more comprehensive tests.
Andrew Bartlett
Diffstat (limited to 'source4/torture/dns')
-rw-r--r-- | source4/torture/dns/dlz_bind9.c | 91 | ||||
-rw-r--r-- | source4/torture/dns/wscript_build | 10 |
2 files changed, 101 insertions, 0 deletions
diff --git a/source4/torture/dns/dlz_bind9.c b/source4/torture/dns/dlz_bind9.c new file mode 100644 index 0000000000..24482b6171 --- /dev/null +++ b/source4/torture/dns/dlz_bind9.c @@ -0,0 +1,91 @@ +/* + Unix SMB/CIFS implementation. + SMB torture tester + Copyright (C) Andrew Bartlett 2012 + + 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 <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "torture/smbtorture.h" +#include "dlz_minimal.h" +#include <talloc.h> +#include "lib/param/param.h" + +struct torture_context *tctx_static; + +static void dlz_bind9_log_wrapper(int level, const char *fmt, ...) +{ + va_list ap; + char *msg; + va_start(ap, fmt); + msg = talloc_vasprintf(NULL, fmt, ap); + torture_comment(tctx_static, "%s\n", msg); + TALLOC_FREE(msg); + va_end(ap); +} + +static bool test_dlz_bind9_version(struct torture_context *tctx) +{ + unsigned int flags = 0; + torture_assert_int_equal(tctx, dlz_version(&flags), + DLZ_DLOPEN_VERSION, "got wrong DLZ version"); + return true; +} + +static bool test_dlz_bind9_create(struct torture_context *tctx) +{ + void *dbdata; + const char *argv[] = { + "samba_dlz", + "-H", + lpcfg_private_path(tctx, tctx->lp_ctx, "dns/sam.ldb"), + NULL + }; + tctx_static = tctx; + torture_assert_int_equal(tctx, dlz_create("samba_dlz", 3, argv, &dbdata, + "log", dlz_bind9_log_wrapper, NULL), ISC_R_SUCCESS, + "Failed to create samba_dlz"); + + dlz_destroy(dbdata); + + return true; +} + +static struct torture_suite *dlz_bind9_suite(TALLOC_CTX *ctx) +{ + struct torture_suite *suite = torture_suite_create(ctx, "dlz_bind9"); + + suite->description = talloc_strdup(suite, + "Tests for the BIND 9 DLZ module"); + torture_suite_add_simple_test(suite, "version", test_dlz_bind9_version); + torture_suite_add_simple_test(suite, "create", test_dlz_bind9_create); + return suite; +} + +/** + * DNS torture module initialization + */ +NTSTATUS torture_dns_init(void) +{ + struct torture_suite *suite; + TALLOC_CTX *mem_ctx = talloc_autofree_context(); + + /* register DNS related test cases */ + suite = dlz_bind9_suite(mem_ctx); + if (!suite) return NT_STATUS_NO_MEMORY; + torture_register_suite(suite); + + return NT_STATUS_OK; +} diff --git a/source4/torture/dns/wscript_build b/source4/torture/dns/wscript_build new file mode 100644 index 0000000000..83df02fec4 --- /dev/null +++ b/source4/torture/dns/wscript_build @@ -0,0 +1,10 @@ +#!/usr/bin/env python + +bld.SAMBA_MODULE('TORTURE_DNS', + source='dlz_bind9.c', + subsystem='smbtorture', + init_function='torture_dns_init', + cflags='-DBIND_VERSION_9_8', + deps='torture talloc torturemain dlz_bind9_for_torture', + internal_module=True + ) |