[vlc-commits] test_input_stream: use bigger random file for tests

Thomas Guillem git at videolan.org
Sun Jun 5 16:16:28 CEST 2016


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Sun Jun  5 16:09:47 2016 +0200| [0358c78bd2fdeed3a454473857108de83712b45e] | committer: Thomas Guillem

test_input_stream: use bigger random file for tests

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0358c78bd2fdeed3a454473857108de83712b45e
---

 test/src/input/stream.c |   59 +++++++++++++++++++++++++++++++++++------------
 1 file changed, 44 insertions(+), 15 deletions(-)

diff --git a/test/src/input/stream.c b/test/src/input/stream.c
index 13871cc..214d263 100644
--- a/test/src/input/stream.c
+++ b/test/src/input/stream.c
@@ -23,6 +23,8 @@
 
 #include <vlc_md5.h>
 #include <vlc_stream.h>
+#include <vlc_rand.h>
+#include <vlc_fs.h>
 
 #include <inttypes.h>
 #include <limits.h>
@@ -31,8 +33,7 @@
 #include <unistd.h>
 
 #ifndef TEST_NET
-#define FILE_PATH SRCDIR"/samples/image.jpg"
-#define FILE_MD5 "8cb4173266779095a5eb3f1ba2a42a21"
+#define RAND_FILE_SIZE (25 * 1024 * 1024)
 #else
 #define HTTP_URL "http://streams.videolan.org/streams/ogm/MJPEG.ogm"
 #define HTTP_MD5 "4eaf9e8837759b670694398a33f02bc0"
@@ -305,17 +306,22 @@ test( struct reader **pp_readers, unsigned int i_readers, const char *psz_md5 )
         assert( pp_readers[i]->pf_getsize( pp_readers[i] ) == i_size );
 
     /* Read the whole file and compare between each readers */
-    InitMD5( &md5 );
+    if( psz_md5 != NULL )
+        InitMD5( &md5 );
     while( ( i_ret = READ_AT( i_offset, 4096 ) ) > 0 )
     {
         i_offset += i_ret;
-        AddMD5( &md5, p_buf, i_ret );
+        if( psz_md5 != NULL )
+            AddMD5( &md5, p_buf, i_ret );
+    }
+    if( psz_md5 != NULL )
+    {
+        EndMD5( &md5 );
+        psz_read_md5 = psz_md5_hash( &md5 );
+        assert( psz_read_md5 );
+        assert( strcmp( psz_read_md5, psz_md5 ) == 0 );
+        free( psz_read_md5 );
     }
-    EndMD5( &md5 );
-    psz_read_md5 = psz_md5_hash( &md5 );
-    assert( psz_read_md5 );
-    assert( strcmp( psz_read_md5, psz_md5 ) == 0 );
-    free( psz_read_md5 );
 
     /* Test cache skip */
     i_offset = 9 * i_size / 10;
@@ -337,6 +343,25 @@ test( struct reader **pp_readers, unsigned int i_readers, const char *psz_md5 )
     PEEK_AT( 0, 46 );
 }
 
+#ifndef TEST_NET
+static void
+fill_rand( int i_fd, size_t i_size )
+{
+    uint8_t p_buf[4096];
+    size_t i_written = 0;
+    while( i_written < i_size )
+    {
+        size_t i_tocopy = __MIN( i_size - i_written, 4096 );
+
+        vlc_rand_bytes(p_buf, i_tocopy);
+        ssize_t i_ret = write( i_fd, p_buf, i_tocopy );
+        assert( i_ret > 0 );
+        i_written += i_ret;
+    }
+    assert( i_written == i_size );
+}
+#endif
+
 int
 main( void )
 {
@@ -345,21 +370,25 @@ main( void )
     test_init();
 
 #ifndef TEST_NET
-    char psz_file[PATH_MAX];
+    char psz_tmp_path[] = "/tmp/libvlc_XXXXXX";
     char *psz_url;
+    int i_tmp_fd;
 
-    log( "Test local file with libc, and stream\n" );
-    assert( realpath( FILE_PATH, psz_file ) == psz_file );
-    assert( asprintf( &psz_url, "file://%s", psz_file ) != -1 );
+    log( "Test random file with libc, and stream\n" );
+    i_tmp_fd = vlc_mkstemp( psz_tmp_path );
+    fill_rand( i_tmp_fd, RAND_FILE_SIZE );
+    assert( i_tmp_fd != -1 );
+    assert( asprintf( &psz_url, "file://%s", psz_tmp_path ) != -1 );
 
-    assert( ( pp_readers[0] = libc_open( psz_file ) ) );
+    assert( ( pp_readers[0] = libc_open( psz_tmp_path ) ) );
     assert( ( pp_readers[1] = stream_open( psz_url ) ) );
 
-    test( pp_readers, 2, FILE_MD5 );
+    test( pp_readers, 2, NULL );
     for( unsigned int i = 0; i < 2; ++i )
         pp_readers[i]->pf_close( pp_readers[i] );
     free( psz_url );
 
+    close( i_tmp_fd );
 #else
 
     log( "Test http url with stream\n" );



More information about the vlc-commits mailing list