Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
0fbf13c3
Commit
0fbf13c3
authored
Aug 19, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Tests for previous commit
* Improve test output
parent
23d27c9c
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
235 additions
and
7 deletions
+235
-7
test/NativeAlgoTest.py
test/NativeAlgoTest.py
+14
-0
test/native/algo.c
test/native/algo.c
+147
-0
test/native/gc.c
test/native/gc.c
+2
-0
test/native/init.c
test/native/init.c
+14
-0
test/native/tests.h
test/native/tests.h
+9
-0
test/native/url.c
test/native/url.c
+0
-1
test/pyunit.h
test/pyunit.h
+5
-3
test/setup.py
test/setup.py
+2
-1
test/test.py
test/test.py
+6
-1
test/test.sh
test/test.sh
+36
-1
No files found.
test/NativeAlgoTest.py
0 → 100644
View file @
0fbf13c3
import
unittest
import
native_libvlc_test
class
NativeAlgoTestCase
(
unittest
.
TestCase
):
def
test_bsearch_direct
(
self
):
"""[Algo] Check Bsearch with simple types"""
native_libvlc_test
.
bsearch_direct_test
()
def
test_bsearch_struct
(
self
):
"""[Algo] Check Bsearch with structs"""
native_libvlc_test
.
bsearch_member_test
()
def
test_dict
(
self
):
"""[Algo] Check dictionnaries"""
native_libvlc_test
.
dict_test
()
test/native/algo.c
0 → 100644
View file @
0fbf13c3
/*****************************************************************************
* algo.c : Algorithms test
*****************************************************************************
* Copyright (C) 2006 VideoLAN
* $Id: i18n.c 16157 2006-07-29 13:32:12Z zorglub $
*
* 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.
*****************************************************************************/
#include "../pyunit.h"
#include <vlc/vlc.h>
/**********************************************************************
* Binary search
*********************************************************************/
PyObject
*
bsearch_direct_test
(
PyObject
*
self
,
PyObject
*
args
)
{
#define DIRCHECK( size, initial, checked, expected ) { \
int array[size] = initial; \
int answer = -1; \
BSEARCH( array, size, , int, checked, answer ); \
ASSERT( answer == expected , "" ); }
#define ORDERED10 {0,1,2,3,4,5,6,7,8,9}
DIRCHECK
(
10
,
ORDERED10
,
0
,
0
);
DIRCHECK
(
10
,
ORDERED10
,
1
,
1
);
DIRCHECK
(
10
,
ORDERED10
,
2
,
2
);
DIRCHECK
(
10
,
ORDERED10
,
3
,
3
);
DIRCHECK
(
10
,
ORDERED10
,
4
,
4
);
DIRCHECK
(
10
,
ORDERED10
,
5
,
5
);
DIRCHECK
(
10
,
ORDERED10
,
6
,
6
);
DIRCHECK
(
10
,
ORDERED10
,
7
,
7
);
DIRCHECK
(
10
,
ORDERED10
,
8
,
8
);
DIRCHECK
(
10
,
ORDERED10
,
9
,
9
);
DIRCHECK
(
10
,
ORDERED10
,
10
,
-
1
);
DIRCHECK
(
10
,
ORDERED10
,
-
1
,
-
1
);
/* TODO: tests on unordered arrays, odd number of elements, 1 element, 2 */
Py_INCREF
(
Py_None
);
return
Py_None
;
}
struct
bsearch_tester
{
int
key
;
int
value
;
};
/* Lighter test, we just check correct member access, all the real testing
* has been made already */
PyObject
*
bsearch_member_test
(
PyObject
*
self
,
PyObject
*
args
)
{
struct
bsearch_tester
array
[]
=
{
{
0
,
12
},
{
1
,
22
}
,
{
2
,
33
}
,
{
3
,
68
}
,
{
4
,
56
}
};
#define MEMBCHECK( checked, expected ) { \
int answer = -1; \
BSEARCH( array, 5, .key , int, checked, answer ); \
ASSERT( answer == expected , "" ); }
MEMBCHECK
(
0
,
0
)
;
MEMBCHECK
(
1
,
1
);
MEMBCHECK
(
2
,
2
);
MEMBCHECK
(
3
,
3
);
MEMBCHECK
(
4
,
4
);
MEMBCHECK
(
5
,
-
1
);
Py_INCREF
(
Py_None
);
return
Py_None
;
}
/**********************************************************************
* Dictionnary
*********************************************************************/
static
void
DumpDict
(
dict_t
*
p_dict
)
{
int
i
=
0
;
fprintf
(
stderr
,
"**** Begin Dump ****
\n
"
);
for
(
i
=
0
;
i
<
p_dict
->
i_entries
;
i
++
)
{
fprintf
(
stderr
,
"Entry %i - hash %lli int %i string %s data %p
\n
"
,
i
,
p_dict
->
p_entries
[
i
].
i_hash
,
p_dict
->
p_entries
[
i
].
i_int
,
p_dict
->
p_entries
[
i
].
psz_string
,
p_dict
->
p_entries
[
i
].
p_data
);
}
fprintf
(
stderr
,
"**** End Dump ****
\n
"
);
}
PyObject
*
dict_test
(
PyObject
*
self
,
PyObject
*
args
)
{
int
i42
=
42
,
i40
=
40
,
i12
=
12
,
i0
=
0
,
i00
=
0
;
dict_t
*
p_dict
=
vlc_DictNew
();
ASSERT
(
p_dict
->
i_entries
==
0
,
""
);
ASSERT
(
p_dict
->
p_entries
==
NULL
,
""
);
vlc_DictInsert
(
p_dict
,
0
,
NULL
,
(
void
*
)(
&
i42
)
);
ASSERT
(
p_dict
->
i_entries
==
1
,
""
);
ASSERT
(
p_dict
->
p_entries
[
0
].
p_data
==
(
void
*
)(
&
i42
),
""
);
vlc_DictInsert
(
p_dict
,
1
,
"42"
,
(
void
*
)(
&
i42
)
);
ASSERT
(
p_dict
->
i_entries
==
2
,
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
1
,
"42"
)
==
(
void
*
)(
&
i42
),
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
0
,
"42"
)
==
NULL
,
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
1
,
" 42"
)
==
NULL
,
""
);
vlc_DictInsert
(
p_dict
,
1
,
"12"
,
(
void
*
)(
&
i12
)
);
ASSERT
(
vlc_DictGet
(
p_dict
,
1
,
"12"
)
==
(
void
*
)(
&
i12
),
""
);
vlc_DictInsert
(
p_dict
,
3
,
"40"
,
(
void
*
)(
&
i40
)
);
ASSERT
(
vlc_DictGet
(
p_dict
,
3
,
"40"
)
==
(
void
*
)(
&
i40
),
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
1
,
"12"
)
==
(
void
*
)(
&
i12
),
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
1
,
"42"
)
==
(
void
*
)(
&
i42
),
""
);
vlc_DictInsert
(
p_dict
,
12
,
"zero-1"
,
(
void
*
)(
&
i0
)
);
vlc_DictInsert
(
p_dict
,
5
,
"zero-0"
,
(
void
*
)(
&
i00
)
);
ASSERT
(
vlc_DictGet
(
p_dict
,
12
,
"zero-1"
)
==
(
void
*
)(
&
i0
),
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
5
,
"zero-0"
)
==
(
void
*
)(
&
i00
),
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
12
,
"zero-0"
)
==
NULL
,
""
);
vlc_DictInsert
(
p_dict
,
0
,
"12"
,
(
void
*
)(
&
i12
)
);
vlc_DictInsert
(
p_dict
,
0
,
"thisisaverylongstringwith12"
,
(
void
*
)(
&
i12
)
);
ASSERT
(
vlc_DictGet
(
p_dict
,
0
,
"thisisaverylongstringwith12"
)
==
(
void
*
)(
&
i12
),
""
);
ASSERT
(
vlc_DictGet
(
p_dict
,
0
,
"thisisaverylongstringwith13"
)
==
NULL
,
""
);
vlc_DictClear
(
p_dict
);
Py_INCREF
(
Py_None
);
return
Py_None
;
}
test/native/gc.c
View file @
0fbf13c3
...
...
@@ -39,4 +39,6 @@ static PyMethodDef native_gc_test_methods[] = {
{
NULL
,
NULL
,
0
,
NULL
}
};
asserts
=
0
;
DECLARE_MODULE
(
native_gc_test
)
test/native/init.c
View file @
0fbf13c3
#include "../pyunit.h"
#include "tests.h"
PyObject
*
init
(
PyObject
*
self
,
PyObject
*
args
)
{
(
void
)
setvbuf
(
stdout
,
NULL
,
_IONBF
,
0
);
Py_INCREF
(
Py_None
);
return
Py_None
;
}
static
PyMethodDef
native_libvlc_test_methods
[]
=
{
DEF_METHOD
(
init
,
"Init some stuff"
)
DEF_METHOD
(
create_destroy
,
"Create and destroy"
)
DEF_METHOD
(
exception_test
,
"Test Exception handling"
)
DEF_METHOD
(
playlist_test
,
"Test Playlist interaction"
)
...
...
@@ -11,7 +20,12 @@ static PyMethodDef native_libvlc_test_methods[] = {
DEF_METHOD
(
chains_test
,
"Test building of chains"
)
DEF_METHOD
(
gui_chains_test
,
"Test interactions between chains and GUI"
)
DEF_METHOD
(
psz_chains_test
,
"Test building of chain strings"
)
DEF_METHOD
(
bsearch_direct_test
,
"Test Bsearch without structure"
)
DEF_METHOD
(
bsearch_member_test
,
"Test Bsearch with structure"
)
DEF_METHOD
(
dict_test
,
"Test dictionnaries"
)
{
NULL
,
NULL
,
0
,
NULL
}
};
asserts
=
0
;
DECLARE_MODULE
(
native_libvlc_test
)
test/native/tests.h
View file @
0fbf13c3
#include "../pyunit.h"
/* Libvlc */
PyObject
*
exception_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
create_destroy
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
playlist_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
vlm_test
(
PyObject
*
self
,
PyObject
*
args
);
/* Stats */
PyObject
*
timers_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
url_decode_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
i18n_atof_test
(
PyObject
*
self
,
PyObject
*
args
);
/* Profiles */
PyObject
*
chains_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
gui_chains_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
psz_chains_test
(
PyObject
*
self
,
PyObject
*
args
);
/* Algo */
PyObject
*
bsearch_direct_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
bsearch_member_test
(
PyObject
*
self
,
PyObject
*
args
);
PyObject
*
dict_test
(
PyObject
*
self
,
PyObject
*
args
);
test/native/url.c
View file @
0fbf13c3
...
...
@@ -42,7 +42,6 @@ PyObject * test_decode (const char *in, const char *out)
PyObject
*
url_decode_test
(
PyObject
*
self
,
PyObject
*
args
)
{
printf
(
"
\n
"
);
(
void
)
setvbuf
(
stdout
,
NULL
,
_IONBF
,
0
);
if
(
!
test_decode
(
"this_should_not_be_modified_1234"
,
"this_should_not_be_modified_1234"
)
)
return
NULL
;
...
...
test/pyunit.h
View file @
0fbf13c3
#include <Python.h>
#define ASSERT( a, message ) if( !(a) ) { PyErr_SetString( PyExc_AssertionError, message " - " #a ); return NULL; }
extern
int
asserts
;
#define ASSERT( a, message ) asserts++;if( !(a) ) { PyErr_SetString( PyExc_AssertionError, message " - " #a ); return NULL; }
#define DECLARE_MODULE( module ) PyMODINIT_FUNC init##module( void ) { \
Py_InitModule( #module, module##_methods ); \
}
#define ASSERT_NOEXCEPTION if( libvlc_exception_raised( &exception ) ) { \
#define ASSERT_NOEXCEPTION
asserts++;
if( libvlc_exception_raised( &exception ) ) { \
if( libvlc_exception_get_message( &exception ) ) PyErr_SetString( PyExc_AssertionError, libvlc_exception_get_message( &exception ) ); \
else PyErr_SetString( PyExc_AssertionError, "Exception raised" ); return NULL; }
#define ASSERT_EXCEPTION if( !libvlc_exception_raised( &exception ) ) { \
#define ASSERT_EXCEPTION
asserts ++;
if( !libvlc_exception_raised( &exception ) ) { \
if( libvlc_exception_get_message( &exception ) ) PyErr_SetString( PyExc_AssertionError, libvlc_exception_get_message( &exception ) ); \
else PyErr_SetString( PyExc_AssertionError, "Exception not raised" ); return NULL; }
...
...
test/setup.py
View file @
0fbf13c3
...
...
@@ -41,7 +41,8 @@ def get_ldflags():
# To compile in a local vlc tree
native_libvlc_test
=
Extension
(
'native_libvlc_test'
,
sources
=
[
'native/init.c'
,
'native/url.c'
,
'native/i18n.c'
,
'native/stats.c'
,
'native/libvlc.c'
,
'native/profiles.c'
],
'native/stats.c'
,
'native/libvlc.c'
,
'native/profiles.c'
,
'native/algo.c'
],
include_dirs
=
[
'../include'
,
'../'
,
'/usr/win32/include'
],
extra_objects
=
[
'../src/.libs/libvlc.so'
],
extra_compile_args
=
get_cflags
(),
...
...
test/test.py
View file @
0fbf13c3
...
...
@@ -8,9 +8,11 @@ found test suites into one big test suite and run them all at once.
"""
import
sys
,
os
,
re
,
unittest
import
native_libvlc_test
def
printAndRun
(
module
):
print
"Running tests from module "
+
module
.
__name__
;
#
print "Running tests from module " + module.__name__;
return
unittest
.
defaultTestLoader
.
loadTestsFromModule
(
module
)
def
regressionTest
():
...
...
@@ -21,6 +23,9 @@ def regressionTest():
filenameToModuleName
=
lambda
f
:
os
.
path
.
splitext
(
f
)[
0
]
moduleNames
=
map
(
filenameToModuleName
,
files
)
modules
=
map
(
__import__
,
moduleNames
)
native_libvlc_test
.
init
()
# load = unittest.defaultTestLoader.loadTestsFromModule
load
=
printAndRun
return
unittest
.
TestSuite
(
map
(
load
,
modules
))
...
...
test/test.sh
View file @
0fbf13c3
#! /bin/sh
set
-e
python setup.py build
cd
..
# TODO: FIXME !!
export
PYTHONPATH
=
$PYTHONPATH
:bindings/mediacontrol-python/build/lib.linux-i686-2.3:test/build/lib.linux-i686-2.3:test/build/lib.linux-x86_64-2.3
LD_LIBRARY_PATH
=
src/.libs/ python
test
/test.py
-v
export
LD_LIBRARY_PATH
=
src/.libs/
python
test
/test.py
-v
2>&1|perl
-e
\
'$bold = "\033[1m";
$grey = "\033[37m";
$green = "\033[32m";
$blue = "\033[34m";
$red = "\033[31m";
$reset = "\033[0m";
# Combinations
$info = $reset;
$ok = $green;
$err = $red.$bold;
while(<STDIN>)
{
$line = $_;
chomp $line;
if( $line =~ s/^(\[[A-z0-9]*\]\s.*)\.\.\.\sok$/$info$1\.\.\.$ok ok/g ||
$line =~ s/^(\[[A-z0-9]*\]\s.*)\.\.\.\sFAIL$/$info$1\.\.\.$err FAIL/g||
$line =~ s/^(\[[A-z0-9]*\]\s.*)\.\.\.(.)*$/$info$1\.\.\.$2/g ||
$line =~ s/^(ok)$/$ok$1/ig || $line =~ s/^FAIL$/$err FAIL/g ||
$line =~ s/(Ran\s.*)/$info$1/g )
{
print $line.$reset."\n";
}
else
{
print $grey.$line."\n";
}
}'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment