diff --git a/test/NativeLibvlcTest.py b/test/NativeLibvlcTest.py index fcef0a1249..1623c70a21 100644 --- a/test/NativeLibvlcTest.py +++ b/test/NativeLibvlcTest.py @@ -4,5 +4,9 @@ import unittest import native_libvlc_test class NativeLibvlcTestCase( unittest.TestCase ): - def testMe( self ): - native_libvlc_test.create_destroy() + def testException( self ): + """Checks libvlc_exception""" + native_libvlc_test.exception_test() + def testStartup( self ): + """Checks creation/destroy of libvlc""" + native_libvlc_test.create_destroy() diff --git a/test/TODO b/test/TODO index b493b1032c..8704fdc5b3 100644 --- a/test/TODO +++ b/test/TODO @@ -1,4 +1,6 @@ +* Write wrapper with output redirection / use of logger interface + log checker (look for error in log and fail if any) + - We can use this to test streams -* Write wrapper around MediaControl with output redirection / use of logger interface + log checker (look for error in log and fail if any) +* Invent something for testing streams -* +* Test stats diff --git a/test/native_libvlc/native_libvlc_test.c b/test/native_libvlc/native_libvlc_test.c index 36df199517..b9b056bb0f 100644 --- a/test/native_libvlc/native_libvlc_test.c +++ b/test/native_libvlc/native_libvlc_test.c @@ -1,8 +1,42 @@ #include "../pyunit.h" +#include + +static PyObject *exception_test( PyObject *self, PyObject *args ) +{ + libvlc_exception_t exception; + + libvlc_exception_init( &exception ); + ASSERT( !libvlc_exception_raised( &exception) , "Exception raised" ); + ASSERT( !libvlc_exception_get_message( &exception) , "Exception raised" ); + + libvlc_exception_raise( &exception, NULL ); + ASSERT( !libvlc_exception_get_message( &exception), "Unexpected message" ); + ASSERT( libvlc_exception_raised( &exception), "Exception not raised" ); + + libvlc_exception_raise( &exception, "test" ); + ASSERT( libvlc_exception_get_message( &exception), "No Message" ); + ASSERT( libvlc_exception_raised( &exception), "Exception not raised" ); + + Py_INCREF( Py_None ); + return Py_None; +} static PyObject *create_destroy( PyObject *self, PyObject *args ) { - /* Test stuff here */ + libvlc_instance_t *p_instance; + char *argv[] = {}; + + libvlc_exception_t exception; + libvlc_exception_init( &exception ); + + p_instance = libvlc_new( 0, argv, &exception ); + + ASSERT( p_instance != NULL, "Instance creation failed" ); + + ASSERT( !libvlc_exception_raised( &exception ), + "Exception raised while creating instance" ); + + libvlc_destroy( p_instance ); Py_INCREF( Py_None ); return Py_None; @@ -10,6 +44,7 @@ static PyObject *create_destroy( PyObject *self, PyObject *args ) static PyMethodDef native_libvlc_test_methods[] = { DEF_METHOD( create_destroy, "Create and destroy" ) + DEF_METHOD( exception_test, "Test Exception handling" ) { NULL, NULL, 0, NULL } }; diff --git a/test/test.sh b/test/test.sh index 9981fa7423..e5d5663000 100755 --- a/test/test.sh +++ b/test/test.sh @@ -1,6 +1,5 @@ #! /bin/sh -# FIXME - Get real .so cd .. export PYTHONPATH=$PYTHONPATH:bindings/python/build/lib.linux-i686-2.3:test/build/lib.linux-i686-2.3