r15260: Don't dereference NULL pointers to obtain array lengths - found by
[samba.git] / source / pidl / tests / ndr_array.pl
1 #!/usr/bin/perl
2 # Array testing
3 # (C) 2005 Jelmer Vernooij <jelmer@samba.org>
4 # Published under the GNU General Public License
5 use strict;
6
7 use Test::More tests => 8;
8 use FindBin qw($RealBin);
9 use lib "$RealBin/../lib";
10 use lib "$RealBin";
11 use Util qw(test_samba4_ndr);
12
13 test_samba4_ndr(
14         'Fixed-Array',
15         
16         '[public] void Test([in] uint8 x[10]);',
17         
18         '
19         uint8_t data[] = {1,2,3,4,5,6,7,8,9,10};
20         int i;
21         DATA_BLOB b;
22         struct ndr_pull *ndr;
23         struct Test r;
24
25         b.data = data;
26         b.length = 10;
27         ndr = ndr_pull_init_blob(&b, mem_ctx);
28
29         if (NT_STATUS_IS_ERR(ndr_pull_Test(ndr, NDR_IN, &r)))
30                 return 1;
31
32         if (ndr->offset != 10)
33                 return 2;
34         
35         for (i = 0; i < 10; i++) {
36                 if (r.in.x[i] != i+1) return 3;
37         }
38 ');