summaryrefslogtreecommitdiffstats
path: root/pidl/tests/ndr_array.pl
diff options
context:
space:
mode:
Diffstat (limited to 'pidl/tests/ndr_array.pl')
-rwxr-xr-xpidl/tests/ndr_array.pl38
1 files changed, 38 insertions, 0 deletions
diff --git a/pidl/tests/ndr_array.pl b/pidl/tests/ndr_array.pl
new file mode 100755
index 0000000..46ab83e
--- /dev/null
+++ b/pidl/tests/ndr_array.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+# Array testing
+# (C) 2005 Jelmer Vernooij <jelmer@samba.org>
+# Published under the GNU General Public License
+use strict;
+use warnings;
+
+use Test::More tests => 8;
+use FindBin qw($RealBin);
+use lib "$RealBin";
+use Util qw(test_samba4_ndr);
+
+test_samba4_ndr(
+ 'Fixed-Array',
+
+ '[public] void Test([in] uint8 x[10]);',
+
+ '
+ uint8_t data[] = {1,2,3,4,5,6,7,8,9,10};
+ int i;
+ DATA_BLOB b;
+ struct ndr_pull *ndr;
+ struct Test r;
+
+ b.data = data;
+ b.length = 10;
+ ndr = ndr_pull_init_blob(&b, mem_ctx, NULL);
+
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_pull_Test(ndr, NDR_IN, &r)))
+ return 1;
+
+ if (ndr->offset != 10)
+ return 2;
+
+ for (i = 0; i < 10; i++) {
+ if (r.in.x[i] != i+1) return 3;
+ }
+');