File: test92.c

package info (click to toggle)
libtpl 1.6.1-1.2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 2,028 kB
  • sloc: ansic: 5,669; perl: 1,062; makefile: 101; cpp: 32; sh: 18
file content (39 lines) | stat: -rw-r--r-- 1,095 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdint.h>

#include <tpl.h>

int main ( int n , char* a [ ] )
{

       tpl_node* tn ;
       char c='a',c2='b',c3,c4;
       int64_t cn = -100, cn2 ;
       uint64_t ucn = 200, ucn2;

       tn = tpl_map ( "A(cIcU)" , &c, &cn, &c2, &ucn ) ;
       tpl_pack ( tn , 1 ) ;
       c += 1;
       cn -= 1;
       c2 += 1;
       ucn += 1;
       tpl_pack ( tn , 1 ) ;
       tpl_dump ( tn , TPL_FILE , "/tmp/test92.tpl" ) ;
       tpl_free ( tn ) ;

       tn = tpl_map ( "A(cIcU)" , &c3, &cn2, &c4, &ucn2 ) ;
       tpl_load(tn,TPL_FILE,"/tmp/test92.tpl");
       /* Hesitant to rely on portability of %lld to print int64_t.
          At least on MinGW it is questionable. */
       /*
        * while (tpl_unpack(tn,1) > 0) {
        *  printf("%c %lld %c %llu\n", c3, cn2, c4, ucn2);
        * }
       */
       tpl_unpack(tn,1);
       if (c3 != 'a' || cn2 != -100 || c4 != 'b' || ucn2 != 200) printf("unpack error 1\n");
       tpl_unpack(tn,1);
       if (c3 != 'b' || cn2 != -101 || c4 != 'c' || ucn2 != 201) printf("unpack error 2\n");
       return ( 0 ) ;

}