Integrate abartlet's t_push_ucs2 test into test framework:
[samba.git] / source3 / torture / t_push_ucs2.c
1 /*
2  * Copyright (C) 2003 by Martin Pool
3  * Copyright (C) 2003 by Andrew Bartlett
4  *
5  * Test harness for push_ucs2
6  */
7
8 #include "includes.h"
9
10 static int check_push_ucs2(const char *orig) 
11 {
12         smb_ucs2_t *dest = NULL;
13         char *orig2 = NULL;
14         int ret;
15
16         push_ucs2_allocate(&dest, orig);
17         pull_ucs2_allocate(&orig2, dest);
18         ret = strcmp(orig, orig2);
19         if (ret) {
20                 fprintf(stderr, "orig: %s\n", orig);
21                 fprintf(stderr, "orig (UNIX -> UCS2 -> UNIX): %s\n", orig2);
22         }
23
24         SAFE_FREE(dest);
25         SAFE_FREE(orig2);
26
27         return ret;
28 }
29
30 int main(int argc, char *argv[])
31 {
32         int i, ret = 0;
33
34         /* Needed to initialize character set */
35         lp_load("/dev/null", True, False, False);
36
37         if (argc != 2) {
38                 fprintf(stderr, "usage: %s STRING1\n"
39                         "Checks that a string translated UNIX->UCS2->UNIX is unchanged\n"
40                         "Should be always 0\n",
41                         argv[0]);
42                 return 2;
43         }
44
45         for (i = 0; ((i < 10000) && (!ret)); i++)
46                 ret = check_push_ucs2(argv[1]);
47
48         printf("%d\n", ret);
49         
50         return 0;
51 }