示例#1
0
// TestHeaderValidity
//------------------------------------------------------------------------------
void TestCompressor::TestHeaderValidity() const
{
	AutoPtr< uint32_t > buffer( (uint32_t *)ALLOC( 1024 ) );
	memset( buffer.Get(), 0, 1024 );
	Compressor c;
	uint32_t * data = (uint32_t *)buffer.Get();

	// uncompressed buffer of 0 length is valid
	TEST_ASSERT( c.IsValidData( buffer.Get(), 12 ) );

	// compressed buffer of 0 length is valid
	data[0] = 1;
	TEST_ASSERT( c.IsValidData( buffer.Get(), 12 ) );

	// compressed data
	data[1] = 32; // uncompressed
	data[2] = 8; // compressed
	TEST_ASSERT( c.IsValidData( buffer.Get(), 20 ) );

	// INVALID data - data too small
	TEST_ASSERT( c.IsValidData( buffer.Get(), 4 ) == false );

	// INVALID data - compressed bigger than uncompressed
	data[1] = 8; // uncompressed
	data[2] = 32; // compressed
	TEST_ASSERT( c.IsValidData( buffer.Get(), 44 ) == false );
}