add torture test for NDR_WINBIND_PING
authorStefan Metzmacher <metze@sernet.de>
Mon, 17 Sep 2007 07:20:41 +0000 (09:20 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 Jan 2008 19:19:33 +0000 (20:19 +0100)
metze

source/torture/winbind/config.mk
source/torture/winbind/ndr_based.c [new file with mode: 0644]
source/torture/winbind/winbind.c

index b64b0647fc9e5b2486f68d25aaa0611e4e19ca8a..ccf6866b47fddd5a66da88fd33b5f3284916a6b8 100644 (file)
@@ -8,7 +8,8 @@ PRIVATE_PROTO_HEADER = \
                proto.h
 OBJ_FILES = \
                winbind.o \
-               struct_based.o
+               struct_based.o \
+               ndr_based.o
 PRIVATE_DEPENDENCIES = \
                LIBWINBIND-CLIENT
 # End SUBSYSTEM TORTURE_WINBIND
diff --git a/source/torture/winbind/ndr_based.c b/source/torture/winbind/ndr_based.c
new file mode 100644 (file)
index 0000000..f0972d4
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+   Unix SMB/CIFS implementation.
+   SMB torture tester - winbind struct based protocol
+   Copyright (C) Stefan Metzmacher 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "torture/winbind/proto.h"
+
+#include "nsswitch/wb_ndr_protocol.h"
+
+static bool torture_winbind_ndr_ping(struct torture_context *torture)
+{
+       bool result;
+       struct winbind_ping r;
+
+       torture_comment(torture, "Testing NDR_WINBIND_PING\n");
+
+       result = winbind_ndr_request_response(torture, NDR_WINBIND_PING, &r, 0);
+       torture_assert(torture, result, "NDR_WINBIND_PING");
+
+       torture_assert_int_equal(torture, r.out.result, WINBIND_STATUS_OK,
+                                "NDR_WINBIND_PING");
+
+       return true;
+}
+
+struct torture_suite *torture_winbind_ndr_init(void)
+{
+       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "NDR");
+
+       torture_suite_add_simple_test(suite, "PING", torture_winbind_ndr_ping);
+
+       suite->description = talloc_strdup(suite, "WINBIND - ndr based protocol tests");
+
+       return suite;
+}
index e283602337637cabe0f68a803d72ed1aba41d873..48cacd7cb9e3228f30f86dc61386749aa8e79513 100644 (file)
@@ -26,6 +26,7 @@ NTSTATUS torture_winbind_init(void)
        struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "WINBIND");
 
        torture_suite_add_suite(suite, torture_winbind_struct_init());
+       torture_suite_add_suite(suite, torture_winbind_ndr_init());
 
        suite->description = talloc_strdup(suite, "WINBIND tests");