summaryrefslogtreecommitdiff
path: root/source4/pidl/tests/samba3-cli.pl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/pidl/tests/samba3-cli.pl')
-rwxr-xr-xsource4/pidl/tests/samba3-cli.pl41
1 files changed, 40 insertions, 1 deletions
diff --git a/source4/pidl/tests/samba3-cli.pl b/source4/pidl/tests/samba3-cli.pl
index 8c06ed8c27..5086300e46 100755
--- a/source4/pidl/tests/samba3-cli.pl
+++ b/source4/pidl/tests/samba3-cli.pl
@@ -4,7 +4,7 @@
use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 8;
use FindBin qw($RealBin);
use lib "$RealBin";
use Util;
@@ -59,3 +59,42 @@ is($x->{res}, "NTSTATUS rpccli_bar(struct rpc_pipe_client *cli, TALLOC_CTX *mem_
}
");
+
+$x = new Parse::Pidl::Samba3::ClientNDR();
+
+$fn = { NAME => "bar", ELEMENTS => [ ], RETURN_TYPE => "WERROR" };
+$x->ParseFunction("foo", $fn);
+is($x->{res}, "NTSTATUS rpccli_bar(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, WERROR *werror)
+{
+\tstruct bar r;
+\tNTSTATUS status;
+\t
+\t/* In parameters */
+\t
+\tif (DEBUGLEVEL >= 10)
+\t\tNDR_PRINT_IN_DEBUG(bar, &r);
+\t
+\tstatus = cli_do_rpc_ndr(cli, mem_ctx, PI_FOO, &ndr_table_foo, NDR_BAR, &r);
+\t
+\tif (!NT_STATUS_IS_OK(status)) {
+\t\treturn status;
+\t}
+\t
+\tif (DEBUGLEVEL >= 10)
+\t\tNDR_PRINT_OUT_DEBUG(bar, &r);
+\t
+\tif (NT_STATUS_IS_ERR(status)) {
+\t\treturn status;
+\t}
+\t
+\t/* Return variables */
+\t
+\t/* Return result */
+\tif (werror) {
+\t\t*werror = r.out.result;
+\t}
+\t
+\treturn werror_to_ntstatus(r.out.result);
+}
+
+");