1
1
#include <stdio.h> /* fprintf */
2
2
#include <string.h> /* strcmp */
3
3
#include "transmission.h"
8
10
#define SPEED_TEST 0
17
19
static int test = 0;
23
fprintf( stderr, "PASS test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
26
fprintf( stderr, "FAIL test #%d (%s, %d)\n", test, __FILE__, __LINE__ ); \
26
fprintf( stderr, "PASS test #%d (%s, %d)\n", test, __FILE__,\
29
fprintf( stderr, "FAIL test #%d (%s, %d)\n", test, __FILE__,\
32
36
test_bitfields( void )
35
int bitcount = 5000000;
39
unsigned int bitcount = 5000000;
36
40
tr_bitfield * field = tr_bitfieldNew( bitcount );
38
/* make every seventh one true */
39
for( i=0; i<bitcount; ++i )
42
/* test tr_bitfieldAdd */
43
for( i = 0; i < bitcount; ++i )
41
45
tr_bitfieldAdd( field, i );
43
/* check to see if `has' has the right bits */
44
for( i=0; i<bitcount; ++i )
45
check( tr_bitfieldHas( field, i ) == (!(i%7)) );
48
/* testing the "find next" function */
49
check( tr_bitfieldFindTrue( field, 0, &pos ) );
51
check( tr_bitfieldFindTrue( field, 1, &pos ) );
53
check( tr_bitfieldFindTrue( field, 2, &pos ) );
55
check( tr_bitfieldFindTrue( field, 7, &pos ) );
57
check( tr_bitfieldFindTrue( field, 8, &pos ) );
59
check( tr_bitfieldFindTrue( field, 13, &pos ) );
61
check( tr_bitfieldFindTrue( field, 14, &pos ) );
63
check( tr_bitfieldFindTrue( field, 15, &pos ) );
65
check( tr_bitfieldFindTrue( field, 16, &pos ) );
46
for( i = 0; i < bitcount; ++i )
47
check( tr_bitfieldHas( field, i ) == ( !( i % 7 ) ) );
49
/* test tr_bitfieldAddRange */
50
tr_bitfieldAddRange( field, 0, bitcount );
51
for( i = 0; i < bitcount; ++i )
52
check( tr_bitfieldHas( field, i ) );
54
/* test tr_bitfieldRemRange in the middle of a boundary */
55
tr_bitfieldRemRange( field, 4, 21 );
56
for( i = 0; i < 64; ++i )
57
check( tr_bitfieldHas( field, i ) == ( ( i < 4 ) || ( i >= 21 ) ) );
59
/* test tr_bitfieldRemRange on the boundaries */
60
tr_bitfieldAddRange( field, 0, 64 );
61
tr_bitfieldRemRange( field, 8, 24 );
62
for( i = 0; i < 64; ++i )
63
check( tr_bitfieldHas( field, i ) == ( ( i < 8 ) || ( i >= 24 ) ) );
65
/* test tr_bitfieldRemRange when begin & end is on the same word */
66
tr_bitfieldAddRange( field, 0, 64 );
67
tr_bitfieldRemRange( field, 4, 5 );
68
for( i = 0; i < 64; ++i )
69
check( tr_bitfieldHas( field, i ) == ( ( i < 4 ) || ( i >= 5 ) ) );
71
/* test tr_bitfieldAddRange */
72
tr_bitfieldRemRange( field, 0, 64 );
73
tr_bitfieldAddRange( field, 4, 21 );
74
for( i = 0; i < 64; ++i )
75
check( tr_bitfieldHas( field, i ) == ( ( 4 <= i ) && ( i < 21 ) ) );
77
/* test tr_bitfieldAddRange on the boundaries */
78
tr_bitfieldRemRange( field, 0, 64 );
79
tr_bitfieldAddRange( field, 8, 24 );
80
for( i = 0; i < 64; ++i )
81
check( tr_bitfieldHas( field, i ) == ( ( 8 <= i ) && ( i < 24 ) ) );
83
/* test tr_bitfieldAddRange when begin & end is on the same word */
84
tr_bitfieldRemRange( field, 0, 64 );
85
tr_bitfieldAddRange( field, 4, 5 );
86
for( i = 0; i < 64; ++i )
87
check( tr_bitfieldHas( field, i ) == ( ( 4 <= i ) && ( i < 5 ) ) );
69
89
tr_bitfieldFree( field );
99
in = tr_strdup( " test " );
100
out = tr_strstrip( in );
102
check( !strcmp( in, "test" ) );
106
in = tr_strdup( " test test " );
107
out = tr_strstrip( in );
109
check( !strcmp( in, "test test" ) );
113
in = tr_strdup( "test" );
114
out = tr_strstrip( in );
116
check( !strcmp( in, "test" ) );
123
test_buildpath( void )
127
out = tr_buildPath( "foo", "bar", NULL );
128
check( !strcmp( out, "foo" TR_PATH_DELIMITER_STR "bar" ) );
131
out = tr_buildPath( "", "foo", "bar", NULL );
132
check( !strcmp( out, TR_PATH_DELIMITER_STR "foo" TR_PATH_DELIMITER_STR "bar" ) );