]> granicus.if.org Git - transmission/commitdiff
add in some very simple bitfield tests, and add a #define option to turn it into...
authorCharles Kerr <charles@transmissionbt.com>
Mon, 2 Jun 2008 15:52:16 +0000 (15:52 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Mon, 2 Jun 2008 15:52:16 +0000 (15:52 +0000)
libtransmission/utils-test.c

index 95430b78476a53a984d33fbba446c60f61bec7f6..d03a5ed0f05c0458c04fc40bd57b5e68bb3e7120 100644 (file)
@@ -3,7 +3,16 @@
 #include "transmission.h"
 #include "utils.h"
 
+#define VERBOSE 1
+#define NUM_LOOPS 1
+#define SPEED_TEST 0
+
+#if SPEED_TEST
+#undef VERBOSE
 #define VERBOSE 0
+#undef NUM_LOOPS
+#define NUM_LOOPS 200
+#endif
 
 int test = 0;
 
@@ -19,12 +28,35 @@ int test = 0;
     } \
 }
 
+static int
+test_bitfields( void )
+{ 
+    int i;
+    int bitcount = 5000000;
+    tr_bitfield * field = tr_bitfieldNew( bitcount );
+
+    /* make every seventh one true */
+    for( i=0; i<bitcount; ++i )
+        if( !( i % 7 ) )
+            tr_bitfieldAdd( field, i );
+
+    /* check to see if `has' has the right bits */
+    for( i=0; i<bitcount; ++i )
+        check( tr_bitfieldHas( field, i ) == (!(i%7)) );
+
+    tr_bitfieldFree( field );
+    return 0;
+}
+
+
 
 int
 main( void )
 {
     char *in, *out;
     int len;
+    int i;
+    int l;
 
     /* base64 */
     in = "YOYO!";
@@ -39,5 +71,10 @@ main( void )
     tr_free( in );
     tr_free( out );
 
+    /* simple bitfield tests */
+    for( l=0; l<NUM_LOOPS; ++l )
+        if(( i = test_bitfields( )))
+            return i;
+
     return 0;
 }