@ -23,42 +23,6 @@ bool download_to_file(const std::string &url, const std::string &local_file, int 
			
		
	
		
		
			
				
					
					  return  false ;    return  false ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					TEST_CASE ( " httpMultiPartDownload " )  {  
			
		
	
		
		
			
				
					
					  char  filename [ ]  =  " /tmp/XXXXXX " ;   
			
		
	
		
		
			
				
					
					  close ( mkstemp ( filename ) ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  const  size_t  chunk_size  =  5  *  1024  *  1024 ;   
			
		
	
		
		
			
				
					
					  std : : string  content ;   
			
		
	
		
		
			
				
					
					  SECTION ( " download to file " )  {   
			
		
	
		
		
			
				
					
					    REQUIRE ( download_to_file ( TEST_RLOG_URL ,  filename ,  chunk_size ) ) ;   
			
		
	
		
		
			
				
					
					    content  =  util : : read_file ( filename ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					  SECTION ( " download to buffer " )  {   
			
		
	
		
		
			
				
					
					    for  ( int  i  =  0 ;  i  <  3  & &  content . empty ( ) ;  + + i )  {   
			
		
	
		
		
			
				
					
					      content  =  httpGet ( TEST_RLOG_URL ,  chunk_size ) ;   
			
		
	
		
		
			
				
					
					      std : : this_thread : : sleep_for ( std : : chrono : : milliseconds ( 500 ) ) ;   
			
		
	
		
		
			
				
					
					    }   
			
		
	
		
		
			
				
					
					    REQUIRE ( ! content . empty ( ) ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					  REQUIRE ( content . size ( )  = =  9112651 ) ;   
			
		
	
		
		
			
				
					
					  REQUIRE ( sha256 ( content )  = =  TEST_RLOG_CHECKSUM ) ;   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					TEST_CASE ( " FileReader " )  {  
			
		
	
		
		
			
				
					
					  auto  enable_local_cache  =  GENERATE ( true ,  false ) ;   
			
		
	
		
		
			
				
					
					  std : : string  cache_file  =  cacheFilePath ( TEST_RLOG_URL ) ;   
			
		
	
		
		
			
				
					
					  system ( ( " rm  "  +  cache_file  +  "  -f " ) . c_str ( ) ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  FileReader  reader ( enable_local_cache ) ;   
			
		
	
		
		
			
				
					
					  std : : string  content  =  reader . read ( TEST_RLOG_URL ) ;   
			
		
	
		
		
			
				
					
					  REQUIRE ( sha256 ( content )  = =  TEST_RLOG_CHECKSUM ) ;   
			
		
	
		
		
			
				
					
					  if  ( enable_local_cache )  {   
			
		
	
		
		
			
				
					
					    REQUIRE ( sha256 ( util : : read_file ( cache_file ) )  = =  TEST_RLOG_CHECKSUM ) ;   
			
		
	
		
		
			
				
					
					  }  else  {   
			
		
	
		
		
			
				
					
					    REQUIRE ( util : : file_exists ( cache_file )  = =  false ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					TEST_CASE ( " LogReader " )  { TEST_CASE ( " LogReader " )  {  
			
		
	
		
		
			
				
					
					  SECTION ( " corrupt log " )  {    SECTION ( " corrupt log " )  {   
			
		
	
		
		
			
				
					
					    FileReader  reader ( true ) ;      FileReader  reader ( true ) ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -134,34 +98,3 @@ std::string download_demo_route() { 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  return  data_dir ;    return  data_dir ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					TEST_CASE ( " Getting route " )  {  
			
		
	
		
		
			
				
					
					  std : : string  data_dir  =  download_demo_route ( ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  auto  flags  =  GENERATE ( 0 ,  REPLAY_FLAG_QCAMERA ) ;   
			
		
	
		
		
			
				
					
					  Route  route ( DEMO_ROUTE ,  data_dir ) ;   
			
		
	
		
		
			
				
					
					  REQUIRE ( route . load ( ) ) ;   
			
		
	
		
		
			
				
					
					  REQUIRE ( route . segments ( ) . size ( )  = =  2 ) ;   
			
		
	
		
		
			
				
					
					  for  ( int  i  =  0 ;  i  <  TEST_REPLAY_SEGMENTS ;  + + i )  {   
			
		
	
		
		
			
				
					
					    read_segment ( i ,  route . at ( i ) ,  flags ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					TEST_CASE ( " seek_to " )  {  
			
		
	
		
		
			
				
					
					  QEventLoop  loop ;   
			
		
	
		
		
			
				
					
					  int  seek_to  =  util : : random_int ( 0 ,  2  *  59 ) ;   
			
		
	
		
		
			
				
					
					  Replay  replay ( DEMO_ROUTE ,  { } ,  { } ,  nullptr ,  REPLAY_FLAG_NO_VIPC ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  QObject : : connect ( & replay ,  & Replay : : seekedTo ,  [ & ] ( double  sec )  {   
			
		
	
		
		
			
				
					
					    INFO ( " seek to  "  < <  seek_to  < <  " s sought to "  < <  sec ) ;   
			
		
	
		
		
			
				
					
					    REQUIRE ( sec  > =  seek_to ) ;   
			
		
	
		
		
			
				
					
					    loop . quit ( ) ;   
			
		
	
		
		
			
				
					
					  } ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  REQUIRE ( replay . load ( ) ) ;   
			
		
	
		
		
			
				
					
					  replay . start ( ) ;   
			
		
	
		
		
			
				
					
					  replay . seekTo ( seek_to ,  false ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  loop . exec ( ) ;   
			
		
	
		
		
			
				
					
					}