mirror of
https://github.com/transmission/transmission
synced 2024-12-24 16:52:39 +00:00
(trunk libT) new macro, tr_assert(). use it to help smoke out #1749
This commit is contained in:
parent
f47cc0cf4d
commit
29661cf245
3 changed files with 46 additions and 4 deletions
|
@ -326,8 +326,21 @@ tr_cpFileIsComplete( const tr_completion * cp, tr_file_index_t fileIndex )
|
||||||
const tr_block_index_t firstBlock = file->offset / tor->blockSize;
|
const tr_block_index_t firstBlock = file->offset / tor->blockSize;
|
||||||
const tr_block_index_t lastBlock = file->length ? ( ( file->offset + file->length - 1 ) / tor->blockSize ) : firstBlock;
|
const tr_block_index_t lastBlock = file->length ? ( ( file->offset + file->length - 1 ) / tor->blockSize ) : firstBlock;
|
||||||
|
|
||||||
assert( tr_torBlockPiece( tor, firstBlock ) == file->firstPiece );
|
tr_assert( tr_torBlockPiece( tor, firstBlock ) == file->firstPiece,
|
||||||
assert( tr_torBlockPiece( tor, lastBlock ) == file->lastPiece );
|
"file->offset %"PRIu64"; file->length %"PRIu64"; "
|
||||||
|
"pieceSize %"PRIu32"; blockSize %"PRIu32"; "
|
||||||
|
"firstBlock %"PRIu64"; lastBlock %"PRIu64,
|
||||||
|
file->offset, file->length,
|
||||||
|
tor->info.pieceSize, tor->blockSize,
|
||||||
|
firstBlock, lastBlock );
|
||||||
|
|
||||||
|
tr_assert( tr_torBlockPiece( tor, lastBlock ) == file->lastPiece,
|
||||||
|
"file->offset %"PRIu64"; file->length %"PRIu64"; "
|
||||||
|
"pieceSize %"PRIu32"; blockSize %"PRIu32"; "
|
||||||
|
"firstBlock %"PRIu64"; lastBlock %"PRIu64,
|
||||||
|
file->offset, file->length,
|
||||||
|
tor->info.pieceSize, tor->blockSize,
|
||||||
|
firstBlock, lastBlock );
|
||||||
|
|
||||||
for( block=firstBlock; block<=lastBlock; ++block )
|
for( block=firstBlock; block<=lastBlock; ++block )
|
||||||
if( !tr_cpBlockIsComplete( cp, block ) )
|
if( !tr_cpBlockIsComplete( cp, block ) )
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "list.h"
|
#include "list.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
static tr_lock * messageLock = NULL;
|
static tr_lock * messageLock = NULL;
|
||||||
static int messageLevel = 0;
|
static int messageLevel = 0;
|
||||||
|
@ -191,8 +192,7 @@ tr_localtime_r( time_t *_clock, struct tm *_result )
|
||||||
}
|
}
|
||||||
|
|
||||||
char*
|
char*
|
||||||
tr_getLogTimeStr( char * buf,
|
tr_getLogTimeStr( char * buf, int buflen )
|
||||||
int buflen )
|
|
||||||
{
|
{
|
||||||
char tmp[64];
|
char tmp[64];
|
||||||
time_t now;
|
time_t now;
|
||||||
|
@ -211,6 +211,26 @@ tr_getLogTimeStr( char * buf,
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
tr_assertImpl( const char * file, int line, const char * test, const char * fmt, ... )
|
||||||
|
{
|
||||||
|
char buf[64];
|
||||||
|
fprintf( stderr, "[%s] Transmission %s Assertion \"%s\" failed at %s:%d. ",
|
||||||
|
tr_getLogTimeStr( buf, sizeof( buf ) ),
|
||||||
|
LONG_VERSION_STRING, test, file, line );
|
||||||
|
if( fmt && *fmt ) {
|
||||||
|
va_list args;
|
||||||
|
fputc( '(', stderr );
|
||||||
|
va_start( args, fmt );
|
||||||
|
vfprintf( stderr, fmt, args );
|
||||||
|
va_end( args );
|
||||||
|
fputs( ") ", stderr );
|
||||||
|
}
|
||||||
|
fputs( "Please report this bug at <http://trac.transmissionbt.com/newticket>; Thank you.\n", stderr );
|
||||||
|
abort( );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
tr_bool
|
tr_bool
|
||||||
tr_deepLoggingIsActive( void )
|
tr_deepLoggingIsActive( void )
|
||||||
{
|
{
|
||||||
|
|
|
@ -103,6 +103,15 @@ extern "C" {
|
||||||
*****
|
*****
|
||||||
****/
|
****/
|
||||||
|
|
||||||
|
void tr_assertImpl( const char * file, int line, const char * test, const char * fmt, ... ) TR_GNUC_PRINTF( 4, 5 );
|
||||||
|
|
||||||
|
#ifdef NDEBUG
|
||||||
|
#define tr_assert( test, fmt, ... )
|
||||||
|
#else
|
||||||
|
#define tr_assert( test, fmt, ... ) \
|
||||||
|
do { if( ! ( test ) ) tr_assertImpl( __FILE__, __LINE__, #test, fmt, __VA_ARGS__ ); } while( 0 )
|
||||||
|
#endif
|
||||||
|
|
||||||
int tr_msgLoggingIsActive( int level );
|
int tr_msgLoggingIsActive( int level );
|
||||||
|
|
||||||
void tr_msg( const char * file,
|
void tr_msg( const char * file,
|
||||||
|
|
Loading…
Reference in a new issue