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

Last change on this file since 13569 was 13569, checked in by jordan, 10 years ago

retrofit some of the tests to use the more expressive test API

File size: 1.7 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#include "libtransmission-test.h"
10
11static int
12test_list( void )
13{
14    int64_t      i;
15    const char * str;
16    tr_benc      top;
17
18    tr_rpc_parse_list_str( &top, "12", -1 );
19    check( tr_bencIsInt( &top ) );
20    check( tr_bencGetInt( &top, &i ) );
21    check_int_eq ( 12, i );
22    tr_bencFree( &top );
23
24    tr_rpc_parse_list_str( &top, "12", 1 );
25    check( tr_bencIsInt( &top ) );
26    check( tr_bencGetInt( &top, &i ) );
27    check_int_eq ( 1, i );
28    tr_bencFree( &top );
29
30    tr_rpc_parse_list_str( &top, "6,7", -1 );
31    check( tr_bencIsList( &top ) );
32    check( tr_bencListSize( &top ) == 2 );
33    check( tr_bencGetInt( tr_bencListChild( &top, 0 ), &i ) );
34    check_int_eq ( 6, i );
35    check( tr_bencGetInt( tr_bencListChild( &top, 1 ), &i ) );
36    check_int_eq ( 7, i );
37    tr_bencFree( &top );
38
39    tr_rpc_parse_list_str( &top, "asdf", -1 );
40    check( tr_bencIsString( &top ) );
41    check( tr_bencGetStr( &top, &str ) );
42    check_streq( "asdf", str );
43    tr_bencFree( &top );
44
45    tr_rpc_parse_list_str( &top, "1,3-5", -1 );
46    check( tr_bencIsList( &top ) );
47    check( tr_bencListSize( &top ) == 4 );
48    check( tr_bencGetInt( tr_bencListChild( &top, 0 ), &i ) );
49    check_int_eq( 1, i );
50    check( tr_bencGetInt( tr_bencListChild( &top, 1 ), &i ) );
51    check_int_eq( 3, i );
52    check( tr_bencGetInt( tr_bencListChild( &top, 2 ), &i ) );
53    check_int_eq( 4, i );
54    check( tr_bencGetInt( tr_bencListChild( &top, 3 ), &i ) );
55    check_int_eq( 5, i );
56    tr_bencFree( &top );
57
58    return 0;
59}
60
61MAIN_SINGLE_TEST(test_list)
Note: See TracBrowser for help on using the repository browser.