import HEAD into svn+ssh://svn.samba.org/home/svn/samba/trunk
[metze/old/v3-2-winbind-ndr.git] / source / aparser / vluke.c
1 #include "parser.h"
2 #include "test.h"
3
4 int main(int argc, char *argv[])
5 {
6         BOOL ret;
7         char *fname, *test;
8         int fd; 
9         struct stat st;
10         io_struct ps;
11
12         if (argc < 3) {
13                 printf("usage: vluke <structure> <file>\n");
14                 exit(1);
15         }
16
17         test = argv[1];
18         fname = argv[2];
19
20         fd = open(fname,O_RDONLY);
21         if (fd == -1) {
22           perror(fname);
23           exit(1);
24         }
25         fstat(fd, &st);
26
27         io_init(&ps, 0, MARSHALL);
28         ps.is_dynamic=True;
29         io_read(&ps, fd, st.st_size, 0);
30         ps.data_offset = 0;     
31         ps.buffer_size = ps.grow_size;
32         ps.io = UNMARSHALL;
33         ps.autoalign = OPTION_autoalign;
34         ret = run_test(test, &ps, PARSE_SCALARS|PARSE_BUFFERS);
35         printf("\nret=%s\n", ret?"OK":"Bad");
36         printf("Trailer is %d bytes\n\n", ps.grow_size - ps.data_offset);
37         if (ps.grow_size - ps.data_offset > 0) {
38                 dump_data(0, ps.data_p + ps.data_offset, ps.grow_size - ps.data_offset);
39         }
40         return !ret;
41 }