~ubuntu-branches/ubuntu/raring/avr-libc/raring-proposed

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2009-10-31 11:52:10 UTC
  • mfrom: (1.1.8 upstream) (4.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091031115210-x0mlijnegkce86fk
Tags: 1:1.6.7-1
* New upstream relese (closes: #544030)
* Added lintian overrides (closes: #553265)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Binary conversion.
2
 
   $Id: strtoul-3.c,v 1.1 2007/02/07 13:42:36 dmix Exp $
3
 
 */
4
 
#include <stdlib.h>
5
 
#include <string.h>
6
 
#include "progmem.h"
7
 
#include "strtoul.h"
8
 
 
9
 
int main ()
10
 
{
11
 
    PROGMEM static struct t_s {
12
 
        char s[35];             /* string to convert    */
13
 
        int base;
14
 
        unsigned long ret;      /* result must  */
15
 
        int err;                /* errno must   */
16
 
        unsigned char len;      /* endptr displacement must     */
17
 
    } t[] = {
18
 
        
19
 
        { "0", 2,       0, 0, 1 },
20
 
        { "1", 2,       1, 0, 1 },
21
 
        { "-1", 2,      -1, 0, 2 },
22
 
        { "10101010", 2,        0xaa, 0, 8 },
23
 
 
24
 
        { "1111111111111111111111111111110", 2,    0x7ffffffe, 0, 31 },
25
 
        { "1111111111111111111111111111111", 2,    0x7fffffff, 0, 31 },
26
 
        { "10000000000000000000000000000000", 2,   0x80000000, 0, 32 },
27
 
        { "10000000000000000000000000000001", 2,   0x80000001, 0, 32 },
28
 
        { "11111111111111111111111111111111", 2,   0xffffffff, 0, 32 },
29
 
        { "100000000000000000000000000000000", 2,  0xffffffff, ERANGE, 33 },
30
 
        { "100000000000000000000000000000001", 2,  0xffffffff, ERANGE, 33 },
31
 
 
32
 
        { "-1111111111111111111111111111111", 2,   0x80000001, 0, 32 },
33
 
        { "-10000000000000000000000000000000", 2,  0x80000000, 0, 33 },
34
 
        { "-10000000000000000000000000000001", 2,  0x7fffffff, 0, 33 },
35
 
        { "-10000000000000000000000000000010", 2,  0x7ffffffe, 0, 33 },
36
 
        { "-11111111111111111111111111111111", 2,  0x00000001, 0, 33 },
37
 
        { "-100000000000000000000000000000000", 2, 0xffffffff, ERANGE, 34 },
38
 
        { "-100000000000000000000000000000001", 2, 0xffffffff, ERANGE, 34 },
39
 
        
40
 
    };
41
 
    struct t_s tt;
42
 
    int i;
43
 
    
44
 
    for (i = 0; i != (int)(sizeof(t)/sizeof(t[0])); i++) {
45
 
        struct t_s *p;
46
 
        memcpy_P (&tt, t + i, sizeof(tt));
47
 
        p = &tt;
48
 
        if (t_strtoul (p->s, p->base, p->ret, p->err, p->len))
49
 
            exit (i+1);
50
 
    }
51
 
    return 0;
52
 
}