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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [services/] [compress/] [zlib/] [current/] [tests/] [zlib1.c] - Blame information for rev 843

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
//=================================================================
2
//
3
//        zlib1.c
4
//
5
//        zlib compression/decompression test 1
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):     jskov
43
// Contributors:  jskov
44
// Date:          2001-03-09
45
// Description:   Tests zlib compress/decompress functionality.
46
//####DESCRIPTIONEND####
47
 
48
 
49
#include <cyg/hal/hal_arch.h>           // CYGNUM_HAL_STACK_SIZE_TYPICAL
50
 
51
#include <cyg/kernel/kapi.h>
52
 
53
#include <cyg/infra/testcase.h>
54
#include <cyg/infra/diag.h>
55
 
56
#ifdef CYGFUN_KERNEL_API_C
57
 
58
#include <cyg/compress/zlib.h>
59
#include <stdlib.h>
60
 
61
#define NTHREADS 1
62
#define STACKSIZE (CYGNUM_HAL_STACK_SIZE_TYPICAL > 8192 ? CYGNUM_HAL_STACK_SIZE_TYPICAL : 8192)
63
 
64
static cyg_handle_t thread[NTHREADS];
65
 
66
static cyg_thread thread_obj[NTHREADS];
67
static char stack[NTHREADS][STACKSIZE];
68
 
69
static char license_txt[] =
70
"Red Hat eCos Public License v1.1\n"
71
"\n"
72
"\n"
73
"1. DEFINITIONS\n"
74
"\n"
75
"1.1. \"Contributor\" means each entity that creates or\n"
76
"contributes to the creation of Modifications.\n"
77
"\n"
78
"1.2. \"Contributor Version\" means the combination of the\n"
79
"Original Code, prior Modifications used by a\n"
80
"Contributor, and the Modifications made by that\n"
81
"particular Contributor.\n"
82
"\n"
83
"1.3. \"Covered Code\" means the Original Code or\n"
84
"Modifications or the combination of the Original Code\n"
85
"and Modifications, in each case including portions\n"
86
"thereof.\n"
87
"\n"
88
"1.4. \"Electronic Distribution Mechanism\" means a\n"
89
"mechanism generally accepted in the software development\n"
90
"community for the electronic transfer of data.\n"
91
"\n"
92
"1.5. \"Executable\" means Covered Code in any form other\n"
93
"than Source Code.\n"
94
"1.6. \"Initial Developer\" means the individual or entity\n"
95
"identified as the Initial Developer in the Source Code\n"
96
"notice required by Exhibit A.\n"
97
"\n"
98
"1.7. \"Larger Work\" means a work which combines Covered\n"
99
"Code or portions thereof with code not governed by the\n"
100
"terms of this License.\n"
101
"\n"
102
"1.8. \"License\" means this document.\n"
103
"\n"
104
"1.9. \"Modifications\" means any addition to or deletion\n"
105
"from the substance or structure of either the Original\n"
106
"Code or any previous Modifications. When Covered Code is\n"
107
"released as a series of files, a Modification is:\n"
108
"\n"
109
"     A. Any addition to or deletion from the\n"
110
"     contents of a file containing Original Code or\n"
111
"     previous Modifications.\n"
112
"\n"
113
"     B. Any new file that contains any part of the\n"
114
"     Original Code or previous Modifications.\n"
115
"\n"
116
"1.10. \"Original Code\" means Source Code of computer\n"
117
"software code which is described in the Source Code\n"
118
"notice required by Exhibit A as Original Code, and\n"
119
"which, at the time of its release under this License is\n"
120
"not already Covered Code governed by this License.\n"
121
"\n"
122
"1.11. \"Source Code\" means the preferred form of the\n"
123
"Covered Code for making modifications to it, including\n"
124
"all modules it contains, plus any associated interface\n"
125
"definition files, scripts used to control compilation\n"
126
"and installation of an Executable, or a list of source\n"
127
"code differential comparisons against either the\n"
128
"Original Code or another well known, available Covered\n"
129
"Code of the Contributor's choice. The Source Code can be\n"
130
"in a compressed or archival form, provided the\n"
131
"appropriate decompression or de-archiving software is\n"
132
"widely available for no charge.\n"
133
"\n"
134
"1.12. \"You\" means an individual or a legal entity\n"
135
"exercising rights under, and complying with all of the\n"
136
"terms of, this License or a future version of this\n"
137
"License issued under Section 6.1. For legal entities,\n"
138
"\"You\" includes any entity which controls, is controlled\n"
139
"by, or is under common control with You. For purposes of\n"
140
"this definition, \"control\" means (a) the power, direct\n"
141
"or indirect, to cause the direction or management of\n"
142
"such entity, whether by contract or otherwise, or (b)\n"
143
"ownership of fifty percent (50%) or more of the\n"
144
"outstanding shares or beneficial ownership of such\n"
145
"entity.\n"
146
"\n"
147
"1.13. \"Red Hat Branded Code\" is code that Red Hat\n"
148
"distributes and/or permits others to distribute under\n"
149
"different terms than the Red Hat eCos Public License.\n"
150
"Red Hat's Branded Code may contain part or all of the\n"
151
"Covered Code.\n";
152
 
