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

Subversion Repositories openrisc

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
//=================================================================
2
//
3
//        bsearch.c
4
//
5
//        Testcase for C library bsearch()
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):     ctarpy, jlarmour
43
// Contributors:  
44
// Date:          2000-04-30
45
// Description:   Contains testcode for C library bsearch() function
46
//
47
//
48
//####DESCRIPTIONEND####
49
 
50
// INCLUDES
51
 
52
#include <pkgconf/system.h>
53
#include <stdlib.h>
54
#include <cyg/infra/testcase.h>
55
 
56
 
57
// FUNCTIONS
58
 
59
static int
60
Compar( const void *int1, const void *int2 )
61
{
62
    if ( *(int*)int1 < *(int*)int2 )
63
        return -1;
64
    else if ( *(int*)int1 == *(int*)int2 )
65
        return 0;
66
    else
67
        return 1;
68
} // Compar()
69
 
70
#ifndef CYGPKG_LIBC_STARTUP
71
void cyg_user_start(void)
72
#else
73
int
74
main( int argc, char *argv[] )
75
#endif
76
{
77
    int key;
78
    int *result;
79
    int i_array[] = {1, 5, 8, 35, 84, 258, 1022, 1022, 5300, 7372, 9029};
80
 
81
    CYG_TEST_INIT();
82
 
83
    CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C library "
84
                  "bsearch() function");
85
 
86
    // Test 1
87
    key = 8;
88
    result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
89
                     sizeof(i_array[0]), &Compar);
90
    CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 8),
91
                        "bsearch() something in the middle");
92
 
93
    // Test 2
94
    key = 5300;
95
    result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
96
                     sizeof(i_array[0]), &Compar);
97
    CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 5300),
98
                        "bsearch() something else in the middle");
99
 
100
    // Test 3
101
    key = 1;
102
    result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
103
                     sizeof(i_array[0]), &Compar);
104
    CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 1),
105
                        "bsearch() first element");
106
 
107
    // Test 4
108
    key = 9029;
109
    result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
110
                     sizeof(i_array[0]), &Compar);
111
    CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 9029),
112
                        "bsearch() last element");
113
 
114
    // Test 5
115
    key = 1022;
116
    result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
117
                     sizeof(i_array[0]), &Compar);
118
    CYG_TEST_PASS_FAIL( (result!=NULL) && (*result == 1022),
119
                        "bsearch() duplicate element");
120
 
121
    // Test 6
122
    key = 2;
123
    result = bsearch(&key, i_array, sizeof(i_array)/sizeof(i_array[0]),
124
                     sizeof(i_array[0]), &Compar);
125
    CYG_TEST_PASS_FAIL( result==NULL, "bsearch() nonexistent element");
126
 
127
//    CYG_TEST_NA("Testing is not applicable to this configuration");
128
 
129
    CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C library "
130
                    "bsearch() function");
131
 
132
} // main()
133
 
134
 
135
// EOF bsearch.c

powered by: WebSVN 2.1.0

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