OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [language/] [c/] [libc/] [i18n/] [current/] [tests/] [setlocale.c] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
//=================================================================
2
//
3
//        setlocale.c
4
//
5
//        Testcase for C library setlocale() function
6
//
7
//=================================================================
8
// ####ECOSGPLCOPYRIGHTBEGIN####                                            
9
// -------------------------------------------                              
10
// This file is part of eCos, the Embedded Configurable Operating System.   
11
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
12
//
13
// eCos is free software; you can redistribute it and/or modify it under    
14
// the terms of the GNU General Public License as published by the Free     
15
// Software Foundation; either version 2 or (at your option) any later      
16
// version.                                                                 
17
//
18
// eCos is distributed in the hope that it will be useful, but WITHOUT      
19
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or    
20
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License    
21
// for more details.                                                        
22
//
23
// You should have received a copy of the GNU General Public License        
24
// along with eCos; if not, write to the Free Software Foundation, Inc.,    
25
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.            
26
//
27
// As a special exception, if other files instantiate templates or use      
28
// macros or inline functions from this file, or you compile this file      
29
// and link it with other works to produce a work based on this file,       
30
// this file does not by itself cause the resulting work to be covered by   
31
// the GNU General Public License. However the source code for this file    
32
// must still be made available in accordance with section (3) of the GNU   
33
// General Public License v2.                                               
34
//
35
// This exception does not invalidate any other reasons why a work based    
36
// on this file might be covered by the GNU General Public License.         
37
// -------------------------------------------                              
38
// ####ECOSGPLCOPYRIGHTEND####                                              
39
//=================================================================
40
//#####DESCRIPTIONBEGIN####
41
//
42
// Author(s):     jlarmour
43
// Contributors:
44
// Date:          2000-04-18
45
// Description:   Contains testcode for C library setlocale() function
46
//
47
//
48
//####DESCRIPTIONEND####
49
 
50
// INCLUDES
51
 
52
#include <pkgconf/system.h>
53
#include <locale.h>                // header for functions to test
54
#include <cyg/infra/testcase.h>    // Testcase API
55
 
56
 
57
// FUNCTIONS
58
 
59
static int
60
my_strcmp(const char *s1, const char *s2)
61
{
62
    for ( ; *s1 == *s2 ; s1++,s2++ )
63
    {
64
        if ( *s1 == '\0' )
65
            break;
66
    } // for
67
 
68
    return (*s1 - *s2);
69
} // my_strcmp()
70
 
71
#ifndef CYGPKG_LIBC_STARTUP
72
void cyg_user_start(void)
73
#else
74
int
75
main( int argc, char *argv[] )
76
#endif
77
{
78
    char *str;
79
 
80
    CYG_TEST_INIT();
81
 
82
    CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C "
83
                  "library setlocale() function");
84
 
85
    // Check 1
86
    str = setlocale(LC_CTYPE, NULL);
87
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
88
                        "Initial locale for LC_CTYPE is \"C\"" );
89
 
90
    // Check 2
91
    str = setlocale(LC_ALL, NULL);
92
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "#C#C#C#C#C#" ),
93
                        "Initial locale for LC_ALL is correct" );
94
 
95
    // Check 3
96
    str = setlocale(LC_COLLATE, "C");
97
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
98
                        "Set locale for LC_COLLATE to \"C\"" );
99
 
100
    // Check 4
101
    str = setlocale(LC_MONETARY, "");
102
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
103
                        "Set default locale for LC_MONETARY" );
104
    str = setlocale(LC_MONETARY, NULL);
105
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
106
                        "Stored default locale for LC_MONETARY" );
107
 
108
    // Check 5
109
    str = setlocale(LC_ALL, "C");
110
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
111
                        "Set locale for LC_COLLATE to \"C\"" );
112
 
113
    // Check 6
114
    str = setlocale(LC_ALL, "");
115
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "C" ),
116
                        "Set locale for LC_COLLATE to default" );
117
 
118
    // Check 7
119
    str = setlocale(LC_ALL, NULL);
120
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "#C#C#C#C#C#" ),
121
                        "Get locale for LC_ALL" );
122
    str = setlocale(LC_ALL, str);
123
    CYG_TEST_PASS_FAIL( !my_strcmp(str, "#C#C#C#C#C#" ),
124
                        "Set locale for LC_ALL from retrieved locale" );
125
 
126
 
127
    CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C "
128
                    "library setlocale() function");
129
} // main()
130
 
131
// EOF setlocale.c

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.