source: trunk/libtransmission/rpc-test.c @ 12545

Last change on this file since 12545 was 7783, checked in by charles, 13 years ago

(trunk libT) fix some code that the newly-added gcc warnings didn't like

File size: 2.2 KB
Line 
1#include <stdio.h> /* fprintf */
2#include <string.h> /* strcmp */
3#include "transmission.h"
4#include "bencode.h"
5#include "rpcimpl.h"
6#include "utils.h"
7
8#undef VERBOSE
9
10static int test = 0;
11
12#ifdef VERBOSE
13  #define check( A ) \
14    { \
15        ++test; \
16        if( A ){ \
17            fprintf( stderr, "PASS test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
18        } else { \
19            fprintf( stderr, "FAIL test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
20            return test; \
21        } \
22    }
23#else
24  #define check( A ) \
25    { \
26        ++test; \
27        if( !( A ) ){ \
28            fprintf( stderr, "FAIL test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
29            return test; \
30        } \
31    }
32#endif
33
34static int
35test_list( void )
36{
37    int64_t      i;
38    const char * str;
39    tr_benc      top;
40
41    tr_rpc_parse_list_str( &top, "12", -1 );
42    check( tr_bencIsInt( &top ) );
43    check( tr_bencGetInt( &top, &i ) );
44    check( i == 12 );
45    tr_bencFree( &top );
46
47    tr_rpc_parse_list_str( &top, "12", 1 );
48    check( tr_bencIsInt( &top ) );
49    check( tr_bencGetInt( &top, &i ) );
50    check( i == 1 );
51    tr_bencFree( &top );
52
53    tr_rpc_parse_list_str( &top, "6,7", -1 );
54    check( tr_bencIsList( &top ) );
55    check( tr_bencListSize( &top ) == 2 );
56    check( tr_bencGetInt( tr_bencListChild( &top, 0 ), &i ) );
57    check( i == 6 );
58    check( tr_bencGetInt( tr_bencListChild( &top, 1 ), &i ) );
59    check( i == 7 );
60    tr_bencFree( &top );
61
62    tr_rpc_parse_list_str( &top, "asdf", -1 );
63    check( tr_bencIsString( &top ) );
64    check( tr_bencGetStr( &top, &str ) );
65    check( !strcmp( str, "asdf" ) );
66    tr_bencFree( &top );
67
68    tr_rpc_parse_list_str( &top, "1,3-5", -1 );
69    check( tr_bencIsList( &top ) );
70    check( tr_bencListSize( &top ) == 4 );
71    check( tr_bencGetInt( tr_bencListChild( &top, 0 ), &i ) );
72    check( i == 1 );
73    check( tr_bencGetInt( tr_bencListChild( &top, 1 ), &i ) );
74    check( i == 3 );
75    check( tr_bencGetInt( tr_bencListChild( &top, 2 ), &i ) );
76    check( i == 4 );
77    check( tr_bencGetInt( tr_bencListChild( &top, 3 ), &i ) );
78    check( i == 5 );
79    tr_bencFree( &top );
80
81    return 0;
82}
83
84int
85main( void )
86{
87    int i;
88
89    if( ( i = test_list( ) ) )
90        return i;
91
92    return 0;
93}
94
Note: See TracBrowser for help on using the repository browser.