~ubuntu-branches/ubuntu/hardy/belocs-locales-data/hardy

« back to all changes in this revision

Viewing changes to localedata/tst-xlocale2.c

  • Committer: Bazaar Package Importer
  • Author(s): Denis Barbier
  • Date: 2005-05-17 22:09:38 UTC
  • Revision ID: james.westby@ubuntu.com-20050517220938-814x2iu6tkj3ml2o
Tags: upstream-2.3.4
Import upstream version 2.3.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <ctype.h>
 
2
#include <locale.h>
 
3
#include <stdio.h>
 
4
#include <stdlib.h>
 
5
 
 
6
 
 
7
static int do_test (__locale_t l);
 
8
 
 
9
int
 
10
main (void)
 
11
{
 
12
  locale_t l;
 
13
  locale_t l2;
 
14
  int result;
 
15
 
 
16
  l = newlocale (1 << LC_ALL, "de_DE.ISO-8859-1", NULL);
 
17
  if (l == NULL)
 
18
    {
 
19
      printf ("newlocale failed: %m\n");
 
20
      exit (EXIT_FAILURE);
 
21
    }
 
22
  puts ("Running tests of created locale");
 
23
  result = do_test (l);
 
24
 
 
25
  l2 = duplocale (l);
 
26
  if (l2 == NULL)
 
27
    {
 
28
      printf ("duplocale failed: %m\n");
 
29
      exit (EXIT_FAILURE);
 
30
    }
 
31
  freelocale (l);
 
32
  puts ("Running tests of duplicated locale");
 
33
  result |= do_test (l2);
 
34
 
 
35
  return result;
 
36
}
 
37
 
 
38
 
 
39
static const char str[] = "0123456789abcdef ABCDEF ghijklmnopqrstuvwxyz������";
 
40
static const char exd[] = "11111111110000000000000000000000000000000000000000";
 
41
static const char exa[] = "00000000001111110111111011111111111111111111111111";
 
42
static const char exx[] = "11111111111111110111111000000000000000000000000000";
 
43
 
 
44
 
 
45
static int
 
46
do_test (locale_t l)
 
47
{
 
48
  int result = 0;
 
49
size_t n;
 
50
 
 
51
#define DO_TEST(TEST, RES) \
 
52
  for (n = 0; n < sizeof (str) - 1; ++n)                                      \
 
53
    if ('0' + (TEST (str[n], l) != 0) != RES[n])                              \
 
54
      {                                                                       \
 
55
        printf ("%s(%c) failed\n", #TEST, str[n]);                            \
 
56
        result = 1;                                                           \
 
57
      }
 
58
 
 
59
  DO_TEST (isdigit_l, exd);
 
60
  DO_TEST (isalpha_l, exa);
 
61
  DO_TEST (isxdigit_l, exx);
 
62
 
 
63
  return result;
 
64
}