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 10static 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 30int main(int argc, char *argv[]) 31{ 32 int i, ret = 0; 33 int count = 1; 34 35 /* Needed to initialize character set */ 36 lp_load("/dev/null", True, False, False, True); 37 38 if (argc < 2) { 39 fprintf(stderr, "usage: %s STRING1 [COUNT]\n" 40 "Checks that a string translated UNIX->UCS2->UNIX is unchanged\n" 41 "Should be always 0\n", 42 argv[0]); 43 return 2; 44 } 45 if (argc >= 3) 46 count = atoi(argv[2]); 47 48 for (i = 0; ((i < count) && (!ret)); i++) 49 ret = check_push_ucs2(argv[1]); 50 51 printf("%d\n", ret); 52 53 return 0; 54} 55