Re-enabled + refactored compress test, added zlib test case
This commit is contained in:
parent
a31f0f503d
commit
39b47c36f0
3 changed files with 87 additions and 21 deletions
|
|
@ -351,8 +351,6 @@ target_link_libraries( udt_client fc udt )
|
||||||
add_executable( ecc_test tests/ecc_test.cpp )
|
add_executable( ecc_test tests/ecc_test.cpp )
|
||||||
target_link_libraries( ecc_test fc )
|
target_link_libraries( ecc_test fc )
|
||||||
|
|
||||||
#add_executable( test_compress tests/compress.cpp )
|
|
||||||
#target_link_libraries( test_compress fc )
|
|
||||||
#add_executable( test_aes tests/aes_test.cpp )
|
#add_executable( test_aes tests/aes_test.cpp )
|
||||||
#target_link_libraries( test_aes fc ${rt_library} ${pthread_library} )
|
#target_link_libraries( test_aes fc ${rt_library} ${pthread_library} )
|
||||||
#add_executable( test_sleep tests/sleep.cpp )
|
#add_executable( test_sleep tests/sleep.cpp )
|
||||||
|
|
@ -360,6 +358,9 @@ target_link_libraries( ecc_test fc )
|
||||||
#add_executable( test_rate_limiting tests/rate_limiting.cpp )
|
#add_executable( test_rate_limiting tests/rate_limiting.cpp )
|
||||||
#target_link_libraries( test_rate_limiting fc )
|
#target_link_libraries( test_rate_limiting fc )
|
||||||
|
|
||||||
|
add_executable( all_tests tests/all_tests.cpp tests/compress.cpp )
|
||||||
|
target_link_libraries( all_tests fc )
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# add addtional import library on windows platform
|
# add addtional import library on windows platform
|
||||||
target_link_libraries( fc PUBLIC crypt32.lib)
|
target_link_libraries( fc PUBLIC crypt32.lib)
|
||||||
|
|
|
||||||
3
tests/all_tests.cpp
Normal file
3
tests/all_tests.cpp
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BOOST_TEST_MODULE AllTests
|
||||||
|
#include <boost/test/unit_test.hpp>
|
||||||
|
|
||||||
|
|
@ -1,27 +1,89 @@
|
||||||
|
#include <boost/test/unit_test.hpp>
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fc/compress/smaz.hpp>
|
#include <fc/compress/smaz.hpp>
|
||||||
|
#include <fc/compress/zlib.hpp>
|
||||||
#include <fc/exception/exception.hpp>
|
#include <fc/exception/exception.hpp>
|
||||||
|
|
||||||
int main( int argc, char** )
|
BOOST_AUTO_TEST_SUITE(compress)
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(smaz_test)
|
||||||
{
|
{
|
||||||
std::string line;
|
std::ifstream testfile;
|
||||||
std::getline( std::cin, line );
|
testfile.open("README.md");
|
||||||
while( std::cin && line != "q" )
|
|
||||||
{
|
std::stringstream buffer;
|
||||||
try {
|
std::string line;
|
||||||
|
std::getline( testfile, line );
|
||||||
std::string compressed = fc::smaz_compress( line );
|
while( testfile.good() )
|
||||||
std::cout<<"compressed size: "<<compressed.size()<<"\n";
|
|
||||||
std::string decomp = fc::smaz_decompress( compressed );
|
|
||||||
std::cout<<"decomp: '"<<decomp<<"'\n";
|
|
||||||
std::cout<<"line: '"<<line<<"'\n";
|
|
||||||
FC_ASSERT( decomp == line );
|
|
||||||
}
|
|
||||||
catch ( fc::exception& e )
|
|
||||||
{
|
{
|
||||||
std::cout<<e.to_detail_string()<<"\n";
|
buffer << line << "\n";
|
||||||
|
try {
|
||||||
|
std::string compressed = fc::smaz_compress( line );
|
||||||
|
std::string decomp = fc::smaz_decompress( compressed );
|
||||||
|
BOOST_CHECK_EQUAL( decomp, line );
|
||||||
|
}
|
||||||
|
catch ( fc::exception& e )
|
||||||
|
{
|
||||||
|
std::cout<<e.to_detail_string()<<"\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::getline( testfile, line );
|
||||||
}
|
}
|
||||||
std::getline( std::cin, line );
|
|
||||||
}
|
line = buffer.str();
|
||||||
return 0;
|
std::string compressed = fc::smaz_compress( line );
|
||||||
|
std::string decomp = fc::smaz_decompress( compressed );
|
||||||
|
BOOST_CHECK_EQUAL( decomp, line );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
TINFL_FLAG_PARSE_ZLIB_HEADER = 1,
|
||||||
|
TINFL_FLAG_HAS_MORE_INPUT = 2,
|
||||||
|
TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4,
|
||||||
|
TINFL_FLAG_COMPUTE_ADLER32 = 8
|
||||||
|
};
|
||||||
|
|
||||||
|
extern char* tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string zlib_decompress( const std::string compressed )
|
||||||
|
{
|
||||||
|
size_t decomp_len;
|
||||||
|
char* decomp = tinfl_decompress_mem_to_heap( compressed.c_str(), compressed.length(), &decomp_len, TINFL_FLAG_PARSE_ZLIB_HEADER );
|
||||||
|
std::string result( decomp, decomp_len );
|
||||||
|
free( decomp );
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(zlib_test)
|
||||||
|
{
|
||||||
|
std::ifstream testfile;
|
||||||
|
testfile.open("README.md");
|
||||||
|
|
||||||
|
std::stringstream buffer;
|
||||||
|
std::string line;
|
||||||
|
std::getline( testfile, line );
|
||||||
|
while( testfile.good() )
|
||||||
|
{
|
||||||
|
buffer << line << "\n";
|
||||||
|
std::string compressed = fc::zlib_compress( line );
|
||||||
|
std::string decomp = zlib_decompress( compressed );
|
||||||
|
BOOST_CHECK_EQUAL( decomp, line );
|
||||||
|
|
||||||
|
std::getline( testfile, line );
|
||||||
|
}
|
||||||
|
|
||||||
|
line = buffer.str();
|
||||||
|
std::string compressed = fc::zlib_compress( line );
|
||||||
|
std::string decomp = zlib_decompress( compressed );
|
||||||
|
BOOST_CHECK_EQUAL( decomp, line );
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue