[vlc-devel] commit: block_File: test case ( Rémi Denis-Courmont )

git version control git at videolan.org
Tue May 20 22:18:19 CEST 2008


vlc | branch: master | Rémi Denis-Courmont <rem at videolan.org> | Tue May 20 22:26:45 2008 +0300| [a2ad5ed16ce41045897dd3be5b7322ef9dd8856b]

block_File: test case

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

 src/Makefile.am  |    5 ++++
 src/test/block.c |   66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 3fc58e6..3732f62 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -468,6 +468,7 @@ endif
 # Unit/regression test
 ###############################################################################
 check_PROGRAMS = \
+	test_block \
 	test_dictionary \
 	test_i18n_atof \
 	test_url \
@@ -480,6 +481,10 @@ TESTS = $(check_PROGRAMS) check_symbols
 
 CFLAGS_tests = `$(VLC_CONFIG) --cflags libvlc`
 
+test_block_SOURCES = test/block.c
+test_block_LDADD = libvlccore.la
+test_block_CFLAGS = $(CFLAGS_tests)
+
 test_dictionary_SOURCES = test/dictionary.c
 test_dictionary_LDADD = libvlccore.la
 test_dictionary_CFLAGS = $(CFLAGS_tests)
diff --git a/src/test/block.c b/src/test/block.c
new file mode 100644
index 0000000..ad03dab
--- /dev/null
+++ b/src/test/block.c
@@ -0,0 +1,66 @@
+/*****************************************************************************
+ * block.c: Test for block_t stuff
+ *****************************************************************************
+ * Copyright (C) 2008 Rémi Denis-Courmont
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#undef NDEBUG
+#include <assert.h>
+
+#include <vlc/vlc.h>
+#include <vlc_block.h>
+
+static const char text[] =
+    "This is a test!\n"
+    "This file can be deleted safely!\n";
+
+static void test_block_File (void)
+{
+    FILE *stream;
+    int res;
+
+    stream = fopen ("testfile.txt", "wb+");
+    assert (stream != NULL);
+
+    res = fputs (text, stream);
+    assert (res != EOF);
+    res = fflush (stream);
+    assert (res != EOF);
+
+    block_t *block = block_File (fileno (stream));
+    fclose (stream);
+
+    assert (block != NULL);
+    assert (block->i_buffer == strlen (text));
+    assert (!memcmp (block->p_buffer, text, block->i_buffer));
+    block_Release (block);
+
+    remove ("testfile.txt");
+}
+
+int main (void)
+{
+    test_block_File ();
+    return 0;
+}
+




More information about the vlc-devel mailing list