Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
905600df
Commit
905600df
authored
Jul 07, 2009
by
Rémi Duraffort
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a test for the vlc variables.
parent
93512b82
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
353 additions
and
0 deletions
+353
-0
test/Makefile.am
test/Makefile.am
+6
-0
test/libvlc/variables.c
test/libvlc/variables.c
+347
-0
No files found.
test/Makefile.am
View file @
905600df
...
...
@@ -13,6 +13,7 @@ check_PROGRAMS = \
test_libvlc_media_list
\
test_libvlc_media_list_player
\
test_libvlc_media_player
\
test_libvlc_variables
\
$(NULL)
# Disabled test:
...
...
@@ -75,6 +76,11 @@ test_libvlc_meta_LDADD = $(top_builddir)/src/libvlc.la
test_libvlc_meta_CFLAGS
=
$(CFLAGS_tests)
test_libvlc_meta_LDFLAGS
=
$(LDFLAGS_tests)
test_libvlc_variables_SOURCES
=
libvlc/variables.c
test_libvlc_variables_LDADD
=
$(top_builddir)
/src/libvlc.la
test_libvlc_variables_CFLAGS
=
$(CFLAGS_tests)
test_libvlc_variables_LDFLAGS
=
$(LDFLAGS_tests)
checkall
:
$(MAKE)
check_PROGRAMS
=
"
$(check_PROGRAMS)
$(EXTRA_PROGRAMS)
"
check
...
...
test/libvlc/variables.c
0 → 100644
View file @
905600df
/*****************************************************************************
* variables.c: test for variables
*****************************************************************************
* Copyright (C) 2009 the VideoLAN team
* $Id$
*
* Authors: Rémi Duraffort <ivoire@videolan.org>
*
* 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 <limits.h>
#include "test.h"
#include <../src/control/libvlc_internal.h>
const
char
*
psz_var_name
[]
=
{
"a"
,
"abcdef"
,
"abcdefg"
,
"abc123"
,
"abc-123"
,
"é€!!"
};
const
int
i_var_count
=
6
;
vlc_value_t
var_value
[
6
];
static
void
test_integer
(
libvlc_int_t
*
p_libvlc
)
{
int
i
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_INTEGER
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_value
[
i
].
i_int
=
rand
();
var_SetInteger
(
p_libvlc
,
psz_var_name
[
i
],
var_value
[
i
].
i_int
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
assert
(
var_GetInteger
(
p_libvlc
,
psz_var_name
[
i
]
)
==
var_value
[
i
].
i_int
);
var_IncInteger
(
p_libvlc
,
psz_var_name
[
i
]
);
assert
(
var_GetInteger
(
p_libvlc
,
psz_var_name
[
i
]
)
==
var_value
[
i
].
i_int
+
1
);
var_DecInteger
(
p_libvlc
,
psz_var_name
[
i
]
);
assert
(
var_GetInteger
(
p_libvlc
,
psz_var_name
[
i
]
)
==
var_value
[
i
].
i_int
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
}
static
void
test_booleans
(
libvlc_int_t
*
p_libvlc
)
{
int
i
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_BOOL
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_value
[
i
].
b_bool
=
(
rand
()
>
RAND_MAX
/
2
);
var_SetBool
(
p_libvlc
,
psz_var_name
[
i
],
var_value
[
i
].
b_bool
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
assert
(
var_GetBool
(
p_libvlc
,
psz_var_name
[
i
]
)
==
var_value
[
i
].
b_bool
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
}
static
void
test_times
(
libvlc_int_t
*
p_libvlc
)
{
int
i
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_TIME
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_value
[
i
].
i_time
=
rand
();
var_SetTime
(
p_libvlc
,
psz_var_name
[
i
],
var_value
[
i
].
i_time
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
assert
(
var_GetTime
(
p_libvlc
,
psz_var_name
[
i
]
)
==
var_value
[
i
].
i_time
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
}
static
void
test_floats
(
libvlc_int_t
*
p_libvlc
)
{
int
i
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_FLOAT
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_value
[
i
].
f_float
=
rand
();
var_SetFloat
(
p_libvlc
,
psz_var_name
[
i
],
var_value
[
i
].
f_float
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
assert
(
var_GetFloat
(
p_libvlc
,
psz_var_name
[
i
]
)
==
var_value
[
i
].
f_float
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
}
static
void
test_strings
(
libvlc_int_t
*
p_libvlc
)
{
int
i
;
char
*
psz_tmp
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_STRING
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_SetString
(
p_libvlc
,
psz_var_name
[
i
],
psz_var_name
[
i
]
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
psz_tmp
=
var_GetString
(
p_libvlc
,
psz_var_name
[
i
]
);
assert
(
!
strcmp
(
psz_tmp
,
psz_var_name
[
i
]
)
);
free
(
psz_tmp
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
/* Some more test for strings */
var_Create
(
p_libvlc
,
"bla"
,
VLC_VAR_STRING
);
assert
(
var_GetNonEmptyString
(
p_libvlc
,
"bla"
)
==
NULL
);
var_SetString
(
p_libvlc
,
"bla"
,
""
);
assert
(
var_GetNonEmptyString
(
p_libvlc
,
"bla"
)
==
NULL
);
var_SetString
(
p_libvlc
,
"bla"
,
"test"
);
psz_tmp
=
var_GetNonEmptyString
(
p_libvlc
,
"bla"
);
assert
(
!
strcmp
(
psz_tmp
,
"test"
)
);
free
(
psz_tmp
);
var_Destroy
(
p_libvlc
,
"bla"
);
}
static
void
test_address
(
libvlc_int_t
*
p_libvlc
)
{
int
i
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_ADDRESS
);
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_value
[
i
].
p_address
=
rand
();
var_SetAddress
(
p_libvlc
,
psz_var_name
[
i
],
var_value
[
i
].
p_address
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
vlc_value_t
val
;
var_Get
(
p_libvlc
,
psz_var_name
[
i
],
&
val
);
assert
(
val
.
p_address
==
var_value
[
i
].
p_address
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
}
static
int
callback
(
vlc_object_t
*
p_this
,
char
const
*
psz_var
,
vlc_value_t
oldval
,
vlc_value_t
newval
,
void
*
p_data
)
{
(
void
)
p_this
;
(
void
)
oldval
;
int
i
;
// Check the parameters
assert
(
p_data
==
psz_var_name
);
// Find the variable
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
if
(
!
strcmp
(
psz_var_name
[
i
],
psz_var
)
)
break
;
}
// Check the variable is known
assert
(
i
<
i_var_count
);
var_value
[
i
].
i_int
=
newval
.
i_int
;
return
VLC_SUCCESS
;
}
static
void
test_callbacks
(
libvlc_int_t
*
p_libvlc
)
{
/* add the callbacks */
int
i
;
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_Create
(
p_libvlc
,
psz_var_name
[
i
],
VLC_VAR_INTEGER
);
var_AddCallback
(
p_libvlc
,
psz_var_name
[
i
],
callback
,
psz_var_name
);
}
/* Set the variables and trigger the callbacks */
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
int
i_temp
=
rand
();
var_SetInteger
(
p_libvlc
,
psz_var_name
[
i
],
i_temp
);
assert
(
i_temp
==
var_value
[
i
].
i_int
);
var_SetInteger
(
p_libvlc
,
psz_var_name
[
i
],
0
);
assert
(
var_value
[
i
].
i_int
==
0
);
var_value
[
i
].
i_int
=
1
;
}
/* Only trigger the callback: the value will be 0 again */
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
{
var_TriggerCallback
(
p_libvlc
,
psz_var_name
[
i
]
);
assert
(
var_value
[
i
].
i_int
==
0
);
}
for
(
i
=
0
;
i
<
i_var_count
;
i
++
)
var_Destroy
(
p_libvlc
,
psz_var_name
[
i
]
);
}
static
void
test_limits
(
libvlc_int_t
*
p_libvlc
)
{
vlc_value_t
val
;
val
.
i_int
=
0
;
var_Create
(
p_libvlc
,
"bla"
,
VLC_VAR_INTEGER
);
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_GETMIN
,
&
val
,
NULL
);
assert
(
val
.
i_int
==
0
);
val
.
i_int
=
-
1234
;
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_SETMIN
,
&
val
,
NULL
);
val
.
i_int
=
12345
;
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_SETMAX
,
&
val
,
NULL
);
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_GETMIN
,
&
val
,
NULL
);
assert
(
val
.
i_int
==
-
1234
);
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_GETMAX
,
&
val
,
NULL
);
assert
(
val
.
i_int
==
12345
);
var_SetInteger
(
p_libvlc
,
"bla"
,
-
123456
);
assert
(
var_GetInteger
(
p_libvlc
,
"bla"
)
==
-
1234
);
var_SetInteger
(
p_libvlc
,
"bla"
,
1234
);
assert
(
var_GetInteger
(
p_libvlc
,
"bla"
)
==
1234
);
var_SetInteger
(
p_libvlc
,
"bla"
,
12346
);
assert
(
var_GetInteger
(
p_libvlc
,
"bla"
)
==
12345
);
val
.
i_int
=
42
;
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_SETSTEP
,
&
val
,
NULL
);
var_SetInteger
(
p_libvlc
,
"bla"
,
20
);
val
.
i_int
=
0
;
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_GETSTEP
,
&
val
,
NULL
);
assert
(
val
.
i_int
==
42
);
var_SetInteger
(
p_libvlc
,
"bla"
,
20
);
assert
(
var_GetInteger
(
p_libvlc
,
"bla"
)
==
0
);
var_SetInteger
(
p_libvlc
,
"bla"
,
21
);
assert
(
var_GetInteger
(
p_libvlc
,
"bla"
)
==
42
);
var_Destroy
(
p_libvlc
,
"bla"
);
}
static
void
test_choices
(
libvlc_int_t
*
p_libvlc
)
{
vlc_value_t
val
,
val2
;
var_Create
(
p_libvlc
,
"bla"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
|
VLC_VAR_ISCOMMAND
);
val
.
i_int
=
1
;
val2
.
psz_string
=
(
char
*
)
"one"
;
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_ADDCHOICE
,
&
val
,
&
val2
);
val
.
i_int
=
2
;
val2
.
psz_string
=
(
char
*
)
"two"
;
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_ADDCHOICE
,
&
val
,
&
val2
);
assert
(
var_CountChoices
(
p_libvlc
,
"bla"
)
==
2
);
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_DELCHOICE
,
&
val
,
&
val2
);
assert
(
var_CountChoices
(
p_libvlc
,
"bla"
)
==
1
);
var_Change
(
p_libvlc
,
"bla"
,
VLC_VAR_GETCHOICES
,
&
val
,
&
val2
);
assert
(
val
.
p_list
->
i_count
==
1
&&
val
.
p_list
->
p_values
[
0
].
i_int
==
1
&&
val2
.
p_list
->
i_count
==
1
&&
!
strcmp
(
val2
.
p_list
->
p_values
[
0
].
psz_string
,
"one"
)
);
var_FreeList
(
&
val
,
&
val2
);
var_Destroy
(
p_libvlc
,
"bla"
);
}
static
void
test_variables
(
libvlc_instance_t
*
p_vlc
)
{
libvlc_int_t
*
p_libvlc
=
p_vlc
->
p_libvlc_int
;
srand
(
time
(
NULL
)
);
log
(
"Testing for integers
\n
"
);
test_integer
(
p_libvlc
);
log
(
"Testing for booleans
\n
"
);
test_booleans
(
p_libvlc
);
log
(
"Testing for times
\n
"
);
test_times
(
p_libvlc
);
log
(
"Testing for floats
\n
"
);
test_floats
(
p_libvlc
);
log
(
"Testing for strings
\n
"
);
test_strings
(
p_libvlc
);
log
(
"Testing for addresses
\n
"
);
test_address
(
p_libvlc
);
log
(
"Testing the callbacks
\n
"
);
test_callbacks
(
p_libvlc
);
log
(
"Testing the limits
\n
"
);
test_limits
(
p_libvlc
);
log
(
"Testing choices
\n
"
);
test_choices
(
p_libvlc
);
}
int
main
(
void
)
{
libvlc_instance_t
*
p_vlc
;
test_init
();
log
(
"Testing the core variables
\n
"
);
libvlc_exception_init
(
&
ex
);
p_vlc
=
libvlc_new
(
test_defaults_nargs
,
test_defaults_args
,
&
ex
);
catch
();
test_variables
(
p_vlc
);
libvlc_release
(
p_vlc
);
return
0
;
}
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