tpl/tests/test92.c
2013-03-12 16:38:58 -04:00

40 lines
1.1 KiB
C

#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 ) ;
}