153
static void entry0( cyg_addrword_t data )
154
{
155
    int i;
156
    unsigned long len;
157
    int err;
158
    int buf_size = sizeof(license_txt)+512;
159
    unsigned char* packed = malloc(buf_size);
160
    unsigned char* unpacked = malloc(buf_size);
161
 
162
    if (NULL == packed || NULL == unpacked)
163
        CYG_TEST_NA("Not enough memory for buffers");
164
 
165
    CYG_TEST_INFO("Compressing");
166
 
167
    len = buf_size;
168
    err = compress(packed, &len, license_txt, sizeof(license_txt));
169
    diag_printf("len = %d", len);
170
    diag_dump_buf(packed, len);
171
 
172
    if (Z_OK != err)
173
        CYG_TEST_NA("Not enough memory for compression");
174
 
175
 
176
    CYG_TEST_INFO("Decompressing");
177
    err = uncompress(unpacked, &buf_size, packed, len);
178
 
179
    switch (err) {
180
    case Z_OK:
181
        break;
182
    case Z_MEM_ERROR:
183
        CYG_TEST_NA("Not enough memory for decompression");
184
        break;
185
    case Z_BUF_ERROR:
186
        CYG_TEST_FAIL_FINISH("Decompressed data larger than original");
187
        break;
188
    case Z_DATA_ERROR:
189
        CYG_TEST_FAIL_FINISH("Decompression failed");
190
        break;
191
    default:
192
        CYG_TEST_FAIL_FINISH("Unknown decompression error");
193
        break;
194
    }
195
 
196
    for (i = 0; i < sizeof(license_txt)-1; i++) {
197
        if (license_txt[i] != unpacked[i])
198
            CYG_TEST_FAIL_FINISH("Verify failed");
199
    }
200
 
201
    CYG_TEST_PASS_FINISH("zlib1 OK");
202
}
203
 
204
void zlib1_main( void )
205
{
206
    CYG_TEST_INIT();
207
 
208
    cyg_thread_create(4, entry0 , (cyg_addrword_t)0, "zlib1",
209
        (void *)stack[0], STACKSIZE,&thread[0], &thread_obj[0]);
210
    cyg_thread_resume(thread[0]);
211
 
212
    cyg_scheduler_start();
213
 
214
    CYG_TEST_FAIL_FINISH("Not reached");
215
}
216
 
217
externC void
218
cyg_start( void )
219
{
220
    zlib1_main();
221
}
222
 
223
#else /* def CYGFUN_KERNEL_API_C */
224
externC void
225
cyg_start( void )
226
{
227
    CYG_TEST_INIT();
228
    CYG_TEST_NA("Kernel C API layer disabled");
229
}
230
#endif /* def CYGFUN_KERNEL_API_C */
231
 
232
// EOF zlib1.c

powered by: WebSVN 2.1.0

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