~ubuntu-branches/ubuntu/karmic/avr-libc/karmic

« back to all changes in this revision

Viewing changes to tests/simulate/stdlib/bsearch-3.c

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2008-08-10 09:59:16 UTC
  • mfrom: (1.1.7 upstream) (4.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080810095916-wwyigh3vt0e9s7ud
Tags: 1:1.6.2.cvs20080610-2
Added build-depends on texlive-extra-utils (closes: #493454)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Multibytes members.
 
2
   $Id: bsearch-3.c,v 1.1 2007/02/06 12:36:58 dmix Exp $
 
3
 */
 
4
 
 
5
#include <stdlib.h>
 
6
#include <string.h>
 
7
#include <stdio.h>
 
8
 
 
9
size_t size;    /* to pass size of members      */
 
10
 
 
11
int cmp (const void *p1, const void *p2)
 
12
{
 
13
    return memcmp(p1, p2, size);
 
14
}
 
15
 
 
16
int main ()
 
17
{
 
18
    char arr[100];
 
19
    size_t nmemb;
 
20
    int i;
 
21
    
 
22
    /* Filling of arr: 0,1,2... */
 
23
    for (i= 0; (size_t)i < sizeof(arr); i++)
 
24
        arr[i] = i;
 
25
 
 
26
    for (size= 1;  size <= sizeof(arr);  size++) {
 
27
        for (nmemb= 1;  nmemb <= sizeof(arr) / size;  nmemb++) {
 
28
            /* scanning all keys        */
 
29
            for (i= 0;  (size_t)i <= sizeof(arr) - size;  i++) {
 
30
                if ((i % size) == 0 && (i / size) < nmemb) {
 
31
                    if (bsearch (arr + i, arr, nmemb, size, cmp) != arr + i) {
 
32
#ifndef __AVR__
 
33
                        printf ("size= %d  nmemb= %d  i= %d\n",
 
34
                                size, nmemb, i );
 
35
#endif
 
36
                        exit (__LINE__);
 
37
                    }
 
38
                } else {
 
39
                    if (bsearch (arr + i, arr, nmemb, size, cmp))
 
40
                        exit (__LINE__);
 
41
                }
 
42
            }
 
43
        }
 
44
    }
 
45
    return 0;
 
46
}