diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-05-28 23:38:52 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:17:10 -0500 |
commit | 1deb402445c07dae69c4637a1a4b191f10b0bee1 (patch) | |
tree | a00a004c5215201499cdc22eba01b66961e7f680 /source4/build/pidl/tests/ndr_array.pl | |
parent | 26ced62131962d92d45b8a383d3ecf4c9af56d02 (diff) | |
download | samba-1deb402445c07dae69c4637a1a4b191f10b0bee1.tar.gz samba-1deb402445c07dae69c4637a1a4b191f10b0bee1.tar.bz2 samba-1deb402445c07dae69c4637a1a4b191f10b0bee1.zip |
r7059: Use namespaces for pidl and the build system, so we can later on
call out to the build system to compile the various pidl tests
(without having to rely on shared library support).
Initial work on an ndr_array test.
(This used to be commit 2b08c4b92b4f56180c123a502bdcc6c40188c07f)
Diffstat (limited to 'source4/build/pidl/tests/ndr_array.pl')
-rwxr-xr-x | source4/build/pidl/tests/ndr_array.pl | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/source4/build/pidl/tests/ndr_array.pl b/source4/build/pidl/tests/ndr_array.pl new file mode 100755 index 0000000000..bd78f3432a --- /dev/null +++ b/source4/build/pidl/tests/ndr_array.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl +# Array testing +# (C) 2005 Jelmer Vernooij <jelmer@samba.org> +# Published under the GNU General Public License +use strict; + +use FindBin qw($RealBin); +use lib "$RealBin/../.."; +use test; + +my %settings = Test::GetSettings(@ARGV); +$settings{'IDL-Arguments'} = ['--quiet', '--parse', '--parser=ndr_test.c', '--header=ndr_test.h']; +$settings{'IncludeFiles'} = ['ndr_test.h']; +$settings{'ExtraFiles'} = ['ndr_test.c']; + +Test::test_idl( + # Name + 'Fixed-Array', + + # Settings + \%settings, + + # IDL + '[public] void Test([in] uint8 x[10]);', + + # C Test + ' + 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); + + if (NT_STATUS_IS_ERR(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; + } +'); |