1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/*
2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru**********************************************************************
38393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius* Copyright (C) 1998-2012, International Business Machines Corporation
4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* and others.  All Rights Reserved.
5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru**********************************************************************
6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*
7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* File date.c
8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*
9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* Modification History:
10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*
11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*   Date        Name        Description
12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*   4/26/2000  srl         created
13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*******************************************************************************
14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*/
15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/utypes.h"
17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include <stdio.h>
18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include <string.h>
19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/udata.h"
20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/ucnv.h"
218393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius#include "ucmndata.h"
22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
238393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Corneliusextern const DataHeader U_DATA_API U_ICUDATA_ENTRY_POINT;
24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruint
26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querumain(int argc,
27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru     char **argv)
28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{
29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  UConverter *c;
30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  UErrorCode status = U_ZERO_ERROR;
31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  udata_setCommonData(NULL, &status);
33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  printf("setCommonData(NULL) -> %s [should fail]\n",  u_errorName(status));
34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  if(status != U_ILLEGAL_ARGUMENT_ERROR)
35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  {
36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    printf("*** FAIL: should have returned U_ILLEGAL_ARGUMENT_ERROR\n");
37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    return 1;
38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  }
39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  status = U_ZERO_ERROR;
418393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius  udata_setCommonData(&U_ICUDATA_ENTRY_POINT, &status);
428393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius  printf("setCommonData(%p) -> %s\n", (void*)&U_ICUDATA_ENTRY_POINT, u_errorName(status));
43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  if(U_FAILURE(status))
44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  {
45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    printf("*** FAIL: should have returned U_ZERO_ERROR\n");
46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    return 1;
47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  }
48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  status = U_ZERO_ERROR;
508393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius  c = ucnv_open("iso-8859-3", &status);
518393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius  printf("ucnv_open(iso-8859-3)-> %p, err = %s, name=%s\n",
5250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho         (void *)c, u_errorName(status), (!c)?"?":ucnv_getName(c,&status)  );
53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  if(status != U_ZERO_ERROR)
54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  {
55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    printf("\n*** FAIL: should have returned U_ZERO_ERROR;\n");
56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    return 1;
57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  }
58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  else
59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  {
60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    ucnv_close(c);
61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  }
62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  status = U_ZERO_ERROR;
648393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius  udata_setCommonData(&U_ICUDATA_ENTRY_POINT, &status);
658393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius  printf("setCommonData(%p) -> %s [should pass]\n", (void*) &U_ICUDATA_ENTRY_POINT, u_errorName(status));
6650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho  if (U_FAILURE(status) || status == U_USING_DEFAULT_WARNING )
67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  {
6850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    printf("\n*** FAIL: should pass and not set U_USING_DEFAULT_ERROR\n");
69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru    return 1;
70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  }
71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  printf("\n*** PASS PASS PASS, test PASSED!!!!!!!!\n");
73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru  return 0;
74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}
75