7adc396f6d911943cdcd1a43ec900dfb64874f99
[tprouty/samba.git] / source / aparser / vluke.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <malloc.h>
4 #include <sys/stat.h>
5 #include <unistd.h>
6 #include <sys/types.h>
7 #include <fcntl.h>
8 #include "parser.h"
9 #include "test.h"
10
11 int main(int argc, char *argv[])
12 {
13         BOOL ret;
14         char *fname, *test;
15         int fd; 
16         struct stat st;
17         prs_struct ps;
18
19         if (argc < 3) {
20                 printf("usage: vluke <structure> <file>\n");
21                 exit(1);
22         }
23
24         test = argv[1];
25         fname = argv[2];
26
27         fd = open(fname,O_RDONLY);
28         fstat(fd, &st);
29
30         prs_init(&ps, 0, 4, MARSHALL);
31         ps.is_dynamic=True;
32         prs_read(&ps, fd, st.st_size, 0);
33         ps.data_offset = 0;     
34         ps.buffer_size = ps.grow_size;
35         ps.io = UNMARSHALL;
36         ret = run_test(test, &ps);
37         printf("\nret=%s\n", ret?"OK":"Bad");
38         printf("Trailer is %d bytes\n\n", ps.grow_size - ps.data_offset);
39         if (ps.grow_size - ps.data_offset > 0) {
40                 dump_data(0, ps.data_p + ps.data_offset, ps.grow_size - ps.data_offset);
41         }
42         return !ret;
43 }